@font-face{font-family:iconfont;src:url(/assets/iconfont-C7P7fffE.woff2?t=1784772256508) format("woff2"),url(/assets/iconfont-C41usLVH.woff?t=1784772256508) format("woff"),url(/assets/iconfont-CJyiN1OY.ttf?t=1784772256508) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cluo-shandian:before{content:""}.icon-cluo-a-buzhoutiaogou:before{content:""}.icon-cluo-yuandian:before{content:""}.icon-cluo-xumuyangzhi:before{content:""}.icon-cluo-a_234:before{content:""}.icon-cluo-pici:before{content:""}.icon-cluo-nongtian:before{content:""}.icon-cluo-a_43caiwu:before{content:""}.icon-cluo-yangzhichang:before{content:""}.icon-cluo-shuichan:before{content:""}.icon-cluo-ico_tubiao_zhihuinongye:before{content:""}.icon-cluo-zhongzhiguanli:before{content:""}.icon-cluo-zhongzhi:before{content:""}.icon-cluo-icon_jiankongshexiangshebei:before{content:""}.icon-cluo-shipinfuwuqi:before{content:""}.icon-cluo-shipinjiankong:before{content:""}.icon-cluo-zichanzu:before{content:""}.icon-cluo-zichanleixing:before{content:""}.icon-cluo-shujiegou:before{content:""}.icon-cluo-shebeixinghao:before{content:""}.icon-cluo-a-UserGroupFilledyonghuzutianchong:before{content:""}.icon-cluo-shebeizuliebiao:before{content:""}.icon-cluo-shujuliu:before{content:""}.icon-cluo-wangguanliebiao:before{content:""}.icon-cluo-shebeiquanxianguanli:before{content:""}.icon-cluo-jiaoseliebiao:before{content:""}.icon-cluo-zhiweiliebiao:before{content:""}.icon-cluo-wangguanguanli_wangguanjiqun:before{content:""}.icon-cluo-liebiao2:before{content:""}.icon-cluo-xitongguanli:before{content:""}.icon-cluo-xiugai:before{content:""}.icon-cluo-a-shuaxin1:before{content:""}.icon-cluo-quanju_yuming:before{content:""}.icon-cluo-disanfang:before{content:""}.icon-cluo-zuzhipeizhi:before{content:""}.icon-cluo-a-zuzhi1:before{content:""}.icon-cluo-kehu:before{content:""}.icon-cluo-shenjirizhi:before{content:""}.icon-cluo-shebei:before{content:""}.icon-cluo-jiemian:before{content:""}.icon-cluo-bianyuanguanli:before{content:""}.icon-cluo-zichanpeizhi:before{content:""}.icon-cluo-shebeipeizhi:before{content:""}.icon-cluo-chuangjianguizeliangen:before{content:""}.icon-cluo-jinggao:before{content:""}.icon-cluo-banbenkongzhi:before{content:""}.icon-cluo-shitishitu1:before{content:""}.icon-cluo-shitimoxing:before{content:""}.icon-cluo-gaojigongnengguanli:before{content:""}.icon-cluo-zichanguanli:before{content:""}.icon-cluo-tuichu1:before{content:""}.icon-cluo-otashengjikongxin:before{content:""}.icon-cluo-fuzhi:before{content:""}.icon-cluo-a-sousuomaoke:before{content:""}.icon-cluo-liebiao1:before{content:""}.icon-cluo-gerentouxiang_o:before{content:""}.icon-cluo-quxiaoquanping:before{content:""}.icon-cluo-tongzhi1:before{content:""}.icon-cluo-tuichu:before{content:""}.icon-cluo-quanping_o:before{content:""}.icon-cluo-liebiao-dian:before{content:""}.icon-cluo-yuangong:before{content:""}.icon-cluo-tongzhi:before{content:""}.icon-cluo-liebiao:before{content:""}.icon-cluo-youxiang:before{content:""}.icon-cluo-suo:before{content:""}.icon-cluo-a-bangzhu1:before{content:""}.icon-cluo-bangzhu:before{content:""}.icon-cluo-a-304cuowuguanbiquxiao-yuankuang:before{content:""}.icon-cluo-jiahao:before{content:""}.icon-cluo-shuaxin:before{content:""}.icon-cluo-sousuo:before{content:""}.icon-cluo-zuzhijigou:before{content:""}.icon-cluo-danjiantou-shang-shouqi:before{content:""}.icon-cluo-shilileixing:before{content:""}.icon-cluo-bujian:before{content:""}.icon-cluo-zuhugongnengshezhi:before{content:""}.icon-cluo-tongzhizhongxin:before{content:""}.icon-cluo-zuhuguanli:before{content:""}.icon-cluo-SCADA:before{content:""}.icon-cluo-tuxiang:before{content:""}.icon-cluo-oauth2shenfenyanzheng-1:before{content:""}.icon-cluo-shuangyinsurenzheng:before{content:""}.icon-cluo-ziyuanku:before{content:""}.icon-cluo-shezhi:before{content:""}.icon-cluo-a-ziyuan124:before{content:""}.icon-cluo-anquan:before{content:""}.icon-cluo-fenxi:before{content:""}@font-face{font-family:AlibabaPuHuiTi;src:url(/assets/AlibabaPuHuiTi-3-55-Regular-BzU-3NET.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@keyframes visFadeIn{0%{opacity:0}to{opacity:1}}@keyframes visSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes visScrollUp{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes visScrollDown{0%{transform:translateY(-50%)}to{transform:translateY(0)}}@keyframes visBlink{0%,to{opacity:1}50%{opacity:.2}}@keyframes visBreath{0%,to{opacity:1;filter:brightness(1)}50%{opacity:.82;filter:brightness(1.12)}}html,body,#root{margin:0;height:100%;font-family:AlibabaPuHuiTi,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body{background:var(--vis-bg-base, #0f1115);color:var(--vis-text, rgba(255, 255, 255, .85));transition:background-color .2s ease,color .2s ease}html[data-runtime-view]{--vis-runtime-letterbox: #ffffff;--vis-runtime-text-secondary: rgba(0, 0, 0, .45);--vis-bg-base: var(--vis-runtime-letterbox);--vis-bg-elevated: #ffffff;--vis-bg-canvas: transparent;--vis-scene-canvas-bg: #ffffff;color-scheme:light;overflow:hidden;height:100%}html[data-runtime-view] body{background:var(--vis-runtime-letterbox);color:#000000e0;overflow:hidden;height:100%}html[data-runtime-view] #root{overflow:hidden;height:100%}.vis-runtime-page.ant-layout{background:var(--vis-runtime-letterbox, #ffffff)!important;overflow:hidden;height:100%;min-height:0!important}.vis-runtime-page--ready.ant-layout{background:var(--vis-runtime-letterbox, #ffffff)!important}.vis-theme-switcher{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--vis-border);border-radius:6px;background:var(--vis-bg-elevated);color:var(--vis-text);cursor:pointer;font-family:inherit;font-size:13px}.vis-theme-switcher:hover{border-color:#1677ff;color:#1677ff}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--vis-border);background:var(--vis-bg-elevated)}.app-topbar__actions{display:flex;align-items:center;gap:12px}.app-topbar__user{font-size:13px;color:var(--vis-text-secondary)}.collab-presence-bar{margin-left:8px}.editor-layout{height:100vh;display:flex;flex-direction:column}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;flex-wrap:nowrap;overflow:hidden}.editor-header__left{min-width:0;flex:1;overflow:hidden;flex-wrap:nowrap!important}.editor-header__right{flex-shrink:0;flex-wrap:nowrap!important}.editor-readonly-banner{flex-shrink:0}.editor-body{flex:1;display:flex;flex-direction:column;min-height:0}.editor-workspace{flex:1;min-height:0;display:flex;flex-direction:column}.editor-workspace-header{flex-shrink:0;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--vis-border);background:var(--vis-bg-elevated)}.editor-workspace-header__left{justify-self:start}.editor-workspace-header__tool-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.editor-workspace-header__tabs{justify-self:center;margin-bottom:0!important}.editor-workspace-header__tabs .ant-tabs-nav{margin-bottom:0}.editor-workspace-header__tabs .ant-tabs-nav:before{border-bottom:none}.editor-workspace-header__right{justify-self:end}.editor-sidebar-panel{height:100%;overflow:auto;padding:8px}.editor-sidebar-panel__section{margin-top:16px;padding-top:12px;border-top:1px solid var(--vis-border)}.editor-panel,.editor-tab-pane{flex:1;min-height:0;display:flex;flex-direction:column}.editor-tab-pane[hidden]{display:none!important}.editor-workspace-header__hybrid-pane,.editor-workspace-header__sidebar-tools{min-width:120px;min-height:24px}.editor-workspace-header__sidebar-tools--scene{min-width:200px}.editor-body__inner{flex:1;display:flex;min-height:0;width:100%}.editor-body--readonly .editor-edit-zone{opacity:.82}.editor-body--readonly .editor-edit-zone fieldset[disabled]{opacity:1}.editor-body--readonly .editor-edit-zone .ant-input,.editor-body--readonly .editor-edit-zone .ant-input-number,.editor-body--readonly .editor-edit-zone .ant-select-selector,.editor-body--readonly .editor-edit-zone .ant-btn:not(.ant-btn-link){cursor:not-allowed}.editor-body--readonly .dashboard-canvas .dashboard-node{cursor:default!important}.editor-body--readonly .dashboard-canvas .resize-handle{display:none!important}.editor-sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--vis-border);background:var(--vis-bg-elevated);display:flex;flex-direction:column;min-height:0;transition:width .2s ease}.editor-sidebar--collapsed{width:36px}.editor-sidebar__header{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--vis-border)}.editor-sidebar--collapsed .editor-sidebar__header{justify-content:center;padding:8px 4px}.editor-sidebar__title{flex:1;font-size:13px;font-weight:600;color:var(--vis-text-primary, var(--vis-text));white-space:nowrap}.editor-sidebar__toggle{flex-shrink:0}.editor-sidebar__body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.editor-sidebar__body fieldset{flex:1;min-height:0;display:flex;flex-direction:column}.editor-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.editor-main--dataflow{overflow:hidden}.dataflow-editor-canvas{flex:1;min-height:0;min-width:0;position:relative;overflow:hidden}.dataflow-editor-canvas .react-flow{width:100%;height:100%}.editor-sidebar--dataflow{overflow:hidden}.editor-sidebar--dataflow .editor-sidebar__body{display:block;overflow:auto;overscroll-behavior:contain}.editor-sidebar--dataflow .editor-sidebar__body fieldset{display:block;flex:none;min-height:auto}.vis-overlay-scroll{scrollbar-width:thin;scrollbar-color:transparent transparent}.vis-overlay-scroll.is-scrolling,.vis-overlay-scroll:hover{scrollbar-color:rgba(255,255,255,.28) transparent}.vis-overlay-scroll::-webkit-scrollbar{width:8px;height:8px;background:transparent}.vis-overlay-scroll::-webkit-scrollbar-track{background:transparent}.vis-overlay-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;border:2px solid transparent;background-clip:content-box}.vis-overlay-scroll.is-scrolling::-webkit-scrollbar-thumb,.vis-overlay-scroll:hover::-webkit-scrollbar-thumb{background-color:#ffffff47;background-clip:content-box}.vis-overlay-scroll.is-scrolling::-webkit-scrollbar-thumb:hover,.vis-overlay-scroll:hover::-webkit-scrollbar-thumb:hover{background-color:#ffffff6b}[data-theme=minimal] .vis-overlay-scroll.is-scrolling,[data-theme=minimal] .vis-overlay-scroll:hover{scrollbar-color:rgba(0,0,0,.28) transparent}[data-theme=minimal] .vis-overlay-scroll.is-scrolling::-webkit-scrollbar-thumb,[data-theme=minimal] .vis-overlay-scroll:hover::-webkit-scrollbar-thumb{background-color:#00000047}[data-theme=minimal] .vis-overlay-scroll.is-scrolling::-webkit-scrollbar-thumb:hover,[data-theme=minimal] .vis-overlay-scroll:hover::-webkit-scrollbar-thumb:hover{background-color:#0000006b}.dataflow-canvas-scrollbar{position:absolute;z-index:6;background:transparent;overscroll-behavior:contain;opacity:0;pointer-events:none;transition:opacity .18s ease}.dataflow-canvas-scrollbar.is-scrolling,.dataflow-canvas-scrollbar:hover{opacity:1;pointer-events:auto}.dataflow-canvas-scrollbar--h{left:0;right:8px;bottom:0;height:10px;overflow-x:auto;overflow-y:hidden}.dataflow-canvas-scrollbar--v{top:0;right:0;bottom:8px;width:10px;overflow-y:auto;overflow-x:hidden}.dataflow-palette-item{cursor:grab;width:100%}.dataflow-palette-item:active{cursor:grabbing}.inject-flow-node{display:flex;align-items:stretch;min-width:160px;max-width:220px;background:var(--vis-bg-elevated, #1a1d24);border:1px solid var(--vis-border, #333);border-radius:6px;box-shadow:0 1px 4px #00000040;color:var(--vis-text, #e8e8e8);font-size:12px}.inject-flow-node--error{border-color:#ff4d4f}.inject-flow-node__fire{flex:0 0 28px;border:none;border-right:1px solid var(--vis-border, #333);border-radius:6px 0 0 6px;background:#52c41a2e;color:#73d13d;cursor:pointer;font-size:11px;padding:0}.inject-flow-node__fire:hover{background:#52c41a52}.inject-flow-node__body{flex:1;padding:8px 10px;min-width:0}.inject-flow-node__title{font-weight:600;line-height:1.3}.inject-flow-node__sub{margin-top:2px;font-size:11px;opacity:.65;line-height:1.3;word-break:break-all}.inject-flow-node__handle{width:8px!important;height:8px!important;background:#69b1ff!important;border:none!important}.debug-flow-node{display:flex;align-items:stretch;min-width:160px;max-width:240px;background:var(--vis-bg-elevated, #1a1d24);border:1px solid var(--vis-border, #333);border-radius:6px;box-shadow:0 1px 4px #00000040;color:var(--vis-text, #e8e8e8);font-size:12px}.debug-flow-node--error{border-color:#ff4d4f}.debug-flow-node--off{opacity:.55}.debug-flow-node__body{flex:1;padding:8px 10px;min-width:0}.debug-flow-node__title{font-weight:600;line-height:1.3}.debug-flow-node__status{margin-top:2px;font-size:11px;opacity:.7;line-height:1.3;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#95de64}.debug-flow-node--off .debug-flow-node__status{color:inherit;opacity:.55}.debug-flow-node__toggle{flex:0 0 28px;border:none;border-left:1px solid var(--vis-border, #333);border-radius:0 6px 6px 0;background:#52c41a2e;color:#73d13d;cursor:pointer;font-size:12px;padding:0;line-height:1}.debug-flow-node__toggle:hover{background:#52c41a52}.debug-flow-node--off .debug-flow-node__toggle{background:#ffffff0f;color:#8c8c8c}.debug-flow-node__handle{width:8px!important;height:8px!important;background:#95de64!important;border:none!important}.event-source-flow-node{display:flex;align-items:stretch;min-width:168px;max-width:240px;background:var(--vis-bg-elevated, #1a1d24);border:1px solid var(--vis-border, #333);border-radius:6px;box-shadow:0 1px 4px #00000040;color:var(--vis-text, #e8e8e8);font-size:12px}.event-source-flow-node--error{border-color:#ff4d4f}.event-source-flow-node__badge{flex:0 0 34px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--vis-border, #333);border-radius:6px 0 0 6px;font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1}.event-source-flow-node--timeline .event-source-flow-node__badge{background:#faad1429;color:#ffc53d}.event-source-flow-node--scene .event-source-flow-node__badge{background:#13c2c229;color:#36cfc9}.event-source-flow-node--dashboard .event-source-flow-node__badge{background:#1677ff29;color:#69b1ff}.event-source-flow-node__body{flex:1;padding:8px 10px;min-width:0}.event-source-flow-node__title{font-weight:600;line-height:1.3}.event-source-flow-node__sub{margin-top:2px;font-size:11px;opacity:.65;line-height:1.3;word-break:break-all}.event-source-flow-node__status{margin-top:4px;font-size:11px;line-height:1.3;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;opacity:.85}.event-source-flow-node--timeline .event-source-flow-node__status{color:#ffc53d}.event-source-flow-node--scene .event-source-flow-node__status{color:#36cfc9}.event-source-flow-node--dashboard .event-source-flow-node__status{color:#69b1ff}.event-source-flow-node__handle{width:8px!important;height:8px!important;border:none!important}.event-source-flow-node--timeline .event-source-flow-node__handle{background:#ffc53d!important}.event-source-flow-node--scene .event-source-flow-node__handle{background:#36cfc9!important}.event-source-flow-node--dashboard .event-source-flow-node__handle{background:#69b1ff!important}.event-source-flow-node__run{flex:0 0 28px;border:none;border-left:1px solid var(--vis-border, #333);border-radius:0;background:#1677ff2e;color:#69b1ff;cursor:pointer;font-size:11px;padding:0}.event-source-flow-node__run:last-of-type{border-radius:0 6px 6px 0}.event-source-flow-node__run--alt{flex:0 0 24px;background:#1677ff1a;font-size:10px}.event-source-flow-node__run:hover{background:#1677ff52}.rest-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:260px;background:var(--vis-bg-elevated, #1a1d24);border:1px solid var(--vis-border, #333);border-radius:6px;box-shadow:0 1px 4px #00000040;color:var(--vis-text, #e8e8e8);font-size:12px}.rest-flow-node--error{border-color:#ff4d4f}.rest-flow-node__fire{flex:0 0 28px;border:none;border-right:1px solid var(--vis-border, #333);border-radius:6px 0 0 6px;background:#1677ff2e;color:#69b1ff;cursor:pointer;font-size:11px;padding:0}.rest-flow-node__fire:hover{background:#1677ff52}.rest-flow-node__body{flex:1;padding:8px 10px;min-width:0}.rest-flow-node__title{font-weight:600;line-height:1.3}.rest-flow-node__sub{margin-top:2px;font-size:11px;opacity:.65;line-height:1.3;word-break:break-all}.rest-flow-node__status{margin-top:4px;font-size:11px;line-height:1.3;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#69b1ff;opacity:.9}.rest-flow-node__handle{width:8px!important;height:8px!important;background:#69b1ff!important;border:none!important}.ws-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:260px;background:var(--vis-bg-elevated, #1a1d24);border:1px solid var(--vis-border, #333);border-radius:6px;box-shadow:0 1px 4px #00000040;color:var(--vis-text, #e8e8e8);font-size:12px}.ws-flow-node--error{border-color:#ff4d4f}.ws-flow-node__badge{flex:0 0 28px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--vis-border, #333);border-radius:6px 0 0 6px;background:#13c2c229;color:#5cdbd3;font-size:10px;font-weight:700;letter-spacing:.02em}.ws-flow-node__body{flex:1;padding:8px 10px;min-width:0}.ws-flow-node__title{font-weight:600;line-height:1.3;word-break:break-word}.ws-flow-node__sub{margin-top:2px;color:var(--vis-text-secondary, #9aa0a6);font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-flow-node__status{margin-top:4px;color:#5cdbd3;font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-flow-node__handle{width:8px!important;height:8px!important;background:#5cdbd3!important;border:none!important}.script-flow-node{display:flex;align-items:stretch;min-width:180px;max-width:260px;border-radius:8px;border:1px solid rgba(255,193,7,.45);background:#141418eb;overflow:hidden;box-shadow:0 2px 8px #00000040}.script-flow-node--error{border-color:#ff4d4f}.script-flow-node__badge{display:flex;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.02em;color:#141414;background:linear-gradient(180deg,#ffd666,#faad14)}.script-flow-node__body{flex:1;min-width:0;padding:8px 10px}.script-flow-node__title{font-size:12px;font-weight:600;color:#ffffffeb}.script-flow-node__sub{margin-top:2px;font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.script-flow-node__status{margin-top:4px;font-size:11px;color:#ffd666e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.script-flow-node__run{width:28px;flex-shrink:0;border:none;border-left:1px solid rgba(255,193,7,.25);background:transparent;color:#ffd666;cursor:pointer;font-size:11px}.script-flow-node__run:hover{background:#faad1426}.script-flow-node__handle{width:8px!important;height:8px!important;background:#ffd666!important;border:none!important}.context-set-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:260px;border-radius:8px;border:1px solid rgba(146,84,222,.45);background:#14141cf0;overflow:hidden;box-shadow:0 2px 8px #00000040}.context-set-flow-node--error{border-color:#ff4d4f}.context-set-flow-node__badge{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:.04em;color:#f9f0ff;background:linear-gradient(180deg,#b37feb,#722ed1)}.context-set-flow-node__body{flex:1;min-width:0;padding:8px 10px}.context-set-flow-node__title{font-size:12px;font-weight:600;color:#ffffffeb}.context-set-flow-node__sub{margin-top:2px;font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.context-set-flow-node__status{margin-top:4px;font-size:11px;color:#b37febf2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-set-flow-node__handle{width:8px!important;height:8px!important;background:#b37feb!important;border:none!important}.context-get-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:260px;border-radius:8px;border:1px solid rgba(64,169,255,.45);background:#121820f0;overflow:hidden;box-shadow:0 2px 8px #00000040}.context-get-flow-node--error{border-color:#ff4d4f}.context-get-flow-node__badge{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:.04em;color:#e6f4ff;background:linear-gradient(180deg,#69b1ff,#1677ff)}.context-get-flow-node__body{flex:1;min-width:0;padding:8px 10px}.context-get-flow-node__title{font-size:12px;font-weight:600;color:#ffffffeb}.context-get-flow-node__sub{margin-top:2px;font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.context-get-flow-node__status{margin-top:4px;font-size:11px;color:#69b1fff2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-get-flow-node__handle{width:8px!important;height:8px!important;background:#69b1ff!important;border:none!important}.dashboard-bind-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:280px;border-radius:8px;border:1px solid rgba(82,196,26,.45);background:#121a14f0;overflow:hidden;box-shadow:0 2px 8px #00000040}.dashboard-bind-flow-node--error{border-color:#ff4d4f}.dashboard-bind-flow-node__badge{display:flex;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#f6ffed;background:linear-gradient(180deg,#95de64,#52c41a)}.dashboard-bind-flow-node__body{flex:1;min-width:0;padding:8px 10px}.dashboard-bind-flow-node__title-row{display:flex;align-items:center;gap:6px;min-width:0}.dashboard-bind-flow-node__title{flex:1;min-width:0;font-size:12px;font-weight:600;color:#ffffffeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-bind-flow-node__count{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:10px;font-weight:700;line-height:18px;text-align:center;color:#135200;background:#b7eb8f}.dashboard-bind-flow-node__sub{margin-top:2px;font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dashboard-bind-flow-node__status{margin-top:4px;font-size:11px;color:#95de64f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-bind-flow-node__handle{width:8px!important;height:8px!important;background:#73d13d!important;border:none!important}.output-flow-node{display:flex;align-items:stretch;min-width:176px;max-width:280px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#121624f0;overflow:hidden;box-shadow:0 2px 8px #00000040;color:#ffffffeb;font-size:12px}.output-flow-node--error{border-color:#ff4d4f}.output-flow-node--scene{border-color:#36cfc973;background:#101a1cf0}.output-flow-node--http{border-color:#fa8c1673;background:#1a1410f0}.output-flow-node__badge{display:flex;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;color:#fff;background:#ffffff1f}.output-flow-node--scene .output-flow-node__badge{color:#e6fffb;background:linear-gradient(180deg,#5cdbd3,#13a8a8)}.output-flow-node--http .output-flow-node__badge{color:#fff7e6;background:linear-gradient(180deg,#ffc069,#fa8c16)}.output-flow-node__body{flex:1;min-width:0;padding:8px 10px}.output-flow-node__title{font-size:12px;font-weight:600;color:#ffffffeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.output-flow-node__sub{margin-top:2px;font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.output-flow-node__status{margin-top:4px;font-size:11px;color:#ffffff61;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.output-flow-node--scene .output-flow-node__status{color:#36cfc9f2}.output-flow-node--http .output-flow-node__status{color:#ffc069f2}.output-flow-node__handle{width:8px!important;height:8px!important;background:#69b1ff!important;border:none!important}.output-flow-node--scene .output-flow-node__handle{background:#36cfc9!important}.output-flow-node--http .output-flow-node__handle{background:#ffc069!important}.dashboard-bind-catalog{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;min-width:0}.dashboard-bind-catalog__item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;gap:2px 8px;width:100%;margin:0;padding:8px;border:1px solid var(--vis-border, rgba(0, 0, 0, .12));border-radius:6px;background:var(--vis-bg, transparent);color:inherit;text-align:left;cursor:pointer;font:inherit}.dashboard-bind-catalog__item:hover:not(:disabled){border-color:#52c41a8c;background:#52c41a0f}.dashboard-bind-catalog__item:disabled{cursor:default;opacity:.55}.dashboard-bind-catalog__item--used{opacity:.5}.dashboard-bind-catalog__name{grid-column:1;grid-row:1;font-size:12px;font-weight:600}.dashboard-bind-catalog__action{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:11px;color:#389e0d;white-space:nowrap}.dashboard-bind-catalog__item--used .dashboard-bind-catalog__action{color:inherit;opacity:.7}.dashboard-bind-catalog__meta{grid-column:1;grid-row:2;display:flex;align-items:center;gap:6px;min-width:0;font-size:11px}.dashboard-bind-catalog__kind{flex-shrink:0;padding:0 5px;border-radius:3px;background:#0000000f;opacity:.85}.dashboard-bind-catalog__path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.65;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dashboard-bind-catalog__desc{grid-column:1 / -1;grid-row:3;font-size:11px;opacity:.55;line-height:1.35}.dashboard-bind-props{display:flex;flex-direction:column;gap:8px;width:100%;max-width:100%;min-width:0}.editor-props .ant-form-item:has(.dashboard-bind-props) .ant-form-item-control-input-content{min-width:0;max-width:100%}.dashboard-bind-props .ant-input,.dashboard-bind-props .ant-input-affix-wrapper,.dashboard-bind-props .ant-select,.dashboard-bind-props .ant-picker,.dashboard-bind-props textarea.ant-input{max-width:100%}.dashboard-bind-props__empty{font-size:12px;color:var(--vis-text-muted, rgba(0, 0, 0, .45));padding:6px 0}.dashboard-bind-props__card{border:1px solid var(--vis-border, rgba(0, 0, 0, .12));border-radius:6px;background:var(--vis-bg, transparent);overflow:hidden;min-width:0}.dashboard-bind-props__card--open{border-color:#52c41a73}.dashboard-bind-props__card-head{display:flex;align-items:stretch;min-width:0;gap:0}.dashboard-bind-props__card-summary{flex:1;min-width:0;display:flex;align-items:center;gap:4px;margin:0;padding:6px 8px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.dashboard-bind-props__card-summary:hover{background:#0000000a}.dashboard-bind-props__card-actions{flex-shrink:0;display:flex;align-items:center;padding-right:2px}.dashboard-bind-props__card-actions .ant-btn{width:22px;min-width:22px;padding-inline:0}.dashboard-bind-props__card-body{padding:0 8px 8px;border-top:1px solid var(--vis-border, rgba(0, 0, 0, .08));min-width:0}.dashboard-bind-props__card-body .ant-form-item{margin-bottom:8px}.dashboard-bind-props__card-body .ant-form-item:last-child{margin-bottom:0}.dashboard-bind-props__idx{flex-shrink:0;opacity:.55;font-weight:600;font-size:12px}.dashboard-bind-props__path{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dashboard-bind-props__arrow{flex-shrink:0;opacity:.45;font-size:11px}.dashboard-bind-props__val{flex:0 1 72px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.dashboard-bind-props__chevron{flex-shrink:0;opacity:.45;font-size:11px;width:12px;text-align:center}.dashboard-bind-props__quick{display:flex;flex-direction:column;gap:6px;min-width:0}.dashboard-bind-props__quick-label{font-size:12px;opacity:.65}.dashboard-bind-props__quick-tags{display:flex;flex-wrap:wrap;gap:4px}.dashboard-bind-props__quick-tag{cursor:pointer;-webkit-user-select:none;user-select:none;margin-inline-end:0!important}.dataflow-debug-panel{flex-shrink:0;border-top:1px solid var(--vis-border);background:var(--vis-bg-elevated)}.editor-props{width:300px;flex-shrink:0;border-left:1px solid var(--vis-border);background:var(--vis-bg-elevated);display:flex;flex-direction:column;min-height:0;transition:width .2s ease}.editor-props--collapsed{width:36px}.editor-props__header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--vis-border)}.editor-props--collapsed .editor-props__header{justify-content:center;padding:8px 4px}.editor-props__title{font-size:13px;font-weight:600;color:var(--vis-text-primary, var(--vis-text));white-space:nowrap}.editor-props__toggle{flex-shrink:0}.editor-props__body{flex:1;min-height:0;overflow:auto}.editor-props__body:has(.scene-right-panel-tabs){overflow:hidden;display:flex;flex-direction:column}.menu-preview-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--vis-bg-elevated)}.menu-preview{border-radius:8px;overflow:hidden;box-shadow:0 4px 24px #0003;min-height:320px}.menu-preview--dark{background:#1f1f1f;color:#fff}.menu-preview--light{background:#fff;color:#333;border:1px solid var(--vis-border)}.menu-preview__brand{padding:16px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}.menu-preview--light .menu-preview__brand{border-bottom-color:var(--vis-border)}.menu-preview__item{padding:10px 16px;cursor:default}.menu-preview__item:hover{background:#ffffff0f}.menu-preview--light .menu-preview__item:hover{background:#0000000a}.menu-preview__group-label{padding:8px 16px 4px;font-size:12px;opacity:.6}.menu-preview__divider{height:1px;margin:8px 12px;background:#ffffff1f}.menu-preview--light .menu-preview__divider{background:var(--vis-border)}.dashboard-canvas-wrap{grid-column:2;grid-row:2;overflow:auto;position:relative;background:var(--vis-bg-elevated)}.dashboard-canvas-wrap--adaptive{overflow:hidden}.dashboard-canvas-scroll-surface{position:relative;min-width:100%;min-height:100%}.canvas-stage-body{flex:1;display:grid;grid-template-columns:24px 1fr;grid-template-rows:24px 1fr;min-height:0;overflow:hidden}.canvas-ruler-corner{grid-column:1;grid-row:1;background:var(--vis-bg-elevated);border-right:1px solid var(--vis-border);border-bottom:1px solid var(--vis-border)}.canvas-ruler{position:relative;overflow:hidden;background:var(--vis-bg-elevated);-webkit-user-select:none;user-select:none;cursor:crosshair}.canvas-ruler--h{grid-column:2;grid-row:1;border-bottom:1px solid var(--vis-border)}.canvas-ruler--v{grid-column:1;grid-row:2;border-right:1px solid var(--vis-border)}.canvas-floating-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:2px;padding:4px 8px;border-radius:10px;background:var(--vis-bg-elevated);border:1px solid var(--vis-border);box-shadow:0 6px 24px #0000002e;max-width:calc(100% - 32px);flex-wrap:wrap;justify-content:center;pointer-events:auto}.canvas-floating-toolbar--collapsed{gap:4px;padding:4px 6px;flex-wrap:nowrap}.canvas-floating-toolbar__group{display:flex;align-items:center;gap:2px}.canvas-floating-toolbar__divider{height:20px;margin:0 4px;border-color:var(--vis-border)}.canvas-floating-toolbar__label{font-size:11px;opacity:.65;padding:0 4px;white-space:nowrap}.canvas-floating-toolbar__btn{min-width:28px;padding-inline:6px}.canvas-floating-toolbar__settings{width:240px}.canvas-floating-toolbar__settings-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12px}.canvas-floating-toolbar__settings-hint{font-size:11px;opacity:.55;margin-bottom:4px}.canvas-ruler--disabled{cursor:default;opacity:.55}.canvas-ruler__tick{position:absolute;font-size:10px;line-height:1;color:var(--vis-text-muted, #888);pointer-events:none}.canvas-ruler--h .canvas-ruler__tick{top:2px;transform:translate(-50%);padding-left:2px}.canvas-ruler--v .canvas-ruler__tick{left:2px;transform:translateY(-50%);writing-mode:vertical-rl;text-orientation:mixed}.canvas-guide-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9000}.canvas-guide{position:absolute;pointer-events:auto;background:#f5222d;opacity:.85;cursor:move}.canvas-guide--vertical{top:0;width:1px;transform:translate(-.5px)}.canvas-guide--horizontal{left:0;height:1px;transform:translateY(-.5px)}.canvas-guide--preview{opacity:.45;background:#fa8c16}.canvas-guide--align{background:#1677ff;opacity:.9;pointer-events:none;z-index:9001}.dashboard-canvas{position:absolute;transform-origin:0 0;box-shadow:0 0 0 1px var(--vis-border);background:var(--vis-bg-canvas)}.dashboard-canvas--transparent{background-color:#fff;background-image:linear-gradient(45deg,#e8e8e8 25%,transparent 25%),linear-gradient(-45deg,#e8e8e8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e8e8e8 75%),linear-gradient(-45deg,transparent 75%,#e8e8e8 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.canvas-props-panel{padding:12px}.canvas-props-panel__title{font-weight:600;margin-bottom:4px}.canvas-props-panel__hint,.canvas-props-panel__subhint{font-size:12px;opacity:.55;margin:0 0 12px}.dataflow-canvas-props{display:flex;flex-direction:column;min-height:0}.context-bus-panel--embedded{min-width:0}.context-bus-panel__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 10px;margin-bottom:10px}.context-bus-panel__title{font-size:13px;font-weight:600}.context-bus-panel__hint{font-size:11px;opacity:.55}.context-bus-panel__hint code{font-size:11px}.context-bus-panel__rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.context-bus-panel__empty{font-size:12px;opacity:.5;padding:4px 0}.context-bus-panel__row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 6px;align-items:start;padding:8px;border:1px solid var(--vis-border, #333);border-radius:6px;background:#8080800f}.context-bus-panel__row>.ant-input:first-child{grid-column:1;grid-row:1}.context-bus-panel__row>.ant-btn{grid-column:2;grid-row:1;width:28px;padding:0}.context-bus-panel__row>.ant-input-textarea{grid-column:1 / -1;grid-row:2}.context-bus-panel__actions{margin-bottom:4px}.context-bus-panel__live{margin-top:4px}.context-bus-panel__live .ant-collapse-header{padding:6px 0!important;font-size:12px!important}.context-bus-panel__live .ant-collapse-content-box{padding:0 0 4px!important}.context-bus-panel__live-json{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.4}.canvas-props-panel__inbound-item.ant-form-item{margin-bottom:8px}.canvas-props-panel__inbound-item .ant-form-item-control-input-content{min-width:0}.canvas-props-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:360px;overflow:auto}.canvas-props-asset-thumb{aspect-ratio:1;border:2px solid var(--vis-border);border-radius:6px;padding:0;overflow:hidden;cursor:pointer;background:var(--vis-bg-subtle)}.canvas-props-asset-thumb--selected{border-color:#1677ff;box-shadow:0 0 0 1px #1677ff}.canvas-props-asset-thumb img{width:100%;height:100%;object-fit:cover;display:block}.basic-icon-props__preview{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--vis-border);border-radius:6px;background:var(--vis-bg-subtle);color:inherit;cursor:pointer;text-align:left}.basic-icon-props__preview:hover:not(:disabled){border-color:#1677ff8c}.basic-icon-props__preview:disabled{cursor:not-allowed;opacity:.65}.basic-icon-props__preview-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.basic-icon-props__preview-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-icon-props__preview-key{font-size:11px;opacity:.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-icon-props__preview-action{flex-shrink:0;font-size:12px;color:#1677ff}.iconfont-picker__meta{font-size:11px;opacity:.5;margin-bottom:8px}.iconfont-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:360px;overflow:auto}.iconfont-picker__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--vis-border);border-radius:6px;background:var(--vis-bg-subtle);cursor:pointer;color:inherit}.iconfont-picker__item:hover{border-color:#1677ff8c}.iconfont-picker__item--selected{border-color:#1677ff;box-shadow:0 0 0 1px #1677ff}.iconfont-picker__label{font-size:11px;opacity:.65;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconfont-picker__empty{padding:24px;text-align:center;font-size:12px;opacity:.55}.runtime-canvas--transparent{background:transparent!important}[data-theme=minimal] .dashboard-canvas{box-shadow:0 2px 12px #0000000f}.dashboard-node{position:absolute;cursor:move}.dashboard-runtime-node[data-node-type^=chart-]{overflow:hidden}.vis-adaptive-echarts{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-width:0;min-height:0}.vis-adaptive-echarts .echarts-for-react{width:100%!important;height:100%!important;min-height:100%!important}.vis-adaptive-echarts .echarts-for-react>div{width:100%!important;height:100%!important;min-height:100%!important}.vis-echarts-tooltip{background:#141820eb!important;border:1px solid rgba(255,255,255,.12)!important;color:#e8e8e8!important;box-shadow:0 4px 16px #00000059!important;line-height:1.5!important}.vis-echarts-tooltip,.vis-echarts-tooltip *{color:#e8e8e8!important}.vis-scroll-panel{width:100%;height:100%;box-sizing:border-box}.vis-scroll-panel__viewport{width:100%;height:100%;overflow:hidden;position:relative}.vis-scroll-panel__track{display:flex;flex-direction:column}.vis-scroll-panel__card{display:flex;align-items:center;gap:12px;box-sizing:border-box;flex-shrink:0}.vis-scroll-panel__icon{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center}.vis-scroll-panel__dot{width:8px;height:8px;border-radius:50%;display:block}.vis-scroll-panel__body{flex:1;min-width:0}.vis-scroll-panel__title{font-weight:600;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision}.vis-scroll-panel__subtitle{line-height:1.35;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision}.vis-scroll-panel__status{flex-shrink:0;font-weight:500;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision}.vis-camera-monitor{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;padding:8px;gap:8px}.vis-camera-monitor__grid{flex:1;min-height:0;display:grid;width:100%}.vis-camera-monitor__tile{position:relative;overflow:hidden;cursor:pointer;background:#1a1a1a;min-height:0}.vis-camera-monitor__tile:focus-visible{outline:2px solid #1677ff;outline-offset:2px}.vis-camera-monitor__preview{width:100%;height:100%;display:block;pointer-events:none}.vis-camera-monitor__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff73;font-size:12px;background:linear-gradient(135deg,#2a3340,#1a2030)}.vis-camera-monitor__label{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;letter-spacing:.02em;text-shadow:0 1px 4px rgba(0,0,0,.65);pointer-events:none;z-index:1}.vis-camera-monitor__live-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px #ff4d4fcc}.vis-camera-monitor__pagination{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 0 2px;-webkit-user-select:none;user-select:none}.vis-camera-monitor__page-btn{border:1px solid rgba(0,0,0,.12);background:#fff;color:#333;border-radius:4px;padding:2px 10px;font-size:12px;cursor:pointer;line-height:1.6}.vis-camera-monitor__page-btn:disabled{opacity:.45;cursor:not-allowed}.vis-camera-monitor__page-info{font-size:12px;color:#0000008c;min-width:48px;text-align:center}.vis-camera-modal__body{position:relative;aspect-ratio:16 / 9;background:#000}.vis-camera-modal__video{width:100%;height:100%;display:block;background:#000}.vis-camera-modal__empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ffffff8c;font-size:14px}.vis-dashboard-table{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.vis-dashboard-table__header{flex-shrink:0;overflow:hidden}.vis-dashboard-table__header table,.vis-dashboard-table__body table,.vis-dashboard-table__track table{width:100%;border-collapse:collapse;table-layout:fixed}.vis-dashboard-table__viewport{flex:1;min-height:0;overflow:hidden;position:relative}.vis-dashboard-table__viewport--manual{overflow-y:auto}.vis-dashboard-table__viewport--hide-scrollbar{scrollbar-width:none}.vis-dashboard-table__viewport--hide-scrollbar::-webkit-scrollbar{display:none}.vis-dashboard-table__track{display:block}.vis-dashboard-table__row{cursor:pointer}.vis-dashboard-table__row:hover{filter:brightness(1.08)}.vis-dashboard-table th,.vis-dashboard-table td{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision}.vis-dashboard-table__cell{display:flex;align-items:center;gap:6px;min-width:0;width:100%}.vis-dashboard-table__cell--center{justify-content:center}.vis-dashboard-table__cell--right{justify-content:flex-end}.vis-dashboard-table__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.vis-dashboard-table__cell-icon{flex-shrink:0;line-height:1}.dashboard-node[data-node-type^=chart-]{overflow:hidden}.selection-marquee{position:absolute;border:1px dashed #1677ff;background:#1677ff1f;pointer-events:none;z-index:9999}.dashboard-node.selected{outline:2px solid #1677ff;outline-offset:1px}.dashboard-node.locked{cursor:not-allowed;opacity:.7}.vis-basic-rect-wrap.vis-basic-rect--hover>.vis-basic-rect__body>.vis-basic-rect{transform-origin:center center;transition:transform var(--vis-rect-hover-ms, .2s) ease,box-shadow var(--vis-rect-hover-ms, .2s) ease,filter var(--vis-rect-hover-ms, .2s) ease,border-color var(--vis-rect-hover-ms, .2s) ease,border-width var(--vis-rect-hover-ms, .2s) ease}.vis-basic-rect-wrap.vis-basic-rect--hover:hover>.vis-basic-rect__body>.vis-basic-rect{will-change:transform,box-shadow,filter,border-color}.vis-basic-rect-wrap.vis-basic-rect--hover:hover{position:relative;z-index:2}.vis-basic-rect-wrap.vis-basic-rect--hover-glow:hover>.vis-basic-rect__body>.vis-basic-rect{box-shadow:0 0 var(--vis-rect-hover-glow-blur, 16px) var(--vis-rect-hover-glow-color, rgba(255, 255, 255, .55))}.vis-basic-rect-wrap.vis-basic-rect--hover-brighten:hover>.vis-basic-rect__body>.vis-basic-rect{filter:brightness(var(--vis-rect-hover-brighten, 1.12))}.vis-basic-rect-wrap.vis-basic-rect--hover-lift:hover>.vis-basic-rect__body>.vis-basic-rect{transform:translateY(var(--vis-rect-hover-lift-y, -2px));box-shadow:0 10px 24px #00000047}.vis-basic-rect-wrap.vis-basic-rect--hover-border:hover>.vis-basic-rect__body>.vis-basic-rect{border-style:solid!important;border-width:var(--vis-rect-hover-border-width, 2px)!important;border-color:var(--vis-rect-hover-border-color, #ffffff)!important}.vis-basic-rect-wrap.vis-basic-rect--hover-scale:hover>.vis-basic-rect__body>.vis-basic-rect{transform:scale(var(--vis-rect-hover-scale, 1.03))}.vis-basic-button-wrap.vis-basic-button--hover>.vis-basic-button{transform-origin:center center;transition:transform var(--vis-rect-hover-ms, .2s) ease,box-shadow var(--vis-rect-hover-ms, .2s) ease,filter var(--vis-rect-hover-ms, .2s) ease,border-color var(--vis-rect-hover-ms, .2s) ease,border-width var(--vis-rect-hover-ms, .2s) ease}.vis-basic-button-wrap.vis-basic-button--hover:hover>.vis-basic-button{will-change:transform,box-shadow,filter,border-color}.vis-basic-button-wrap.vis-basic-button--hover:hover{position:relative;z-index:2}.vis-basic-button-wrap.vis-basic-button--hover-glow:hover>.vis-basic-button{box-shadow:0 0 var(--vis-rect-hover-glow-blur, 16px) var(--vis-rect-hover-glow-color, rgba(255, 255, 255, .55))}.vis-basic-button-wrap.vis-basic-button--hover-brighten:hover>.vis-basic-button{filter:brightness(var(--vis-rect-hover-brighten, 1.12))}.vis-basic-button-wrap.vis-basic-button--hover-lift:hover>.vis-basic-button{transform:translateY(var(--vis-rect-hover-lift-y, -2px));box-shadow:0 10px 24px #00000047}.vis-basic-button-wrap.vis-basic-button--hover-border:hover>.vis-basic-button{border-style:solid!important;border-width:var(--vis-rect-hover-border-width, 2px)!important;border-color:var(--vis-rect-hover-border-color, #ffffff)!important}.vis-basic-button-wrap.vis-basic-button--hover-scale:hover>.vis-basic-button{transform:scale(var(--vis-rect-hover-scale, 1.03))}.vis-basic-button-wrap.vis-basic-button--selected>.vis-basic-button{transform-origin:center center;transition:transform var(--vis-btn-selected-ms, .2s) ease,box-shadow var(--vis-btn-selected-ms, .2s) ease,filter var(--vis-btn-selected-ms, .2s) ease,border-color var(--vis-btn-selected-ms, .2s) ease,border-width var(--vis-btn-selected-ms, .2s) ease}.vis-basic-button-wrap.vis-basic-button--selected-glow>.vis-basic-button{box-shadow:0 0 var(--vis-btn-selected-glow-blur, 16px) var(--vis-btn-selected-glow-color, rgba(255, 255, 255, .55))}.vis-basic-button-wrap.vis-basic-button--selected-brighten>.vis-basic-button{filter:brightness(var(--vis-btn-selected-brighten, 1.12))}.vis-basic-button-wrap.vis-basic-button--selected-darken>.vis-basic-button{filter:brightness(var(--vis-btn-selected-darken, .88))}.vis-basic-button-wrap.vis-basic-button--selected-lift>.vis-basic-button{transform:translateY(var(--vis-btn-selected-lift-y, -1px));box-shadow:0 8px 20px #0000003d}.vis-basic-button-wrap.vis-basic-button--selected-border>.vis-basic-button{border-style:solid!important;border-width:var(--vis-btn-selected-border-width, 2px)!important;border-color:var(--vis-btn-selected-border-color, #ffffff)!important}.vis-basic-button-wrap.vis-basic-button--selected-scale>.vis-basic-button{transform:scale(var(--vis-btn-selected-scale, 1.02))}.vis-basic-button-wrap.vis-basic-button--toggle:active:not(.vis-basic-button--selected)>.vis-basic-button{transform:scale(.98);filter:brightness(.94);transition-duration:80ms}.dashboard-node:has(.vis-basic-rect--hover),.dashboard-node:has(.vis-basic-button--hover),.dashboard-node:has(.vis-basic-button--selected),.dashboard-node:has(.vis-basic-rect-wrap--collapse){overflow:visible}.dashboard-runtime-node:has(.vis-basic-rect--hover),.dashboard-runtime-node:has(.vis-basic-button--hover),.dashboard-runtime-node:has(.vis-basic-button--selected),.dashboard-runtime-node:has(.vis-basic-rect-wrap--collapse){overflow:visible}.vis-basic-button-wrap{cursor:pointer}.vis-basic-rect__collapse-btn:hover{filter:brightness(1.15)}.react-flow-dark{background:var(--vis-bg-elevated)!important;--vis-dataflow-grid-minor: rgba(140, 140, 140, .22);--vis-dataflow-grid-major: rgba(140, 140, 140, .4)}.react-flow-dark .react-flow__handle{width:10px!important;height:10px!important;border:2px solid rgba(255,255,255,.35)!important;background:#69b1ff!important;transition:transform .12s ease,box-shadow .12s ease}.react-flow-dark .react-flow__handle:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.react-flow-dark .react-flow__handle:hover,.react-flow-dark .react-flow__handle.connectingto,.react-flow-dark .react-flow__handle.valid{transform:scale(1.25);box-shadow:0 0 0 3px #69b1ff47}.react-flow-dark .react-flow__handle.connectingfrom{box-shadow:0 0 0 3px #69b1ff66}.react-flow-dark .react-flow__edge-path{stroke-linecap:round}.react-flow-dark .react-flow__edge.selected .react-flow__edge-path,.react-flow-dark .react-flow__edge:focus .react-flow__edge-path,.react-flow-dark .react-flow__edge:focus-visible .react-flow__edge-path{stroke:#69b1ff!important;stroke-width:2.5!important}.react-flow-dark .react-flow__edge.selected .react-flow__edge-path{filter:drop-shadow(0 0 3px rgba(105,177,255,.55))}.react-flow-dark .react-flow__connectionline{stroke:#69b1ffe6!important}.react-flow-dark.connecting .react-flow__node:not(.selectable){opacity:.92}.scene-viewport{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden;background:var(--vis-bg-elevated)}.scene-viewport--drag-over:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;border:2px dashed rgba(68,136,255,.75);background:#4488ff0f}.scene-viewport--drag-over-callout:after{border-color:#52c41ad9;background:#52c41a12}.scene-viewport--drag-over-invalid:after{border-color:#ff4d4fd9;background:#ff4d4f0f}.scene-library-draggable{cursor:grab}.scene-library-draggable:active{cursor:grabbing}.scene-library-drag-ghost{position:fixed;top:-1000px;left:-1000px;z-index:99999;padding:4px 10px;border-radius:6px;font-size:12px;line-height:1.3;color:#fff;background:#182030eb;border:1px solid rgba(68,136,255,.55);box-shadow:0 4px 14px #00000059;pointer-events:none;white-space:nowrap}.scene-library-drag-ghost--callout{border-color:#52c41a8c}.scene-library-drag-ghost--model{border-color:#faad148c}.scene-viewport-drop-hint{position:fixed;z-index:20;max-width:220px;padding:6px 10px;border-radius:8px;pointer-events:none;background:#0c121ceb;border:1px solid rgba(68,136,255,.5);box-shadow:0 6px 18px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scene-viewport-drop-hint--callout{border-color:#52c41a8c}.scene-viewport-drop-hint--model{border-color:#faad148c}.scene-viewport-drop-hint--invalid{border-color:#ff4d4fa6}.scene-viewport-drop-hint__title{display:block;font-size:12px;font-weight:600;color:#e8eef8;line-height:1.35}.scene-viewport-drop-hint__detail{display:block;margin-top:2px;font-size:11px;color:#e8eef8a6;line-height:1.35}.scene-viewport-drop-marker{position:fixed;z-index:19;width:0;height:0;pointer-events:none;transform:translate(-50%,-50%)}.scene-viewport-drop-marker__ring{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border:2px solid rgba(68,136,255,.85);border-radius:50%;animation:scene-drop-marker-pulse 1.2s ease-out infinite}.scene-viewport-drop-marker__dot{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#48f;box-shadow:0 0 8px #48fc}@keyframes scene-drop-marker-pulse{0%{transform:scale(.85);opacity:1}to{transform:scale(1.35);opacity:0}}.scene-model-library__drag-hint{margin:0 0 8px;padding:0 4px;font-size:11px;line-height:1.4;color:var(--vis-text-secondary)}.scene-viewport-toolbar{position:absolute;top:12px;right:12px;z-index:10;padding:4px;border-radius:8px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.scene-canvas-toolbar{position:absolute;top:12px;left:50%;bottom:auto;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:2px;padding:4px 10px;box-sizing:border-box;border-radius:10px;background:var(--vis-bg-elevated);border:1px solid var(--vis-border);box-shadow:0 6px 24px #00000038;max-width:calc(100% - 32px);flex-wrap:nowrap;justify-content:center;pointer-events:auto}.scene-canvas-toolbar__group{display:flex;align-items:center;gap:2px;flex-shrink:0}.scene-canvas-toolbar__divider{height:20px;margin:0 4px;border-color:var(--vis-border);flex-shrink:0}.scene-canvas-toolbar__btn{min-width:28px;padding-inline:6px}.scene-canvas-toolbar--collapsed{gap:4px}.scene-canvas-toolbar__label{font-size:11px;color:var(--vis-text-secondary);padding:0 4px;white-space:nowrap;-webkit-user-select:none;user-select:none}.scene-align-popover{width:220px;padding:4px 2px}.scene-align-popover__hint{font-size:11px;color:var(--vis-text-secondary);margin-bottom:8px;line-height:1.4}.scene-align-popover__section{font-size:11px;color:var(--vis-text-secondary);margin:6px 0 4px}.scene-align-popover__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.scene-align-popover__row{display:flex;gap:2px}.scene-align-popover__btn{min-width:0;flex:1;padding-inline:4px;font-size:12px}.scene-create-popover-overlay .ant-popover-inner{padding:0}.scene-create-popover{width:280px;padding:12px}.scene-create-popover__section{margin-bottom:10px}.scene-create-popover__section:last-of-type{margin-bottom:0}.scene-create-popover__title{font-size:11px;opacity:.55;margin-bottom:6px}.scene-create-popover__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.scene-create-popover__grid--3{grid-template-columns:repeat(3,1fr)}.scene-create-popover__btn{height:auto;min-height:32px;padding:4px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}.scene-create-popover__btn-label{font-size:12px}.scene-create-popover__btn-hint{font-size:10px;opacity:.5}.scene-create-popover__hint{margin-top:8px;font-size:10px;opacity:.45;line-height:1.4}.scene-view-popover{display:flex;flex-direction:column;gap:2px;min-width:88px}.scene-view-popover__btn{text-align:left}.scene-viewport canvas{width:100%;height:100%;display:block}.scene-explorer{padding:0 4px 8px;max-height:320px;overflow:auto}.scene-explorer-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:12px}.scene-explorer-row:hover{background:#ffffff0f}.scene-explorer-row.selected{background:#1677ff33}.scene-explorer-row__spacer{width:24px;flex-shrink:0}.scene-explorer-row__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-explorer-row__kind{opacity:.45;font-size:11px;flex-shrink:0}.scene-explorer-light-icon{width:14px;height:14px;flex-shrink:0;display:inline-block}.scene-explorer-light-icon--directional{background:radial-gradient(circle at 50% 28%,#ffe08a,#e6a800 55%,#b87800);border-radius:50%;box-shadow:0 0 0 1px #ffc83c59}.scene-explorer-light-icon--point{background:radial-gradient(circle at 50% 50%,#fff8e0,#fc6 45%,#d9a020);border-radius:50%;box-shadow:0 0 0 1px #ffdc7880,0 0 0 4px #ffdc782e}.scene-explorer-light-icon--hemispheric{background:linear-gradient(180deg,#a8d4ff,#5a9fd4);border-radius:14px 14px 2px 2px;box-shadow:0 1px #ffffff59 inset}.scene-explorer-camera-icon{background:linear-gradient(135deg,#c8e8ff,#4ad 55%,#27a);border-radius:3px;clip-path:polygon(18% 35%,55% 35%,65% 22%,82% 22%,82% 58%,65% 58%,55% 78%,18% 78%);box-shadow:0 0 0 1px #78c8ff59}.scene-right-panel-tabs{height:100%;display:flex;flex-direction:column;min-height:0}.scene-right-panel-tabs>.ant-tabs-nav{flex-shrink:0;margin:0;padding:0 8px}.scene-right-panel-tabs>.ant-tabs-content-holder{flex:1;min-height:0;overflow:hidden}.scene-right-panel-tabs .ant-tabs-content,.scene-right-panel-tabs .ant-tabs-tabpane{height:100%}.scene-right-panel-tab-body{height:100%;min-height:0;overflow:auto;padding:8px 10px 12px}.scene-model-graph-panel__hint{margin:0 0 8px;font-size:11px;color:var(--vis-text-secondary)}.scene-model-graph-panel__search{margin-bottom:8px}.scene-model-graph-panel__count{margin:0 0 4px;font-size:11px;color:var(--vis-text-secondary)}.scene-model-graph-panel__slots{margin-top:4px;display:flex;flex-direction:column;gap:4px}.scene-model-graph-slot{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;border:1px solid transparent}.scene-model-graph-slot:hover{background:var(--vis-bg-hover, rgba(255, 255, 255, .04))}.scene-model-graph-slot--selected{background:#ed80081f;border-color:#ed800873}.scene-model-graph-slot__name{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-model-graph-slot__color--modal{width:40px;height:32px;flex-shrink:0}.scene-model-graph-slot__mat-btn{padding:0 4px;font-size:12px;height:auto}.scene-callout-list-panel__hint,.scene-callout-list-panel__footer-hint{margin:0 0 8px;font-size:11px;line-height:1.45;color:var(--vis-text-secondary)}.scene-callout-list-panel__footer-hint{margin-top:12px;margin-bottom:0}.scene-callout-list-panel__list{display:flex;flex-direction:column;gap:4px}.scene-callout-list-item{padding:8px;border-radius:6px;border:1px solid transparent;cursor:pointer}.scene-callout-list-item:hover{background:var(--vis-bg-hover, rgba(255, 255, 255, .04))}.scene-callout-list-item--selected{background:#4488ff1f;border-color:#4488ff73}.scene-callout-list-item__main{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.scene-callout-list-item__title{font-size:12px;font-weight:600;color:var(--vis-text-primary, #e8eef8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-callout-list-item__node{flex-shrink:0;font-size:11px;color:var(--vis-text-secondary)}.scene-callout-list-item__meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.scene-callout-list-item__tag{padding:1px 6px;border-radius:4px;font-size:10px;line-height:1.5;color:#e8eef8cc;background:#ffffff0f}.scene-callout-list-item__tag--mode{color:#52c41af2;background:#52c41a1f}.scene-callout-list-panel__editor{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.scene-callout-list-panel__editor-title{margin-bottom:8px;font-size:11px;font-weight:600;color:var(--vis-text-secondary)}.scene-model-graph-slot__color{width:32px;height:24px;flex-shrink:0;padding:1px;border:1px solid var(--vis-border, #424242);border-radius:4px;cursor:pointer;background:transparent}.scene-perf-overlay{position:absolute;left:12px;bottom:12px;z-index:10;padding:8px 10px;border-radius:8px;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:11px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none}.scene-debug-toggles{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px}.scene-sidebar-panel{height:100%;min-height:0;overflow:auto}.scene-sidebar-tab-body{padding:8px;min-height:100%;box-sizing:border-box}.scene-sidebar-tab-body--tree{padding:4px 0 8px}.scene-sidebar-tab-body--library{padding:0;height:100%;min-height:0;display:flex;flex-direction:column}.scene-model-library{display:flex;flex-direction:column;height:100%;min-height:0}.scene-model-library-tabs{flex:1;min-height:0;height:100%}.scene-model-library-tabs.ant-tabs-left>.ant-tabs-nav{min-width:34px;margin-bottom:0;flex-shrink:0}.scene-model-library-tabs.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab{padding:10px 4px!important;margin:0!important;justify-content:center}.scene-model-library-tabs.ant-tabs-left .ant-tabs-tab-btn{writing-mode:vertical-rl;text-orientation:mixed;font-size:12px;line-height:1.2;letter-spacing:.04em}.scene-model-library-tabs.ant-tabs-left>.ant-tabs-content-holder{flex:1;min-width:0;min-height:0;overflow:auto;border-left:1px solid var(--vis-border)}.scene-model-library-tabs .ant-tabs-content,.scene-model-library-tabs .ant-tabs-tabpane{height:100%}.scene-model-library-tab-body{padding:8px 4px 8px 8px}.scene-model-library-empty{font-size:12px;opacity:.55;padding:8px 0}.scene-model-library-list{display:flex;flex-direction:column;gap:4px}.scene-model-library-list__item{text-align:left;overflow:hidden;text-overflow:ellipsis}.scene-callout-library__hint{margin:0 0 10px;padding:6px 8px;font-size:11px;line-height:1.45;color:var(--vis-text-secondary);background:#ffffff0a;border-radius:6px}.scene-callout-library__grid{display:flex;flex-direction:column;gap:4px}.scene-callout-library__item{display:flex;flex-direction:column;align-items:flex-start!important;height:auto!important;padding:6px 8px!important;text-align:left}.scene-callout-library__item-label{font-size:12px;line-height:1.3}.scene-callout-library__item-hint{font-size:10px;opacity:.55;line-height:1.2}.scene-sidebar-export{margin-top:12px}.scene-sidebar-section-title{font-size:12px;font-weight:600;opacity:.65;margin-bottom:8px}.scene-sidebar-section-title--spaced{margin-top:16px;padding-top:12px;border-top:1px solid var(--vis-border)}.scene-camera-presets{position:absolute;top:12px;left:12px;z-index:10;display:flex;flex-wrap:wrap;gap:6px;pointer-events:auto}.scene-camera-presets button{padding:4px 10px;font-size:12px;border-radius:4px;border:1px solid rgba(255,255,255,.18);background:#0c101cbf;color:#e8e8e8;cursor:pointer}.scene-camera-presets button:hover{border-color:#40a9ff99}.scene-camera-presets button.active{border-color:#1890ff;background:#1890ff40}.scene-html-panel{position:absolute;z-index:20;max-width:min(360px,90vw);background:#0c101ceb;border:1px solid rgba(255,255,255,.12);border-radius:8px;box-shadow:0 8px 32px #00000073;color:#e8e8e8;pointer-events:auto}.scene-html-panel--top-right{top:16px;right:16px}.scene-html-panel--top-left{top:16px;left:16px}.scene-html-panel--bottom-right{bottom:16px;right:16px}.scene-html-panel--bottom-left{bottom:16px;left:16px}.scene-html-panel__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.scene-html-panel__title{font-weight:600;font-size:14px}.scene-html-panel__body{padding:12px 14px;font-size:13px;line-height:1.5;max-height:240px;overflow:auto}.scene-html-panel__body p{margin:0 0 8px}.scene-html-panel__body p:last-child{margin-bottom:0}.scene-callout-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:6}.scene-callout-layer__item{--callout-scale: 1;position:absolute;transform-origin:center bottom;pointer-events:auto;z-index:1;opacity:0;transition:opacity .18s ease;will-change:left,top,opacity}.scene-callout-layer__item--trigger{animation:scene-callout-pop .32s ease-out}.scene-callout-layer__item--selectable{cursor:pointer}.scene-callout-layer__item--selectable .scene-callout-card{transition:box-shadow .15s ease,border-color .15s ease}.scene-callout-layer__item--selectable:hover .scene-callout-card{border-color:#4488ff73;box-shadow:0 10px 28px #4488ff26}.scene-callout-layer__item--selected .scene-callout-card{border-color:#4488ffbf;box-shadow:0 0 0 1px #4488ff59,0 12px 32px #48f3}@keyframes scene-callout-pop{0%{opacity:0}to{opacity:1}}.scene-callout-props-hint{margin:-4px 0 10px;font-size:11px;line-height:1.45;color:var(--vis-text-secondary)}.scene-callout-data-format-block{margin:0 0 12px}.scene-callout-data-format-block__label{margin-bottom:6px;font-size:11px;font-weight:600;color:var(--vis-text-secondary)}.scene-callout-data-format{margin:0 0 6px;padding:8px 10px;border-radius:6px;border:1px solid var(--vis-border, rgba(255, 255, 255, .12));background:var(--vis-bg-elevated, rgba(0, 0, 0, .2));font-size:10px;line-height:1.5;color:var(--vis-text-primary, #e8edf5);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto}.scene-callout-data-format-block code{font-size:10px;padding:1px 4px;border-radius:4px;background:#ffffff0f}.scene-callout-card{position:relative;width:calc(var(--callout-layout-width, 200px) * var(--callout-scale, 1));border-radius:calc(10px * var(--callout-scale, 1));border:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,#161e2af5,#0c121cf0);box-shadow:0 calc(10px * var(--callout-scale, 1)) calc(28px * var(--callout-scale, 1)) #00000059;-webkit-backdrop-filter:blur(calc(8px * var(--callout-scale, 1)));backdrop-filter:blur(calc(8px * var(--callout-scale, 1)));color:var(--vis-text-primary, #e8edf5);font-size:calc(12px * var(--callout-scale, 1))}.scene-callout-card--ok{border-color:#52c41a59}.scene-callout-card--warn{border-color:#faad1473}.scene-callout-card--error{border-color:#ff4d4f80;box-shadow:0 calc(10px * var(--callout-scale, 1)) calc(28px * var(--callout-scale, 1)) #ff4d4f1f}.scene-callout-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(8px * var(--callout-scale, 1));padding:calc(8px * var(--callout-scale, 1)) calc(10px * var(--callout-scale, 1)) calc(4px * var(--callout-scale, 1))}.scene-callout-card__header-main{display:flex;flex-wrap:wrap;align-items:center;gap:calc(6px * var(--callout-scale, 1));min-width:0}.scene-callout-card__title{font-size:1em;font-weight:600;color:#f3f6fb}.scene-callout-card__badge{font-size:.833em;line-height:1;padding:calc(2px * var(--callout-scale, 1)) calc(6px * var(--callout-scale, 1));border-radius:999px;font-weight:600}.scene-callout-card__badge--ok{background:#52c41a2e;color:#7ee06f}.scene-callout-card__badge--warn{background:#faad1433;color:#ffc857}.scene-callout-card__badge--error{background:#ff4d4f38;color:#ff8a8c}.scene-callout-card__close{border:none;background:transparent;color:#ffffff8c;cursor:pointer;font-size:1em;line-height:1;padding:calc(2px * var(--callout-scale, 1)) calc(4px * var(--callout-scale, 1))}.scene-callout-card__body{padding:calc(4px * var(--callout-scale, 1)) calc(10px * var(--callout-scale, 1)) calc(10px * var(--callout-scale, 1))}.scene-callout-card__metric-value{font-size:1.833em;font-weight:700;line-height:1.2;color:#4db4ff}.scene-callout-card__metric-unit{margin-left:calc(4px * var(--callout-scale, 1));font-size:1em;font-weight:500;opacity:.75}.scene-callout-card__metric-label{margin-top:calc(2px * var(--callout-scale, 1));font-size:.917em;opacity:.65}.scene-callout-card__fields{display:flex;flex-direction:column;gap:calc(4px * var(--callout-scale, 1))}.scene-callout-card__field{display:flex;justify-content:space-between;gap:calc(8px * var(--callout-scale, 1))}.scene-callout-card__field-key{opacity:.6}.scene-callout-card__field-value{font-weight:600}.scene-callout-card__tooltip-row{display:flex;flex-wrap:nowrap;align-items:baseline;gap:4px;margin:0 0 var(--callout-row-gap, 4px);line-height:1.45}.scene-callout-card__tooltip--single{display:flex;flex-direction:column}.scene-callout-card__tooltip--single .scene-callout-card__tooltip-row{justify-content:flex-start;gap:4px}.scene-callout-card__tooltip--single .scene-callout-card__tooltip-text{flex:0 1 auto;min-width:0}.scene-callout-card__tooltip--single .scene-callout-card__tooltip-value{flex:0 1 auto}.scene-callout-card__tooltip--single .scene-callout-card__tooltip-row:last-child{margin-bottom:0}.scene-callout-card__tooltip--double{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:calc(var(--callout-column-gap, 10px) * var(--callout-scale, 1));row-gap:calc(var(--callout-row-gap, 6px) * var(--callout-scale, 1))}.scene-callout-card__tooltip--double .scene-callout-card__tooltip-row{margin:0;flex-direction:column;align-items:flex-start;gap:calc(2px * var(--callout-scale, 1))}.scene-callout-card__tooltip--align-left.scene-callout-card__tooltip--single .scene-callout-card__tooltip-row{justify-content:flex-start;text-align:left}.scene-callout-card__tooltip--align-left.scene-callout-card__tooltip--double .scene-callout-card__tooltip-row{align-items:flex-start;text-align:left}.scene-callout-card__tooltip--align-left .scene-callout-card__tooltip-value{text-align:left}.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--single .scene-callout-card__tooltip-row{justify-content:center;text-align:center}.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--double .scene-callout-card__tooltip-row{align-items:center;text-align:center}.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--single .scene-callout-card__tooltip-text,.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--single .scene-callout-card__tooltip-value{text-align:center;width:auto}.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--double .scene-callout-card__tooltip-text,.scene-callout-card__tooltip--align-center.scene-callout-card__tooltip--double .scene-callout-card__tooltip-value{text-align:center;width:100%}.scene-callout-card__tooltip--align-right.scene-callout-card__tooltip--single .scene-callout-card__tooltip-row{justify-content:flex-end;text-align:right}.scene-callout-card__tooltip--align-right.scene-callout-card__tooltip--double .scene-callout-card__tooltip-row{align-items:flex-end;text-align:right}.scene-callout-card__tooltip--align-right .scene-callout-card__tooltip-text,.scene-callout-card__tooltip--align-right .scene-callout-card__tooltip-value{text-align:right}.scene-callout-card__tooltip-row:last-child{margin-bottom:0}.scene-callout-card__tooltip-text{min-width:0;font-size:1em}.scene-callout-card__tooltip-value{flex:0 1 auto;font-weight:600;word-break:break-word;font-size:1em}.scene-callout-card--styled{background:var(--callout-bg)!important;border-width:calc(var(--callout-border-width, 1px) * var(--callout-scale, 1))!important;border-style:solid!important;border-color:var(--callout-border-color)!important;border-radius:calc(var(--callout-radius, 10px) * var(--callout-scale, 1))!important;box-shadow:unset}.scene-callout-card--styled .scene-callout-card__header{padding:calc((var(--callout-padding, 10px) - 2px) * var(--callout-scale, 1)) calc(var(--callout-padding, 10px) * var(--callout-scale, 1)) calc(4px * var(--callout-scale, 1))}.scene-callout-card--styled .scene-callout-card__body{padding:calc(4px * var(--callout-scale, 1)) calc(var(--callout-padding, 10px) * var(--callout-scale, 1)) calc(var(--callout-padding, 10px) * var(--callout-scale, 1))}.scene-callout-card--styled .scene-callout-card__title{font-size:calc(var(--callout-title-size, 12px) * var(--callout-scale, 1));color:var(--callout-title-color, #f3f6fb)!important}.scene-callout-card--styled .scene-callout-card__tooltip-text{font-size:calc(var(--callout-line-text-size, var(--callout-content-size, 12px)) * var(--callout-scale, 1));color:var(--callout-content-color, rgba(232, 237, 245, .72))!important}.scene-callout-card--styled .scene-callout-card__tooltip-value{font-size:calc(var(--callout-line-value-size, var(--callout-value-size, 12px)) * var(--callout-scale, 1));color:var(--callout-value-color, #e8edf5)!important}.scene-callout-card--styled .scene-callout-card__arrow{width:calc(10px * var(--callout-scale, 1));height:calc(10px * var(--callout-scale, 1));bottom:calc(-6px * var(--callout-scale, 1));border-right-width:calc(var(--callout-border-width, 1px) * var(--callout-scale, 1));border-bottom-width:calc(var(--callout-border-width, 1px) * var(--callout-scale, 1));background:var(--callout-bg)!important;border-right-color:var(--callout-border-color)!important;border-bottom-color:var(--callout-border-color)!important}.scene-callout-card__tooltip p{margin:0 0 4px;line-height:1.45}.scene-callout-card__tooltip p:last-child{margin-bottom:0}.scene-callout-card__empty{opacity:.55;font-size:.917em;line-height:1.4}.scene-callout-card__chart{width:100%;height:calc(var(--callout-chart-height, 112px) * var(--callout-scale, 1))}.scene-callout-card--ok .scene-callout-card__metric-value{color:#7ee06f}.scene-callout-card--warn .scene-callout-card__metric-value{color:#ffc857}.scene-callout-card--error .scene-callout-card__metric-value{color:#ff8a8c}.scene-callout-card__arrow{position:absolute;left:50%;bottom:calc(-6px * var(--callout-scale, 1));width:calc(10px * var(--callout-scale, 1));height:calc(10px * var(--callout-scale, 1));transform:translate(-50%) rotate(45deg);background:#0c121cf0;border-right:calc(1px * var(--callout-scale, 1)) solid rgba(255,255,255,.14);border-bottom:calc(1px * var(--callout-scale, 1)) solid rgba(255,255,255,.14)}.scene-viewport-embedded{width:100%;height:100%;min-height:0;background:#0d1117}.hybrid-workspace .dashboard-canvas.dashboard-canvas--transparent{background-color:transparent}.flow-debug-panel{padding:8px 12px;border-top:1px solid var(--vis-border);background:var(--vis-bg-elevated)}.flow-debug-log{margin:8px 0 0;padding:8px;max-height:240px;overflow:auto;font-size:11px;background:#0003;border-radius:4px;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.iconfont-missing{opacity:.4}.dashboard-canvas.show-grid{background-image:linear-gradient(to right,var(--vis-grid-line, rgba(255, 255, 255, .06)) 1px,transparent 1px),linear-gradient(to bottom,var(--vis-grid-line, rgba(255, 255, 255, .06)) 1px,transparent 1px);background-size:var(--grid-size, 10px) var(--grid-size, 10px)}[data-theme=minimal] .dashboard-canvas.show-grid{--vis-grid-line: rgba(0, 0, 0, .06)}.canvas-toolbar{padding:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--vis-border)}.canvas-toolbar__zoom{font-size:12px;opacity:.6;min-width:40px}.dashboard-canvas-wrap.panning{cursor:grab}.dashboard-canvas-wrap.panning:active{cursor:grabbing}.component-library{display:flex;flex-direction:column;height:100%;min-height:0}.component-library-tabs{flex:1;min-height:0;height:100%}.component-library-tabs.ant-tabs-left>.ant-tabs-nav{min-width:34px;margin-bottom:0;flex-shrink:0}.component-library-tabs.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab{padding:10px 4px!important;margin:0!important;justify-content:center}.component-library-tabs.ant-tabs-left .ant-tabs-tab-btn{writing-mode:vertical-rl;text-orientation:mixed;font-size:12px;line-height:1.2;letter-spacing:.04em}.component-library-tabs.ant-tabs-left>.ant-tabs-content-holder{flex:1;min-width:0;min-height:0;overflow:auto;border-left:1px solid var(--vis-border)}.component-library-tabs .ant-tabs-content,.component-library-tabs .ant-tabs-tabpane{height:100%}.component-library-tab-body{padding:8px 4px 4px 8px}.component-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mashup-param-mapping-row{padding:8px;border:1px solid var(--vis-border, rgba(255, 255, 255, .12));border-radius:6px;background:#ffffff08}.mashup-param-mapping-preview{margin-top:6px;font-size:12px;opacity:.75}.mashup-param-resolved-snapshot{margin:0;max-height:160px;overflow:auto;padding:8px 10px;border-radius:6px;background:#00000040;font-size:11px;line-height:1.45}.time-query-widget{--tq-text: rgba(255, 255, 255, .88);--tq-bg: rgba(255, 255, 255, .06);--tq-border: rgba(255, 255, 255, .22);--tq-btn-bg: #1677ff;--tq-btn-text: #ffffff;--tq-radius: 6px;--tq-btn-padding-x: 15px;--tq-font-size: 14px;width:100%;height:100%;display:flex;align-items:stretch;box-sizing:border-box}.time-query-widget--size-small{--tq-radius: 4px;--tq-btn-padding-x: 7px;--tq-font-size: 12px}.time-query-widget--size-large{--tq-radius: 8px;--tq-btn-padding-x: 15px;--tq-font-size: 16px}.time-query-widget__row{display:flex;align-items:stretch;width:100%;height:100%;min-height:0}.time-query-widget__picker.ant-picker{flex:1;min-width:0;width:100%;height:100%;background:var(--tq-bg)!important;border-color:var(--tq-border)!important;border-radius:var(--tq-radius)!important}.time-query-widget--has-btn .time-query-widget__picker.ant-picker{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:none!important}.time-query-widget .time-query-widget__picker.ant-picker-small,.time-query-widget .time-query-widget__picker.ant-picker-middle,.time-query-widget .time-query-widget__picker.ant-picker-large,.time-query-widget .time-query-widget__picker .ant-picker-input{height:100%}.time-query-widget .time-query-widget__picker .ant-picker-input>input{height:100%}.time-query-widget .ant-picker-input>input{color:var(--tq-text)!important;font-size:var(--tq-font-size)}.time-query-widget .ant-picker-separator,.time-query-widget .ant-picker-suffix,.time-query-widget .ant-picker-clear{color:var(--tq-text)!important}.time-query-widget .ant-picker-active-bar{background:var(--tq-btn-bg)!important}.time-query-widget__query-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0 var(--tq-btn-padding-x);border:1px solid var(--tq-btn-bg);border-left:none;border-radius:0 var(--tq-radius) var(--tq-radius) 0;background:var(--tq-btn-bg);color:var(--tq-btn-text);font:inherit;font-size:var(--tq-font-size);line-height:1.2;white-space:nowrap;cursor:pointer;box-sizing:border-box;height:100%;min-height:0;transition:filter .2s ease,opacity .2s ease}.time-query-widget__query-btn:hover{filter:brightness(1.08)}.time-query-widget__query-btn:active{filter:brightness(.95)}.time-query-widget__query-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--tq-btn-bg) 55%,white);outline-offset:1px}.time-query-widget--embedded{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--tq-border);background:var(--tq-bg);color:var(--tq-text);font-size:var(--tq-font-size);overflow:hidden;border-radius:var(--tq-radius)}.time-query-widget__preview{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-query-widget__query-btn--preview{height:auto;min-height:0;padding:2px 10px;border:none;border-radius:calc(var(--tq-radius) - 2px);line-height:1.4}.component-library-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:10px 6px;border:1px solid var(--vis-border);border-radius:8px;background:var(--vis-bg-base);cursor:grab;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none}.component-library-card:hover{border-color:var(--vis-primary, #1677ff);background:#1677ff0f;box-shadow:0 2px 8px #0000001f}.component-library-card:active{transform:scale(.98)}.component-library-card__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--vis-bg-subtle, rgba(255, 255, 255, .04));color:var(--vis-primary, #1677ff)}.component-library-card__label{font-size:11px;line-height:1.35;text-align:center;color:var(--vis-text-primary, var(--vis-text));word-break:break-word}.component-library-card__info{position:absolute;top:4px;right:4px;z-index:2}.component-usage-info-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--vis-text-secondary, rgba(255, 255, 255, .45));cursor:pointer;line-height:1;border-radius:4px;transition:color .15s ease,background .15s ease}.component-usage-info-btn:hover{color:var(--vis-primary, #1677ff);background:#1677ff1f}.dashboard-node__usage-info{position:absolute;top:4px;right:4px;z-index:12;opacity:.55}.dashboard-node:hover .dashboard-node__usage-info,.dashboard-node.selected .dashboard-node__usage-info{opacity:1}.scene-library-item-wrap{position:relative}.scene-library-item-wrap--block{width:100%}.scene-library-item-wrap__info{position:absolute;top:2px;right:2px;z-index:2}.component-usage-modal__body{max-height:min(60vh,480px);overflow-y:auto}.component-usage-modal__summary{margin-bottom:12px!important}.component-usage-modal__section{margin-bottom:16px}.component-usage-modal__section:last-child{margin-bottom:0}.component-usage-modal__section-title{margin:0 0 8px!important;font-size:14px!important}.component-usage-modal__paragraph{margin-bottom:8px!important;font-size:13px}.component-usage-modal__list{margin:0;padding-left:1.25em;font-size:13px;line-height:1.6;color:var(--vis-text-primary, inherit)}.component-usage-modal__list li+li{margin-top:6px}.component-usage-modal__example{margin-top:10px}.component-usage-modal__example-label{font-size:12px;font-weight:600;color:var(--vis-text-secondary, rgba(255, 255, 255, .55));margin-bottom:6px}.component-usage-modal__code{margin:0;padding:10px 12px;border-radius:6px;background:var(--vis-bg-subtle, rgba(0, 0, 0, .25));border:1px solid var(--vis-border, rgba(255, 255, 255, .08));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11.5px;line-height:1.55;overflow-x:auto;white-space:pre;color:var(--vis-text-primary, inherit)}.component-usage-modal__code code{font-family:inherit}.component-library-empty{padding:24px 8px;text-align:center;font-size:12px;color:var(--vis-text-secondary)}.custom-component-library__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.custom-component-library__empty{padding:48px 16px}.custom-component-library__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.custom-component-library-card{border:1px solid var(--vis-border);background:var(--vis-surface-elevated, rgba(255, 255, 255, .02))}.custom-component-library-card .ant-card-body{padding:12px}.custom-component-library-card__preview{margin:0 auto 10px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--vis-canvas-bg, rgba(0, 0, 0, .2));border:1px dashed var(--vis-border);overflow:hidden}.custom-component-library-card__preview-inner{flex-shrink:0}.custom-component-library-card__meta{min-width:0}.custom-component-library-card__type{display:block;font-size:12px;margin-top:2px}.custom-component-library-card .ant-card-actions{background:transparent;border-top:1px solid var(--vis-border)}.custom-component-library-card .ant-card-actions>li{margin:4px 0}.editor-sidebar-panel--components{display:flex;flex-direction:column;height:100%;min-height:0;padding:4px 8px 8px}.component-library__group{margin-bottom:12px}.component-library__title{font-size:12px;opacity:.55;margin-bottom:6px}.layer-list{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow:auto}.layer-panel{display:flex;flex-direction:column;gap:8px;min-height:0;height:100%;overflow:hidden}.layer-panel__search{flex-shrink:0}.layer-list__empty{padding:16px 12px;font-size:12px;color:#ffffff73;text-align:center;line-height:1.5}.layer-item{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:4px;cursor:pointer}.layer-item:hover{background:#ffffff0f}.layer-item.selected{background:#1677ff26}.layer-item__type{flex-shrink:0;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;opacity:.55}.layer-item__name.ant-input,.layer-item .ant-input{flex:1;min-width:0;font-size:12px}.resize-handle{position:absolute;width:8px;height:8px;background:#fff;border:1px solid #1677ff;border-radius:1px;z-index:10}.resize-handle--nw{top:-4px;left:-4px;cursor:nwse-resize}.resize-handle--n{top:-4px;left:50%;margin-left:-4px;cursor:ns-resize}.resize-handle--ne{top:-4px;right:-4px;cursor:nesw-resize}.resize-handle--e{top:50%;right:-4px;margin-top:-4px;cursor:ew-resize}.resize-handle--se{bottom:-4px;right:-4px;cursor:nwse-resize}.resize-handle--s{bottom:-4px;left:50%;margin-left:-4px;cursor:ns-resize}.resize-handle--sw{bottom:-4px;left:-4px;cursor:nesw-resize}.resize-handle--w{top:50%;left:-4px;margin-top:-4px;cursor:ew-resize}.runtime-layout__body{flex:1;min-height:0;display:flex;flex-direction:column}.runtime-layout--immersive .runtime-layout__body,.runtime-layout--immersive .runtime-shell{min-height:100vh;height:100vh}.runtime-layout--immersive .runtime-content{padding:0}.runtime-content--adaptive{align-items:stretch;justify-content:stretch;overflow:hidden;width:100%;height:100%;min-height:100%;padding:0}.runtime-layout--immersive .runtime-content--adaptive{min-height:100vh}.runtime-dashboard-panel--adaptive{flex:1;width:100%;height:100%;min-height:0;display:flex}.runtime-canvas-scaler--adaptive{transform:none;flex:1}.runtime-canvas--adaptive{box-shadow:none}.runtime-shell{flex:1;min-height:0;display:flex}.runtime-shell--left,.runtime-shell--right{flex-direction:row}.runtime-shell--top,.runtime-shell--bottom{flex-direction:column}.runtime-shell__main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.runtime-nav{flex-shrink:0;display:flex;flex-direction:column;overflow:auto}.runtime-nav--dark{background:#1a1a1a;color:#fff;border-right:1px solid rgba(255,255,255,.08)}.runtime-nav--light{background:#fff;color:#333;border-right:1px solid var(--vis-border)}.runtime-nav--top,.runtime-nav--bottom{width:100%;flex-direction:row;align-items:center;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}.runtime-nav--top .runtime-nav__body,.runtime-nav--bottom .runtime-nav__body{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;padding:8px}.runtime-nav__brand{padding:16px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}.runtime-nav--light .runtime-nav__brand{border-bottom-color:var(--vis-border)}.runtime-nav__body{flex:1;padding:8px 0}.runtime-nav__item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.runtime-nav--top .runtime-nav__item,.runtime-nav--bottom .runtime-nav__item{width:auto;border-radius:6px}.runtime-nav__item:hover{background:#ffffff0f}.runtime-nav--light .runtime-nav__item:hover{background:#0000000a}.runtime-nav__item--active{background:#1677ff33;color:#69b1ff}.runtime-nav--light .runtime-nav__item--active{background:#1677ff1f;color:#1677ff}.runtime-nav__group-label{padding:8px 16px 4px;font-size:12px;opacity:.55}.runtime-nav__divider{height:1px;margin:8px 12px;background:#ffffff1f}.runtime-layout .runtime-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--vis-bg-elevated);border-bottom:1px solid var(--vis-border)}.runtime-header__actions{display:flex;align-items:center;gap:12px}.runtime-nav__item--active{font-weight:500}.vis-nav__item:hover:not(.vis-nav__item--active){color:#fff;opacity:.92}.vis-nav--vertical .vis-nav__item:hover:not(.vis-nav__item--active){background:#ffffff0f}.runtime-content{display:flex;justify-content:center;align-items:center;overflow:auto;padding:24px 24px 96px;flex:1;min-height:0}.dashboard-canvas-wrap:not(.dashboard-canvas-wrap--adaptive) .dashboard-canvas-scroll-surface{margin-left:auto;margin-right:auto}.runtime-timeline{position:fixed;bottom:0;left:0;right:0;z-index:200;padding:10px 20px 14px;background:#0a1628eb;border-top:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.runtime-timeline__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;color:var(--vis-text-secondary, #aaa)}.runtime-timeline__title{font-weight:600;color:var(--vis-text-primary, #eee)}.runtime-timeline__slider{width:100%;margin:4px 0 8px}.runtime-timeline__controls{display:flex;align-items:center;gap:8px}.runtime-timeline__btn{padding:4px 10px;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.runtime-timeline__btn--primary{background:var(--vis-primary, #1677ff);border-color:transparent}.runtime-timeline__speed{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px}.runtime-timeline__speed select{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:inherit;border-radius:4px;padding:2px 6px}.runtime-canvas-scaler{transform-origin:center center}.runtime-canvas{position:relative;overflow:hidden;background:transparent;box-shadow:0 0 40px #00000059}.runtime-canvas--overlay{background:transparent!important;box-shadow:none!important;outline:none!important}.runtime-layout--immersive .runtime-shell__main{flex:1;min-height:100vh;display:flex;flex-direction:column}.runtime-content--immersive{flex:1;min-height:0;height:100%;overflow:hidden}.runtime-content--immersive.runtime-content--scene-only{display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;padding:0;overflow:hidden;width:100%;min-height:100vh;height:100vh}.runtime-content--immersive .runtime-scene-wrap{width:100%;flex:1;min-height:0;height:100%;align-self:stretch;display:flex;flex-direction:column}.runtime-content--immersive .runtime-scene-wrap .scene-viewport{width:100%;min-height:0;height:100%;flex:1;background:transparent}.runtime-content--immersive .runtime-hybrid-tabs,.runtime-content--immersive .runtime-hybrid--layered,.runtime-content--immersive .runtime-hybrid--split-h,.runtime-content--immersive .runtime-hybrid--split-v{width:100%;flex:1;min-height:0;height:100%}.runtime-content--layered .runtime-hybrid--layered{width:100%;height:100%;min-height:0}.runtime-scene-wrap{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;position:relative}.runtime-content:not(.runtime-content--immersive):not(.runtime-content--layered):not(.runtime-content--scene-only)>.runtime-scene-wrap{height:calc(100vh - 64px);min-height:480px}.runtime-hybrid--layered .runtime-scene-wrap{flex:1;height:100%;min-height:0}.runtime-hybrid--layered{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;gap:0;border:none;border-radius:0}.runtime-content:not(.runtime-content--immersive):not(.runtime-content--layered) .runtime-hybrid--layered{height:calc(100vh - 64px);min-height:480px}.runtime-hybrid--layered .runtime-hybrid__scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border:none!important;border-radius:0!important;box-shadow:none!important;outline:none!important;overflow:hidden;min-width:0}.runtime-hybrid--layered .runtime-hybrid__dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none;border:none!important;border-radius:0!important;box-shadow:none!important;outline:none!important}.runtime-hybrid--layered .runtime-hybrid__dashboard .runtime-canvas-scaler,.runtime-hybrid--layered .runtime-hybrid__dashboard .runtime-canvas--overlay{pointer-events:none;box-shadow:none!important}.runtime-hybrid--layered .runtime-hybrid__dashboard .dashboard-runtime-node,.runtime-hybrid--layered .runtime-hybrid__dashboard .dashboard-node,.runtime-hybrid--layered .runtime-hybrid__dashboard .time-query-widget{pointer-events:auto}.runtime-hybrid--layered .runtime-hybrid__scene .scene-viewport{min-height:0;width:100%;height:100%;border:none!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important}.runtime-hybrid--layered .runtime-hybrid__scene .scene-viewport canvas,.scene-viewport canvas:focus,.scene-viewport canvas:focus-visible{outline:none!important;border:none!important;box-shadow:none!important}.vis-runtime-page .scene-camera-presets{position:fixed;z-index:1000;pointer-events:auto}.runtime-content--layered{padding:0;overflow:hidden;align-items:stretch;justify-content:stretch;width:100%;height:100%;min-height:0}.runtime-hybrid--split-h{flex-direction:row}.runtime-hybrid--split-v{flex-direction:column}.runtime-hybrid-tabs{width:100%;height:calc(100vh - 64px);min-height:480px;display:flex;flex-direction:column}.runtime-hybrid-tabs__bar{display:flex;gap:8px;padding:8px 16px;border-bottom:1px solid var(--vis-border);background:var(--vis-bg-elevated)}.runtime-hybrid-tabs__bar button{padding:4px 14px;border-radius:6px;border:1px solid var(--vis-border);background:transparent;color:var(--vis-text-secondary);cursor:pointer}.runtime-hybrid-tabs__bar button.active{background:var(--vis-primary);border-color:var(--vis-primary);color:#fff}.runtime-hybrid-tabs__body{flex:1;min-height:0;overflow:hidden}.hybrid-workspace{flex:1;display:flex;flex-direction:column;min-height:0}.hybrid-workspace__toolbar{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--vis-border);background:var(--vis-bg-elevated);flex-wrap:wrap}.hybrid-workspace__label{font-size:13px;color:var(--vis-text-secondary)}.hybrid-workspace__hint{font-size:12px;color:var(--vis-text-secondary)}.hybrid-workspace__tabbar{flex-shrink:0;display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--vis-border);background:var(--vis-bg-elevated);z-index:2}.hybrid-workspace__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.hybrid-workspace__body>.editor-body{flex:1;min-height:0}.hybrid-workspace .dashboard-canvas--transparent{background-color:transparent!important;background-image:none!important}.hybrid-dashboard-scene-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.hybrid-dashboard-scene-backdrop .scene-camera-presets{pointer-events:auto;z-index:20}.hybrid-dashboard-scene-backdrop--empty{display:flex;align-items:center;justify-content:center;background:var(--vis-runtime-letterbox, #ffffff);color:var(--vis-runtime-text-secondary, rgba(0, 0, 0, .45));font-size:12px}.hybrid-dashboard-scene-backdrop__viewer,.hybrid-dashboard-scene-backdrop__viewer.scene-viewport{width:100%!important;height:100%!important;min-width:0;min-height:0;background:transparent!important}.hybrid-dashboard-scene-backdrop__viewer canvas,.scene-viewport-embedded canvas{width:100%!important;height:100%!important;display:block}.hybrid-dashboard-scene-backdrop,.hybrid-dashboard-scene-backdrop__viewer canvas,.runtime-hybrid--layered .runtime-hybrid__scene,.runtime-hybrid--layered .runtime-hybrid__scene .scene-viewport canvas{transform:translateZ(0);backface-visibility:hidden}.hybrid-workspace .dashboard-canvas-scroll-surface,.runtime-hybrid--layered .runtime-hybrid__dashboard{isolation:isolate;transform:translateZ(0);backface-visibility:hidden}.vis-basic-rect-wrap .vis-basic-rect{backface-visibility:hidden}.hybrid-workspace .dashboard-canvas>.dashboard-node{z-index:1}.runtime-hybrid{display:flex;width:100%;height:calc(100vh - 64px);gap:16px}.runtime-hybrid__dashboard{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto}.runtime-hybrid__scene{flex:1;min-width:0;border:none;border-radius:0;overflow:hidden;box-shadow:none;outline:none}.vis-scale-screen .runtime-hybrid--layered,.layout-template-shell .runtime-hybrid--layered,.layout-template-shell__slot .runtime-hybrid--layered{width:100%;height:100%;min-height:0}.vis-scale-screen .runtime-hybrid__scene,.layout-template-shell .runtime-hybrid__scene{border:none!important;border-radius:0!important;box-shadow:none!important;outline:none!important}.vis-scale-screen .runtime-hybrid__dashboard,.vis-scale-screen .runtime-canvas,.layout-template-shell .runtime-hybrid__dashboard,.layout-template-shell .runtime-canvas,.layout-template-shell__slot .runtime-canvas{box-shadow:none!important;outline:none!important}@media(max-width:1024px){.runtime-hybrid:not(.runtime-hybrid--layered){flex-direction:column;height:auto;min-height:calc(100vh - 64px)}.runtime-hybrid:not(.runtime-hybrid--layered) .runtime-hybrid__dashboard{min-height:360px}.runtime-hybrid:not(.runtime-hybrid--layered) .runtime-hybrid__scene{min-height:320px;flex:none}.runtime-content:not(.runtime-content--layered){align-items:flex-start}}.page-container{max-width:960px;margin:0 auto;padding:32px 24px 48px}.workspace-layout{min-height:100vh;background:var(--vis-bg-base)}.workspace-layout__header{padding:0;height:auto;line-height:normal;background:transparent}.workspace-layout__header .app-topbar{border-bottom:1px solid var(--vis-border)}.workspace-layout__body{min-height:calc(100vh - 57px)}.workspace-layout__sider{background:var(--vis-bg-elevated)!important;border-right:1px solid var(--vis-border)}.workspace-content{padding:24px;overflow:auto;background:var(--vis-bg-base);min-height:calc(100vh - 57px)}.page-input{width:100%;margin-top:8px;padding:6px 10px;border-radius:6px;border:1px solid var(--vis-border);background:var(--vis-bg-elevated);color:var(--vis-text);font-family:inherit}.project-card-grid{width:100%}.project-card-grid .ant-col{display:flex}.project-card-grid .ant-col>*{width:100%}.project-card-grid .project-card-col__inner{display:flex;width:100%;height:100%}.project-card-grid .ant-col>.project-card,.project-card-grid .project-card-col__inner>.project-card{flex:1}.project-list-section{width:100%}.project-list-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;flex-wrap:wrap}.project-card-grid__loading{display:flex;justify-content:center;padding:48px 0}.project-card{height:100%;border-radius:12px;overflow:hidden}.project-card .ant-card-body{padding:0}.project-card__body-hit{padding:12px 16px;cursor:pointer}.project-card .ant-card-meta-title{margin-bottom:4px!important}.project-card .ant-card-actions{border-radius:0}.project-card--create{border:1px dashed var(--vis-border);background:transparent;cursor:pointer;height:100%}.project-card--create.ant-card{display:flex;flex-direction:column}.project-card--create.ant-card-hoverable:hover{border-color:var(--vis-primary, #1677ff)}.project-card--create>.ant-card-body{display:flex;flex:1;padding:0!important;min-height:214px}.project-card__create-inner{flex:1;display:flex;align-items:center;justify-content:center;width:100%;min-height:100%}.project-card__create-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;line-height:1;color:var(--vis-text-secondary, rgba(255, 255, 255, .45))}.project-card--create:hover .project-card__create-icon{color:var(--vis-primary, #1677ff)}.project-card__cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:120px;background:var(--vis-bg-elevated);border-bottom:1px solid var(--vis-border);overflow:hidden;cursor:pointer}.project-card__cover-img{width:100%;height:100%;object-fit:cover}.create-project-cover{display:flex;align-items:center;justify-content:center;width:100%;height:140px;border:1px dashed var(--vis-border);border-radius:8px;background:var(--vis-bg-elevated);cursor:pointer;overflow:hidden}.create-project-cover__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px}.create-project-cover__label{font-size:14px;line-height:1.5}.create-project-cover__hint{display:block;margin-top:8px;font-size:12px;line-height:1.6;white-space:pre-line;color:var(--vis-text-secondary, rgba(255, 255, 255, .45))}.create-project-cover__img{width:100%;height:100%;object-fit:cover}.project-card__type{font-size:12px}.project-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.project-card__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card__time{flex-shrink:0;font-size:12px;white-space:nowrap}.project-card-pagination{display:flex;justify-content:center;padding-top:8px}.menu-manage-panel__row--active>td{background:#1890ff14!important}.menu-manage-panel__row--active>td:first-child{box-shadow:inset 3px 0 0 var(--vis-primary, #1890ff)}.menu-manage-panel__row--drop-target>td{background:#1890ff1f!important}.menu-manage-panel__row--drop-into-group>td{background:#faad1424!important;box-shadow:inset 0 0 0 1px #faad14a6}.menu-manage-panel__row--dragging>td{opacity:.45}.menu-manage-panel__drag-handle{cursor:grab;color:var(--vis-text-secondary, #999);-webkit-user-select:none;user-select:none;font-size:14px;line-height:1}.menu-manage-panel__expanded{padding:4px 0 8px 48px}.mashup-container__shell{width:100%;height:100%;overflow:hidden;position:relative;box-sizing:border-box}.mashup-container__shell .runtime-content{padding:0;width:100%;height:100%;min-height:0;flex:1}.mashup-container__shell .runtime-dashboard-panel--adaptive,.mashup-container__shell .runtime-hybrid__dashboard{width:100%;height:100%;min-height:0}.mashup-container__shell--isolate{isolation:isolate;contain:layout style paint}.mashup-container__shell--bordered{border:1px solid rgba(255,255,255,.15)}.canvas-inbound-params{display:flex;flex-direction:column;gap:10px;margin:0 -2px}.canvas-inbound-params--empty{font-size:12px;line-height:1.5;color:var(--vis-text-secondary, rgba(255, 255, 255, .45));padding:8px 10px;border-radius:6px;background:var(--vis-bg-muted, rgba(255, 255, 255, .03));border:1px dashed var(--vis-border, rgba(255, 255, 255, .12))}.canvas-inbound-params__summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;font-size:11px;color:var(--vis-text-secondary, rgba(255, 255, 255, .5));padding:0 2px}.canvas-inbound-params__summary-tip{opacity:.75}.canvas-inbound-params__group{border-radius:8px;border:1px solid var(--vis-border, rgba(255, 255, 255, .1));background:var(--vis-bg-muted, rgba(255, 255, 255, .03));overflow:hidden}.canvas-inbound-params__group-head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#ffffff08;border-bottom:1px solid var(--vis-border, rgba(255, 255, 255, .08));min-width:0}.canvas-inbound-params__group-label{flex:0 0 auto;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--vis-text-secondary, rgba(255, 255, 255, .4))}.canvas-inbound-params__group-name{flex:1 1 auto;min-width:0;font-size:12px;color:var(--vis-text, rgba(255, 255, 255, .78));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-inbound-params__list{list-style:none;margin:0;padding:0}.canvas-inbound-params__item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"key badge" "value value" "from from";column-gap:8px;row-gap:4px;padding:8px 10px;border-top:1px solid var(--vis-border, rgba(255, 255, 255, .06))}.canvas-inbound-params__list>.canvas-inbound-params__item:first-child{border-top:none}.canvas-inbound-params__key{grid-area:key;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:600;color:var(--vis-accent, #69b1ff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:center}.canvas-inbound-params__badge{grid-area:badge;justify-self:end;align-self:center;font-size:10px;line-height:1;padding:3px 6px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.canvas-inbound-params__badge--ready{color:#73d13d;background:#73d13d1f;border-color:#73d13d47}.canvas-inbound-params__badge--literal{color:#69b1ff;background:#69b1ff1f;border-color:#69b1ff47}.canvas-inbound-params__badge--pending{color:var(--vis-text-secondary, rgba(255, 255, 255, .45));background:#ffffff0a;border-color:#ffffff1a}.canvas-inbound-params__badge--unresolved{color:#faad14;background:#faad141f;border-color:#faad1447}.canvas-inbound-params__item-value{grid-area:value;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.4;color:var(--vis-text, rgba(255, 255, 255, .88));word-break:break-all;padding:4px 8px;margin-top:2px;border-radius:4px;background:#0000002e}.canvas-inbound-params__item--pending .canvas-inbound-params__item-value,.canvas-inbound-params__item--unresolved .canvas-inbound-params__item-value{color:var(--vis-text-secondary, rgba(255, 255, 255, .4));font-style:italic;background:#0000001a}.canvas-inbound-params__item-from{grid-area:from;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;color:var(--vis-text-secondary, rgba(255, 255, 255, .42));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.mashup-container__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#00000059;color:#ffffff8c;font-size:12px;text-align:center;padding:8px;box-sizing:border-box}.vis-scale-screen{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--vis-runtime-letterbox, #ffffff);width:100%;height:100%;box-sizing:border-box}.vis-scale-screen__wrapper{position:relative;overflow:hidden;transform-origin:left top;transition:transform .2s cubic-bezier(.4,0,.2,1),margin .2s cubic-bezier(.4,0,.2,1);z-index:1}.vis-scale-screen .runtime-shell,.vis-scale-screen .runtime-shell__main{width:100%;height:100%;min-height:0}.vis-scale-screen .runtime-content--immersive,.vis-scale-screen .runtime-content--immersive.runtime-content--scene-only,.vis-scale-screen .runtime-content--layered{height:100%!important;min-height:0!important;max-height:100%}.vis-scale-screen .runtime-content--immersive .runtime-scene-wrap,.vis-scale-screen .runtime-hybrid--layered .runtime-scene-wrap{flex:1;min-height:0!important;height:100%}.vis-scale-screen .runtime-content--immersive .runtime-scene-wrap .scene-viewport,.vis-scale-screen .runtime-hybrid--layered .runtime-hybrid__scene .scene-viewport{min-height:0!important;height:100%}.vis-scale-screen .runtime-scene-wrap{height:100%;min-height:0}.layout-template-shell{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.layout-template-shell--scaled{display:block;width:100%;height:100%}.layout-template-shell--scaled .layout-template-shell__canvas{transform:none!important}.layout-template-shell__canvas{position:relative;transform-origin:center center;flex-shrink:0}.layout-template-shell__slot{box-sizing:border-box;border:none;outline:none}.layout-template-shell__slot .runtime-content{padding:0;width:100%;height:100%;min-height:0!important}.layout-template-shell__slot .runtime-content--immersive{min-height:0!important;height:100%!important}.layout-template-shell__slot .runtime-canvas{box-shadow:none}.layout-template-shell__slot .mashup-container__shell{width:100%;height:100%;border:none}.layout-template-shell__slot .mashup-container__shell .runtime-content{padding:0;min-height:0!important;height:100%!important}.layout-template-shell__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#00000040;color:#ffffff73;font-size:12px;text-align:center;padding:8px}.vis-layout-sidebar{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.vis-layout-sidebar__brand{padding:16px;font-weight:600;font-size:15px;border-bottom:1px solid rgba(255,255,255,.08);letter-spacing:.02em}.vis-layout-sidebar__body{flex:1;overflow:auto;padding:8px 0}.vis-layout-sidebar__group-label{padding:12px 16px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.vis-layout-sidebar__divider{height:1px;margin:8px 12px;background:#ffffff14}.vis-layout-sidebar__item{display:flex;align-items:center;gap:10px;width:calc(100% - 16px);margin:2px 8px;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:color .2s,background .2s,box-shadow .2s}.vis-layout-sidebar__item:hover:not(.vis-layout-sidebar__item--active){filter:brightness(1.08)}.vis-layout-sidebar__icon{flex-shrink:0;opacity:.9}.vis-layout-sidebar__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-template-preview{position:relative;overflow:hidden;border-radius:0;border:none;background:#0a0e17}.layout-template-preview__canvas{position:absolute;top:0;left:0;transform-origin:top left}.layout-template-preview__slot{position:absolute;box-sizing:border-box;border:1px dashed rgba(255,255,255,.22);background:#ffffff0a;display:flex;align-items:center;justify-content:center;overflow:hidden}.layout-template-preview__slot--header{background:#1677ff1f}.layout-template-preview__slot--sidebar{background:#52c41a14}.layout-template-preview__slot--content{background:#faad1414}.layout-template-preview__slot--footer{background:#722ed11a}.layout-template-preview__slot--bound{border-style:dashed;border-color:#ffffff38}.layout-template-preview__slot--highlight{border:1px dashed rgba(255,255,255,.22);box-shadow:none;z-index:2}.layout-template-preview__slot-label{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;text-align:center;color:#ffffffd1;font-size:11px;line-height:1.3;pointer-events:none}.layout-template-preview__slot-kind{font-weight:600;font-size:12px}.layout-template-preview__slot-name{opacity:.85;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-template-preview__slot-size{opacity:.55;font-size:10px}.layout-template-drawer-body{display:flex;flex-direction:column;gap:4px}.layout-template-slot-editor{margin-bottom:12px}.layout-template-slot-editor__hint{font-size:12px;color:var(--vis-text-secondary, rgba(255, 255, 255, .45));margin-bottom:8px}.layout-template-preview--editor{margin:0 auto 8px}.layout-template-preview__slot--selected{outline:none;z-index:2}.layout-template-slot-editor__resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;cursor:se-resize;background:#1677ffd9;border-radius:2px 0 0;z-index:3}.layout-template-shell-preview-modal .ant-modal-content{max-height:92vh;display:flex;flex-direction:column}.layout-template-shell-preview-modal .ant-modal-body{flex:1;min-height:0;display:flex;flex-direction:column}.layout-template-shell-preview-modal__toolbar{flex-shrink:0;margin-bottom:12px}.layout-template-shell-preview-modal__stage{flex:1;min-height:0;height:min(72vh,820px);border-radius:0;overflow:hidden;background:#0a0e14;border:none}.layout-template-shell-preview-modal__empty{height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff73;font-size:14px;padding:24px;text-align:center}.dashboard-layout-editor-hint{padding:8px 12px;flex-shrink:0}.editor-main--canvas{display:flex;flex-direction:column;min-height:0}.editor-main--canvas .canvas-stage-body{flex:1;min-height:0}.publish-modal-tabs{margin-top:8px}.publish-modal-tabs .ant-tabs-nav{margin-bottom:12px}.publish-embed-panel{display:flex;flex-direction:column;gap:10px}.publish-embed-panel__intro{font-size:12px;line-height:1.6;color:var(--vis-text-secondary)}.publish-embed-panel__intro p{margin:0 0 8px}.publish-embed-panel__intro p:last-child{margin-bottom:0}.publish-embed-panel__intro code{padding:1px 6px;border-radius:4px;background:var(--vis-bg-subtle, rgba(0, 0, 0, .04));font-size:12px}.publish-embed-panel__card{border:1px solid var(--vis-border, rgba(0, 0, 0, .08));border-radius:8px;overflow:hidden;background:var(--vis-bg-elevated, #fff)}.publish-embed-panel__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--vis-border, rgba(0, 0, 0, .08));background:var(--vis-bg-subtle, rgba(0, 0, 0, .02))}.publish-embed-panel__label{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--vis-text-secondary);text-transform:uppercase}.publish-embed-panel__code{margin:0;padding:12px 14px;max-height:220px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-all;color:var(--vis-text, rgba(0, 0, 0, .88));background:transparent}.asset-library-panel__preview-btn{padding-inline:0}.asset-library-panel__model-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;padding:4px;border:1px solid var(--vis-border, rgba(255, 255, 255, .12));border-radius:8px;background:linear-gradient(160deg,#ffffff0f,#ffffff05);color:inherit;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.asset-library-panel__model-thumb:hover{border-color:#1677ff;background:#1677ff1f;transform:translateY(-1px)}.asset-library-panel__model-thumb-label{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--vis-text-secondary, rgba(255, 255, 255, .65))}.asset-library-panel__model-thumb-action{margin-top:2px;font-size:11px;color:#1677ff}.asset-library-panel__file-name{display:inline-flex;align-items:center;gap:6px;max-width:100%}.asset-library-panel__file-link{padding:0;border:0;background:none;color:inherit;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-library-panel__file-link:hover{color:#1677ff;text-decoration:underline}.asset-library-panel__rename-ext{color:var(--vis-text-secondary, rgba(0, 0, 0, .45))}.asset-library-panel__rename-hint,.asset-library-panel__rename-error{font-size:12px}.asset-library-panel__rename-hint{color:var(--vis-text-secondary, rgba(0, 0, 0, .45))}.asset-library-panel__rename-error{color:#ff4d4f}.model-asset-preview-modal__stage{position:relative;width:100%;height:520px;border-radius:8px;overflow:hidden;background:#1f2126}.model-asset-preview-modal__toolbar{margin-bottom:12px}.model-asset-preview-modal__switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.model-asset-preview-modal__canvas{display:block;width:100%;height:100%;outline:none}.model-asset-preview-modal__loading{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:12px;color:#ffffffd9;background:#0f1115b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.model-asset-preview-modal__error-banner{position:absolute;top:12px;left:12px;right:12px;z-index:2;padding:8px 12px;border-radius:8px;background:#501414d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.model-asset-preview-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.model-asset-preview-modal__hint{font-size:12px;flex-shrink:0}.model-asset-preview-modal__stats{font-size:12px;text-align:right}.login-page{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden;background-color:#0f1115;background-image:url(/assets/agri_digital_twin_dark-BG71yfOp.webp);background-size:cover;background-position:center;background-repeat:no-repeat}[data-theme=minimal] .login-page{background-color:#e2e8f0;background-image:url(/assets/agri_digital_twin_minimalist-Dui3-XPU.webp)}.login-page__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(105deg,#080a0ef5,#080a0ee0 38%,#080a0ead 62%,#080a0e85)}[data-theme=minimal] .login-page__backdrop{background:linear-gradient(105deg,#f1f5f9f0,#e2e8f0d1 36%,#cbd5e1ad 58%,#94a3b885)}.login-page__toolbar{position:absolute;top:20px;right:24px;z-index:10;display:flex;align-items:center;gap:10px}.login-page__toolbar .vis-toolbar-chip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px 0 12px;border-radius:999px;border:1px solid var(--vis-login-chip-border);background:var(--vis-login-chip-bg);color:var(--vis-text);font-size:13px;font-weight:500;letter-spacing:.01em;cursor:pointer;font-family:inherit;line-height:1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 2px #0000000f;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .15s ease}.login-page__toolbar .vis-toolbar-chip:hover{border-color:var(--vis-login-chip-border-hover);background:var(--vis-login-chip-bg-hover);box-shadow:var(--vis-login-chip-shadow)}.login-page__toolbar .vis-toolbar-chip:active{transform:scale(.98)}.login-page__toolbar .vis-toolbar-chip__icon{display:inline-flex;align-items:center;justify-content:center;color:var(--vis-text-secondary)}.login-page__toolbar .vis-toolbar-chip__label{max-width:6.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-page__toolbar .vis-toolbar-chip__caret{flex-shrink:0;width:0;height:0;margin-left:-2px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.45;transition:opacity .2s ease}.login-page__toolbar .vis-toolbar-chip:hover .vis-toolbar-chip__caret{opacity:.7}.login-page__dropdown.ant-dropdown .ant-dropdown-menu{min-width:128px;padding:4px;border-radius:12px;background:var(--vis-login-chip-bg-hover);border:1px solid var(--vis-login-chip-border);box-shadow:var(--vis-login-chip-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.login-page__dropdown.ant-dropdown .ant-dropdown-menu-item{border-radius:8px;font-size:13px;color:var(--vis-text)}.login-page__dropdown.ant-dropdown .ant-dropdown-menu-item-selected{background:var(--vis-bg-subtle);color:var(--vis-text);font-weight:500}.login-page__dropdown.ant-dropdown .ant-dropdown-menu-item:hover{background:var(--vis-bg-subtle)}.login-page__inner{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;gap:56px;padding:72px 32px 48px;max-width:1120px;margin:0 auto;width:100%}.login-page__brand{flex:1;max-width:440px}.login-page__logo{margin-bottom:20px;line-height:0}.login-page__logo img{max-width:112px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,0,0,.12))}.login-page__title{margin:0 0 10px;font-size:clamp(28px,4vw,38px);font-weight:600;letter-spacing:-.02em;color:var(--vis-text)}.login-page__subtitle{margin:0 0 28px;color:var(--vis-text-secondary);font-size:15px;line-height:1.6;max-width:36em}.login-page__features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;color:var(--vis-text-secondary);font-size:14px}.login-page__features li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;background:var(--vis-login-feature-bg);border:1px solid var(--vis-login-feature-border)}.login-page__panel{position:relative;width:400px;max-width:100%;padding:32px 28px 28px;background:var(--vis-login-panel);border:1px solid var(--vis-login-panel-border);border-radius:18px;box-shadow:var(--vis-login-panel-shadow);backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15);overflow:hidden}.login-page__panel-accent{position:absolute;top:0;left:0;right:0;height:3px;background:var(--vis-login-accent-line);z-index:1}.login-page__panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 60% at 100% 0%,var(--vis-login-accent-ring),transparent 62%);pointer-events:none}.login-page__panel-header,.login-page__form,.login-page__sso,.login-page__footer-note{position:relative;z-index:1}.login-page__panel-header{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--vis-login-input-border)}.login-page__panel h2{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--vis-text)}.login-page__hint{margin:0;color:var(--vis-text-secondary);font-size:14px;line-height:1.55}.login-page__form .ant-form-item{margin-bottom:18px}.login-page__form .ant-form-item-label>label{color:var(--vis-login-label)!important;font-size:13px;font-weight:500;height:auto}.login-page__form .ant-form-item-extra{color:var(--vis-text-secondary);font-size:12px;margin-top:6px}.login-page__form .ant-input-affix-wrapper,.login-page__form .ant-input-affix-wrapper .ant-input{background:var(--vis-login-input-bg)!important;color:var(--vis-login-input-text)!important}.login-page__form .ant-input-affix-wrapper{border:1px solid var(--vis-login-input-border)!important;border-radius:10px!important;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.login-page__form .ant-input-affix-wrapper:hover{border-color:var(--vis-login-input-border-hover)!important;background:var(--vis-login-input-bg)!important}.login-page__form .ant-input-affix-wrapper-focused,.login-page__form .ant-input-affix-wrapper:focus-within{border-color:var(--vis-login-accent)!important;box-shadow:0 0 0 3px var(--vis-login-accent-ring)!important}.login-page__form .ant-input::placeholder,.login-page__form .ant-input-affix-wrapper .ant-input::placeholder{color:var(--vis-login-input-placeholder)!important}.login-page__form .ant-input-prefix,.login-page__form .ant-input-suffix,.login-page__form .ant-input-password-icon{color:var(--vis-login-input-icon)!important}.login-page__form .ant-input-password-icon:hover{color:var(--vis-login-accent)!important}.login-page__form .ant-checkbox-wrapper{color:var(--vis-text-secondary);font-size:13px}.login-page__form .ant-checkbox-checked .ant-checkbox-inner{background-color:var(--vis-login-accent);border-color:var(--vis-login-accent)}.login-page__form .ant-btn-primary{height:44px;border:none!important;border-radius:10px!important;font-size:15px;font-weight:500;letter-spacing:.02em;background:var(--vis-login-btn-bg)!important;box-shadow:var(--vis-login-btn-shadow);transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}.login-page__form .ant-btn-primary:not(:disabled):hover{background:var(--vis-login-btn-bg)!important;filter:brightness(1.06);box-shadow:var(--vis-login-btn-shadow-hover);transform:translateY(-1px)}.login-page__form .ant-btn-primary:not(:disabled):active{transform:translateY(0);filter:brightness(.98)}.login-page__panel .ant-divider{margin:20px 0 16px;border-color:var(--vis-login-input-border)!important}.login-page__panel .ant-divider-inner-text{color:var(--vis-text-secondary);font-size:12px;padding:0 12px}.login-page__sso .ant-btn{height:42px;border-radius:10px!important;background:var(--vis-login-sso-bg)!important;border:1px solid var(--vis-login-sso-border)!important;color:var(--vis-text)!important;font-weight:500;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .2s ease,background .2s ease,transform .15s ease}.login-page__sso .ant-btn:not(:disabled):hover{border-color:var(--vis-login-input-border-hover)!important;color:var(--vis-login-accent)!important;background:var(--vis-login-input-bg)!important;transform:translateY(-1px)}.login-page__footer-note{margin:16px 0 0;text-align:center;font-size:12px;line-height:1.5;color:var(--vis-text-secondary)}.login-page__sso{display:flex;flex-direction:column;gap:10px}@media(max-width:860px){.login-page__inner{flex-direction:column;gap:28px;padding-top:88px}.login-page__brand{text-align:center;max-width:100%}.login-page__subtitle{margin-left:auto;margin-right:auto}.login-page__features{align-items:stretch;max-width:360px;margin:0 auto}.login-page__panel{width:100%;max-width:400px}}
