:root{--cockpit-bg: #f8fafc;--cockpit-panel: #ffffff;--cockpit-panel-hover: #f1f5f9;--cockpit-border: #e2e8f0;--cockpit-accent: #06b6d4;--cockpit-success: #10b981;--cockpit-warning: #f59e0b;--cockpit-danger: #ef4444;--cockpit-text: #1e293b;--cockpit-text-dim: #64748b;--cockpit-grid-line: rgba(148, 163, 184, .2);--sidebar-bg: #ffffff;--header-bg: #ffffff;--track-bg: #e2e8f0;--cockpit-tooltip: #ffffff;--cockpit-tooltip-border: #e2e8f0;--panel-shadow: 0 1px 3px rgba(0, 0, 0, .05);--wb-header-bg: #fafafa;--wb-stripe-bg: rgba(230, 244, 255, .2);--wb-group-even-bg: rgba(230, 244, 255, .35);--wb-group-odd-bg: rgba(255, 247, 230, .45);--wb-group-border: #91caff;--wb-bound-bg: rgba(24, 144, 255, .12)}:root[data-theme=dark]{--cockpit-bg: #0a0f1a;--cockpit-panel: rgba(17, 24, 39, .95);--cockpit-panel-hover: #1a2234;--cockpit-border: #1e3a5f;--cockpit-accent: #06b6d4;--cockpit-success: #10b981;--cockpit-warning: #f59e0b;--cockpit-danger: #ef4444;--cockpit-text: #f1f5f9;--cockpit-text-dim: #94a3b8;--cockpit-grid-line: rgba(30, 58, 95, .3);--sidebar-bg: #0f172a;--header-bg: rgba(17, 24, 39, .95);--cockpit-tooltip: rgba(30, 41, 59, .96);--cockpit-tooltip-border: rgba(51, 75, 110, .8);--track-bg: #1e3a5f;--panel-shadow: none;--wb-header-bg: rgba(30, 58, 95, .4);--wb-stripe-bg: rgba(30, 58, 95, .15);--wb-group-even-bg: rgba(30, 58, 95, .25);--wb-group-odd-bg: rgba(58, 48, 20, .3);--wb-group-border: #1e5a9f;--wb-bound-bg: rgba(24, 144, 255, .18)}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;font-family:Inter,Avenir Next,PingFang SC,Microsoft YaHei,sans-serif}body{color:var(--cockpit-text);background:var(--cockpit-bg)}.grid-bg{background-image:linear-gradient(var(--cockpit-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--cockpit-grid-line) 1px,transparent 1px);background-size:40px 40px;will-change:transform}.app-shell{display:flex;height:100vh}.sidebar{display:flex;flex-shrink:0;flex-direction:column;width:224px;border-right:1px solid var(--cockpit-border);background:var(--sidebar-bg)}.logo-wrap{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--cockpit-border)}.logo-icon-box{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #06b6d4;border-radius:10px;background:#06b6d433}.logo-icon{font-size:22px;color:#22d3ee}.logo-title{margin:0;color:#22d3ee;font-weight:600;font-size:18px}.logo-subtitle{margin:2px 0 0;color:var(--cockpit-text-dim);font-size:12px}.nav-list{display:flex;flex:1 1;flex-direction:column;gap:4px;padding:16px 12px;overflow-y:auto;min-height:0}.nav-item{position:relative;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:6px;color:var(--cockpit-text-dim);font-size:14px;text-decoration:none;transition:all .2s}.nav-item:hover{color:var(--cockpit-text);background:#06b6d41a}.nav-item.active{color:#06b6d4;background:#06b6d426}.nav-item.active:before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;background:#06b6d4}.nav-icon{font-size:18px}.nav-badge{margin-left:auto;padding:1px 6px;border-radius:4px;background:#ef4444;color:#fff;font-size:11px;line-height:1.4}.nav-group{display:flex;flex-direction:column}.nav-parent{cursor:pointer;opacity:.85}.nav-chevron{margin-left:auto;font-size:10px;color:var(--cockpit-text-dim);transition:transform .2s}.nav-chevron.expanded{transform:rotate(90deg)}.nav-child{padding-left:44px;font-size:13px}.nav-child-parent{cursor:pointer;opacity:.85}.nav-leaf{padding-left:60px;font-size:12px}.sidebar-footer{padding:12px;border-top:1px solid var(--cockpit-border)}.user-row{display:flex;gap:8px;align-items:center;margin-top:10px;color:var(--cockpit-text-dim);font-size:12px}.user-icon{color:var(--cockpit-accent)}.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cockpit-panel{position:relative;overflow:hidden;border:1px solid var(--cockpit-border);border-radius:8px;background:var(--cockpit-panel);box-shadow:var(--panel-shadow)}.cockpit-panel:before{content:"";position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,#06b6d4,transparent);opacity:.7}.status-panel{padding:12px}.section-label{color:#64748b;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.status-line{display:flex;gap:8px;align-items:center;margin-top:8px}.status-text{color:#10b981;font-size:14px}.runtime-text{margin-top:8px;overflow:hidden;color:var(--cockpit-text-dim);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.theme-toggle{display:flex;flex:1 1;gap:8px;align-items:center;justify-content:center;width:auto;margin-top:12px;padding:8px 12px;border:1px solid var(--cockpit-border);border-radius:8px;background:transparent;color:var(--cockpit-text-dim);cursor:pointer;transition:background-color .2s}.theme-toggle:hover{background:#06b6d41f}.theme-icon.sun{color:#fbbf24}.theme-icon.moon{color:#06b6d4}.theme-label{color:#0891b2;font-size:14px}.sidebar-action-row{display:flex;gap:8px;align-items:center}.logout-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-top:12px;border:1px solid var(--cockpit-border);border-radius:8px;background:transparent;color:var(--cockpit-text-dim);cursor:pointer;transition:background-color .2s}.logout-btn:hover{background:#ef44441a;color:#ef4444}.main-content{display:flex;flex:1 1;flex-direction:column}.top-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--cockpit-border);background:var(--header-bg)}.top-header-left{display:flex;gap:14px;align-items:center}.customer-selector{min-width:160px}.customer-selector .ant-select-selector{background:transparent!important;border:1px solid var(--cockpit-border)!important;border-radius:6px!important}.customer-selector .ant-select-selection-item{color:#22d3ee!important;font-weight:500;font-size:13px;letter-spacing:.06em}.customer-selector .ant-select-arrow{color:var(--cockpit-text-dim)}.top-header-separator,.top-header-subtitle{color:var(--cockpit-text-dim);font-size:14px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#10b981;animation:pulse 1.5s infinite}.top-header-right{display:flex;gap:24px;align-items:center}.header-status-pill{display:flex;gap:8px;align-items:center;padding:6px 12px;border:1px solid rgba(16,185,129,.35);border-radius:999px;background:#10b9811a;color:#10b981;font-size:14px}.clock-box{text-align:right}.metric-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.clock-time{color:var(--cockpit-text);font-weight:600;font-size:22px}.clock-date{color:var(--cockpit-text-dim);font-size:12px}.content-scroll{flex:1 1;min-height:0;padding:20px;overflow-y:auto}.dashboard-page{display:flex;flex-direction:column;gap:20px}.panel-card{border:1px solid var(--cockpit-border)!important;border-radius:8px!important;background:var(--cockpit-panel)!important;box-shadow:var(--panel-shadow)}.forbidden-page,.auth-loading-screen{display:flex;align-items:center;justify-content:center;min-height:60vh}.section-block{display:flex;flex-direction:column;gap:12px}.section-heading-row{display:flex;align-items:center;justify-content:space-between}.section-heading-title{display:flex;gap:8px;align-items:center;color:var(--cockpit-text);font-weight:600;font-size:20px}.section-heading-icon{color:#22d3ee;font-size:18px}.flow-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.flow-action-bar{display:flex;justify-content:flex-end;gap:16px}.process-flow-panel{padding:24px}.corner{position:absolute;width:8px;height:8px;border:2px solid #06b6d4}.corner-tl{top:0;left:0;border-right:none;border-bottom:none}.corner-tr{top:0;right:0;border-bottom:none;border-left:none}.corner-bl{bottom:0;left:0;border-top:none;border-right:none}.corner-br{right:0;bottom:0;border-top:none;border-left:none}.section-status-legend{display:flex;gap:16px;color:var(--cockpit-text-dim);font-size:12px}.section-status-legend span{display:inline-flex;gap:6px;align-items:center}.process-flow-panel .react-flow__renderer{border-radius:4px}.process-flow-panel .react-flow__background{background:transparent}.metric-group{margin-bottom:16px}.metric-group-title{font-size:14px;font-weight:600;color:var(--cockpit-text-dim);margin-bottom:10px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (min-width: 768px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.metric-card{padding:16px}.metric-main-row{display:flex;gap:4px;align-items:baseline;margin-top:10px}.metric-large{font-weight:700;font-size:32px;line-height:1}.metric-tone-default{color:var(--cockpit-text)}.metric-tone-green{color:#10b981}.metric-tone-amber{color:#f59e0b}.metric-tone-cyan{color:#06b6d4}.metric-unit{color:var(--cockpit-text-dim);font-size:14px}.metric-progress-track{overflow:hidden;height:4px;margin-top:10px;border-radius:999px;background:var(--track-bg)}.metric-progress-fill{height:100%;border-radius:999px;background:#10b981}.metric-footnote{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:12px}.metric-hint{color:var(--cockpit-text-dim)}.metric-status{font-size:12px}.metric-status-normal{color:#10b981}.metric-status-warning{color:#f59e0b}.metric-status-danger{color:#ef4444}.dashboard-bottom-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}@media (min-width: 1280px){.dashboard-bottom-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}.trend-panel{padding:16px}.trend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.trend-range-switch{display:flex;gap:4px}.range-btn{padding:4px 8px;border:none;border-radius:4px;background:transparent;color:var(--cockpit-text-dim);font-size:12px;cursor:pointer}.range-btn:hover{background:#06b6d41a}.range-btn.active{background:#06b6d433;color:#06b6d4}.trend-bars{display:flex;gap:8px;align-items:flex-end;height:160px}.trend-bar-wrap{display:flex;flex:1 1;align-items:flex-end;height:100%}.trend-bar{width:100%;border-radius:6px 6px 0 0}.trend-bar-1{background:#06b6d433}.trend-bar-2{background:#06b6d44d}.trend-bar-3{background:#06b6d466}.flow-charts-stack{display:flex;flex-direction:column;gap:8px}.flow-chart-card{background:#06b6d40a;border:1px solid rgba(6,182,212,.15);border-radius:6px;padding:8px 10px 4px}.flow-chart-title{font-size:12px;color:var(--cockpit-text);margin-bottom:4px}.trend-bar-4{background:#06b6d480}.trend-bar-5{background:#06b6d499}.trend-axis{display:flex;justify-content:space-between;margin-top:8px;color:var(--cockpit-text-dim);font-size:12px}.health-panel{padding:16px}.health-label{margin-bottom:12px}.health-list{display:flex;flex-direction:column}.health-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--cockpit-border) 65%,transparent);font-size:14px}.health-row.last{border-bottom:none}.health-item-left{display:inline-flex;gap:8px;align-items:center}.health-value{font-size:12px}.health-normal{color:#10b981}.health-warning{color:#f59e0b}.health-danger{color:#ef4444}.maintenance-box{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:12px;border:1px solid rgba(245,158,11,.35);border-radius:8px;background:#f59e0b1a}.maintenance-icon{margin-top:2px;color:#f59e0b;font-size:14px}.maintenance-title{margin:0;color:#f59e0b;font-weight:500;font-size:12px}.maintenance-desc{margin:4px 0 0;color:var(--cockpit-text-dim);font-size:12px}.status-led{display:inline-block;width:8px;height:8px;border-radius:50%}.led-green{background:#10b981;box-shadow:0 0 8px #10b981}.led-yellow{background:#f59e0b;box-shadow:0 0 8px #f59e0b;animation:pulse 1.5s infinite}.led-red{background:#ef4444;box-shadow:0 0 8px #ef4444}.led-grey{background:#94a3b8;box-shadow:0 0 8px #94a3b8;animation:pulse .8s infinite}.flow-line{stroke-dasharray:6 4;animation:flow 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes flow{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:color-mix(in srgb,var(--cockpit-bg) 90%,#ffffff 10%)}::-webkit-scrollbar-thumb{border-radius:3px;background:color-mix(in srgb,var(--cockpit-border) 80%,#64748b 20%)}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--cockpit-border) 50%,#64748b 50%)}@media (max-width: 1024px){.sidebar{width:200px}}@media (max-width: 900px){.top-header{flex-wrap:wrap;gap:8px;padding:10px 16px}.top-header-left{flex:1 1;min-width:0;gap:8px}.top-header-right{flex-shrink:0}}.mobile-tab-bar{display:none}@media (max-width: 768px){.app-shell{flex-direction:column}.grid-bg{will-change:auto}body>div[style*=z-index][style*=position]{z-index:9999!important}.sidebar{display:none}.mobile-tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;height:calc(56px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--cockpit-border);background:var(--sidebar-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10000}@supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px)){.mobile-tab-bar{background:color-mix(in srgb,var(--sidebar-bg) 85%,transparent)}}.tab-item{display:flex;flex:1 1;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-height:48px;color:var(--cockpit-text-dim);font-size:10px;text-decoration:none;transition:color .2s;-webkit-tap-highlight-color:transparent}.tab-item:focus-visible{outline:2px solid var(--cockpit-accent);outline-offset:-2px;border-radius:4px}.tab-item.active{color:var(--cockpit-accent)}.tab-item.active .tab-icon{transform:scale(1.1)}.tab-icon{position:relative;font-size:22px;line-height:1;transition:transform .2s}.tab-badge{position:absolute;top:-4px;right:-10px;min-width:16px;padding:0 4px;border-radius:8px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center}.tab-item.menu-open{color:var(--cockpit-accent)}button.tab-item{background:none;border:none;padding:0;cursor:pointer;font:inherit}.tab-label{font-size:10px;line-height:1.2;white-space:nowrap}.mobile-submenu-overlay{position:fixed;inset:0;z-index:10000;background:#0006;animation:fadeIn .2s ease}.mobile-submenu-panel{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:10001;max-height:60vh;overflow-y:auto;background:var(--sidebar-bg);border-top:1px solid var(--cockpit-border);border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0003;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-submenu-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;font-size:14px;font-weight:600;color:var(--cockpit-text);border-bottom:1px solid var(--cockpit-border)}.mobile-submenu-close{background:none;border:none;color:var(--cockpit-text-dim);font-size:18px;cursor:pointer;padding:4px 8px;line-height:1}.mobile-submenu-list{padding:8px 0}.mobile-submenu-section{border-top:1px solid color-mix(in srgb,var(--cockpit-text-dim) 20%,transparent);margin-top:4px}.mobile-submenu-section:first-child{border-top:none;margin-top:0}.mobile-submenu-group{padding:12px 16px 4px;font-size:12px;font-weight:600;color:var(--cockpit-text-dim);letter-spacing:.3px}.mobile-submenu-item{display:block;padding:10px 16px 10px 24px;color:var(--cockpit-text);text-decoration:none;font-size:13px;transition:background .15s}.mobile-submenu-item:active{background:color-mix(in srgb,var(--cockpit-accent) 15%,transparent)}.mobile-submenu-item.active{color:var(--cockpit-accent);font-weight:500}.section-heading-row{flex-wrap:wrap;gap:8px}.flow-toolbar-row{flex-wrap:wrap}.flow-action-bar{justify-content:space-around}.section-heading-title{font-size:17px}.content-scroll{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.top-header{flex-wrap:wrap;gap:6px;padding:8px 12px}.top-header-left{flex:1 1 100%;min-width:0;gap:6px;flex-wrap:wrap}.top-header-right{flex:1 1 100%;justify-content:space-between}.top-header-separator{display:none}.customer-selector{min-width:120px}.header-status-pill{padding:4px 10px;font-size:12px}.clock-box{text-align:right}}.system-status-dashboard-page .flow-list-alert{margin-bottom:12px}.system-status-dashboard-page .flow-page-loading,.system-status-dashboard-page .flow-page-empty{display:flex;align-items:center;justify-content:center;min-height:260px}.flow-section-tabs{display:flex;flex-wrap:wrap;gap:8px}.flow-section-tab{padding:6px 12px;border:1px solid var(--cockpit-border);border-radius:999px;background:transparent;color:var(--cockpit-text-dim);cursor:pointer}.flow-section-tab:hover{border-color:color-mix(in srgb,var(--cockpit-accent) 60%,var(--cockpit-border) 40%);color:var(--cockpit-text)}.flow-section-tab.active{border-color:color-mix(in srgb,var(--cockpit-accent) 80%,#ffffff 20%);background:color-mix(in srgb,var(--cockpit-accent) 18%,transparent);color:var(--cockpit-accent)}.flow-process-panel{position:relative;min-height:520px;padding:12px}.flow-process-panel.flow-fullscreen{position:fixed;inset:0;z-index:1100;min-height:unset;margin:0;padding:0;border-radius:0;background:var(--cockpit-bg, #0a0f1a);display:flex;flex-direction:column}.flow-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:color-mix(in srgb,var(--cockpit-panel, #131a2b) 90%,transparent);border-bottom:1px solid var(--cockpit-border, #1e2a40);flex-shrink:0}.flow-fullscreen-title{font-size:15px;font-weight:500;color:var(--cockpit-text, #e0e6f0)}.flow-fullscreen-close{color:var(--cockpit-text-secondary, #8899aa)!important;font-size:13px}.flow-fullscreen .process-flow-renderer{flex:1 1;height:unset!important}.process-flow-renderer{position:relative;height:500px}.process-flow-renderer .react-flow{border-radius:6px;background:color-mix(in srgb,var(--cockpit-bg) 78%,transparent 22%)}.process-flow-renderer .react-flow .react-flow__attribution{display:none}.process-flow-renderer .react-flow__edge{cursor:move}.process-flow-renderer.edit-mode{border:2px dashed #1890ff;background:#1890ff05}.process-flow-renderer.edit-mode .react-flow__resize-control.line{border-color:transparent!important}.process-flow-renderer.edit-mode .react-flow__resize-control.handle{width:4px!important;height:4px!important;opacity:.15!important;border:none!important;background:#999!important;transition:opacity .2s}.process-flow-renderer.edit-mode .react-flow__node{overflow:visible!important}.process-flow-renderer.edit-mode .react-flow__node .react-flow__handle{opacity:.15!important;transition:opacity .2s}.process-flow-renderer.edit-mode .react-flow__node:hover .react-flow__resize-control.handle,.process-flow-renderer.edit-mode .react-flow__node:hover .react-flow__handle{opacity:.6!important}.process-flow-renderer.edit-mode .flow-node{overflow:visible}.flow-edit-toolbar{position:absolute;top:12px;right:12px;z-index:10;display:flex;gap:8px}:root[data-theme=dark] .react-flow__minimap{background:var(--cockpit-panel);border:1px solid var(--cockpit-border);border-radius:6px}:root[data-theme=dark] .react-flow__minimap .react-flow__minimap-mask{fill:#0a0f1a99}:root[data-theme=dark] .react-flow__minimap .react-flow__minimap-node{fill:var(--cockpit-border);stroke:none}:root[data-theme=dark] .react-flow__controls{background:var(--cockpit-panel);border:1px solid var(--cockpit-border);border-radius:6px;box-shadow:none}:root[data-theme=dark] .react-flow__controls .react-flow__controls-button{background:transparent;border-bottom:1px solid var(--cockpit-border);fill:var(--cockpit-text-dim)}:root[data-theme=dark] .react-flow__controls .react-flow__controls-button:hover{background:var(--cockpit-panel-hover);fill:var(--cockpit-text)}:root[data-theme=dark] .react-flow__controls .react-flow__controls-button:last-child{border-bottom:none}:root[data-theme=dark] .flow-node{border-color:color-mix(in srgb,var(--cockpit-accent) 25%,var(--cockpit-border) 75%);background:color-mix(in srgb,var(--cockpit-panel) 92%,rgba(255,255,255,.08) 8%);box-shadow:0 4px 16px #0006,0 0 0 1px color-mix(in srgb,var(--cockpit-accent) 12%,transparent)}:root[data-theme=dark] .flow-node:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--cockpit-accent) 40%,transparent),0 4px 16px #00000073}:root[data-theme=dark] .flow-node.selected{border-color:var(--cockpit-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--cockpit-accent) 40%,transparent),0 4px 12px #06b6d440}.flow-timestamp-overlay{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;gap:12px;font-size:12px;z-index:5;pointer-events:none;width:100%;justify-content:center}.flow-runtime-count{position:absolute;right:10px;bottom:6px;padding:2px 8px;border:1px solid var(--cockpit-border);border-radius:999px;background:color-mix(in srgb,var(--cockpit-panel) 88%,transparent 12%);font-size:12px}.flow-node{position:relative;min-width:160px;min-height:40px;max-width:320px;border:1.5px solid #c8d5e3;border-radius:8px;background:color-mix(in srgb,var(--cockpit-panel) 95%,transparent 5%);color:var(--cockpit-text);box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffffe6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;cursor:pointer}.flow-node:hover{border-color:color-mix(in srgb,var(--cockpit-accent) 40%,var(--cockpit-border) 60%);box-shadow:0 0 0 1px color-mix(in srgb,var(--cockpit-accent) 25%,transparent),0 4px 12px #00000026}.flow-node.selected{border-color:var(--cockpit-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--cockpit-accent) 35%,transparent),0 4px 12px #06b6d426}:root[data-theme=dark] .flow-node-status-error{border-color:var(--cockpit-danger);box-shadow:0 0 0 1px var(--cockpit-danger),0 4px 16px #ef444440}:root[data-theme=dark] .flow-node-status-processing{border-color:var(--cockpit-success);box-shadow:0 0 0 1px var(--cockpit-success),0 4px 16px #10b98133}.flow-node-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:color-mix(in srgb,var(--cockpit-bg) 80%,transparent 20%);border-bottom:1px solid color-mix(in srgb,var(--cockpit-border) 70%,transparent 30%)}.flow-node-icon{font-size:16px;color:var(--cockpit-accent)}.flow-node-title{flex:1 1;color:var(--cockpit-text);font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-node-title-input{flex:1 1;font-weight:600;font-size:12px;padding:0 4px;height:22px;background:#ffffff1a;border-color:var(--cockpit-accent, #06b6d4);color:var(--cockpit-text)}.flow-node-body{padding:10px 12px}.flow-node-value{color:var(--cockpit-text-dim);font-size:15px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;letter-spacing:-.01em}.flow-node-equipment .flow-node-body{padding-bottom:8px}.flow-node-equipment .flow-node-footer{padding:0 12px 10px;display:flex;justify-content:flex-end}.flow-node-equipment .flow-node-indicators{display:flex;gap:8px;align-items:center}.flow-node-equipment .flow-node-indicator-item{display:flex;align-items:center;gap:4px}.flow-node-equipment .indicator-text{font-size:9px;font-weight:700;line-height:1.2;padding:2px 4px;border-radius:3px;border:1px solid color-mix(in srgb,var(--cockpit-border) 80%,transparent);color:var(--cockpit-text-dim);background:transparent}.flow-node-equipment .indicator-text.active{color:var(--cockpit-success);border-color:color-mix(in srgb,var(--cockpit-success) 60%,transparent);background:color-mix(in srgb,var(--cockpit-success) 10%,transparent)}.flow-node-equipment .indicator-text.alarm{color:var(--cockpit-danger);border-color:color-mix(in srgb,var(--cockpit-danger) 60%,transparent);background:color-mix(in srgb,var(--cockpit-danger) 10%,transparent)}.flow-node-equipment .indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.flow-node-equipment .indicator.inactive{background:color-mix(in srgb,var(--cockpit-text-dim) 40%,transparent)}.flow-node-equipment .indicator.active{background:var(--cockpit-success);box-shadow:0 0 6px var(--cockpit-success)}.flow-node-equipment .indicator.alarm{background:var(--cockpit-danger);box-shadow:0 0 6px var(--cockpit-danger);animation:pulse 1s infinite}.flow-node-equipment .indicator.badge{width:auto;height:auto;border-radius:3px;font-size:9px;font-weight:700;padding:0 4px;border:1px solid color-mix(in srgb,var(--cockpit-border) 80%,transparent);color:var(--cockpit-text-dim);background:transparent;display:flex;align-items:center;justify-content:center;line-height:1.2}.flow-node-equipment .indicator.badge.remote{color:var(--cockpit-info);border-color:color-mix(in srgb,var(--cockpit-info) 60%,transparent);background:color-mix(in srgb,var(--cockpit-info) 10%,transparent)}.flow-node-equipment .indicator.badge.auto{color:var(--cockpit-primary);border-color:color-mix(in srgb,var(--cockpit-primary) 60%,transparent);background:color-mix(in srgb,var(--cockpit-primary) 10%,transparent)}.flow-node-status-error{border-color:var(--cockpit-danger);box-shadow:0 0 0 1px var(--cockpit-danger),0 4px 12px #ef444426}.flow-node-status-error .flow-node-header{background:color-mix(in srgb,var(--cockpit-danger) 10%,transparent 90%)}.flow-node-status-processing{border-color:var(--cockpit-success);box-shadow:0 0 0 1px var(--cockpit-success),0 4px 12px #10b9811a}.flow-node-data{min-width:220px}.flow-node-data .flow-data-list{display:flex;flex-direction:column;gap:6px}.flow-node-data .flow-data-item{display:grid;grid-template-columns:1fr auto 32px;gap:8px;align-items:baseline;font-size:12px}.flow-node-data .flow-data-label{color:var(--cockpit-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left;unicode-bidi:plaintext}.flow-node-data .flow-data-val{color:var(--cockpit-text);font-weight:600;text-align:right}.flow-node-data .flow-data-unit{color:var(--cockpit-text-dim);font-size:11px;font-weight:400;text-align:left}.flow-node-data .flow-data-empty{display:block;text-align:center;font-size:12px}.flow-node-data .flow-data-grid{display:grid;gap:8px;padding:2px 0}.flow-node-data .flow-data-card{padding:4px 6px;border-radius:4px;background:color-mix(in srgb,var(--node-accent, var(--cockpit-accent)) 12%,transparent);text-align:center}.flow-node-data .flow-data-card .ant-statistic-title{color:var(--cockpit-text-dim);font-size:11px;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-node-data .flow-data-card .ant-statistic-content{font-size:16px;line-height:1.3;color:var(--cockpit-text)}.flow-node-data .flow-data-card .ant-statistic-content-suffix{font-size:11px;color:var(--cockpit-text-dim)}.flow-node-tank{width:140px;padding:6px;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.flow-node-tank:hover,.flow-node-tank.selected{border:none;box-shadow:none}.flow-node-tank.selected .flow-tank-bar{border-color:var(--cockpit-accent);box-shadow:inset 0 2px 8px #0000001a,0 0 0 2px color-mix(in srgb,var(--cockpit-accent) 35%,transparent)}.flow-node-tank .flow-tank-body{padding:4px 0 0;display:flex;flex-direction:column;align-items:center;gap:6px}.flow-node-tank .flow-node-header{padding:4px 0 2px;background:transparent;border:none;justify-content:center}.flow-node-tank .flow-node-title{flex:none;text-align:center;color:inherit}.flow-node-tank .flow-node-value{text-align:center;width:100%;color:inherit}.flow-tank-bar{position:relative;width:60px;height:90px;border-radius:8px;background:color-mix(in srgb,var(--cockpit-bg) 80%,var(--cockpit-border) 20%);box-shadow:inset 0 2px 8px #0000001a,0 1px 2px #fffc;overflow:hidden;border:1px solid var(--cockpit-border)}.flow-tank-fill{position:absolute;right:0;bottom:0;left:0;background:linear-gradient(to top,#0284c7,#22d3ee);transition:height .8s ease-in-out;border-top-left-radius:2px;border-top-right-radius:2px}.flow-tank-wave{position:absolute;top:0;left:0;width:200%;height:100%;background:linear-gradient(to right,#fff0,#fff3,#fff0);animation:shine 3s infinite linear}.flow-tank-glass{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.2) 0%,transparent 20%,transparent 80%,rgba(0,0,0,.05) 100%);pointer-events:none}.flow-node-tank.flow-node-status-processing .flow-tank-bar{border-color:var(--cockpit-success);box-shadow:inset 0 2px 8px #0000001a,0 0 6px color-mix(in srgb,var(--cockpit-success) 30%,transparent)}.flow-node-tank.flow-node-status-error .flow-tank-bar{border-color:var(--cockpit-danger);animation:tank-warning-pulse 1.2s ease-in-out infinite}.flow-node-tank.flow-node-status-error .flow-tank-fill{background:linear-gradient(to top,#dc2626,#f87171)!important}@keyframes tank-warning-pulse{0%,to{box-shadow:inset 0 2px 8px #0000001a,0 0 6px color-mix(in srgb,var(--cockpit-danger) 50%,transparent);border-color:var(--cockpit-danger)}50%{box-shadow:inset 0 2px 8px #0000001a,0 0 18px var(--cockpit-danger),0 0 30px color-mix(in srgb,var(--cockpit-danger) 60%,transparent);border-color:var(--cockpit-danger)}}.flow-node-basic .flow-node-status-dot,.flow-node-button .flow-node-status-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:#9ca3af;z-index:1}.flow-node-status-processing .flow-node-status-dot{background:var(--cockpit-success);animation:pulse 1.5s ease-in-out infinite}.flow-node-status-error .flow-node-status-dot{background:var(--cockpit-danger);animation:pulse .8s ease-in-out infinite}.flow-node-basic.flow-node-status-processing{animation:basic-node-shine 1.8s ease-in-out infinite}.flow-node-basic.flow-node-status-error{animation:basic-node-alarm .9s ease-in-out infinite}@keyframes basic-node-shine{0%,to{box-shadow:0 0 0 1px var(--cockpit-success),0 0 6px color-mix(in srgb,var(--cockpit-success) 35%,transparent),0 4px 12px #10b98126}50%{box-shadow:0 0 0 1px var(--cockpit-success),0 0 16px color-mix(in srgb,var(--cockpit-success) 70%,transparent),0 4px 20px #10b98159}}@keyframes basic-node-alarm{0%,to{box-shadow:0 0 0 1px var(--cockpit-danger),0 0 8px color-mix(in srgb,var(--cockpit-danger) 45%,transparent),0 4px 14px #ef444440}50%{box-shadow:0 0 0 2px var(--cockpit-danger),0 0 20px color-mix(in srgb,var(--cockpit-danger) 80%,transparent),0 4px 24px #ef44448c}}.flow-node-pump-v2{width:100px;padding:2px;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.flow-node-pump-v2:hover,.flow-node-pump-v2.selected{border:none;box-shadow:none}.flow-node-pump-v2 .flow-pump-body{padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;height:42px}.flow-node-pump-v2 .flow-pump-icon-wrap{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:color .3s}.flow-node-pump-v2.has-data-bound .flow-pump-icon-wrap{color:var(--cockpit-accent)}.flow-node-pump-v2.selected .flow-pump-icon-wrap{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-accent) 40%,transparent))}.flow-node-pump-v2 .flow-node-v2-info{display:flex;flex-direction:column;align-items:center;margin-top:0;line-height:1.1}.flow-node-pump-v2 .flow-node-value{text-align:center;width:100%;font-size:11px;font-weight:700;margin-bottom:0;color:var(--cockpit-text);line-height:1.1}.flow-node-pump-v2 .flow-node-header{padding:0;background:transparent;border:none;justify-content:center;width:100%}.flow-node-pump-v2 .flow-node-title{flex:none;text-align:center;font-size:10px;line-height:1.1;color:var(--cockpit-text-dim)}.flow-node-pump-v2 .flow-node-footer{padding:4px 0 2px;display:flex;justify-content:center;width:100%}.flow-node-pump-v2 .flow-node-indicators{display:flex;gap:4px;justify-content:center;width:100%}.flow-node-pump-v2 .indicator-text{font-size:8px;padding:1px 3px}.flow-node-pump-v2 .pump-left-part{fill:currentColor;transition:color .3s}:root .flow-node-pump-v2,:root .flow-node-pump-v2.flow-node-status-processing,:root .flow-node-pump-v2.flow-node-status-error,:root .flow-node-tank,:root .flow-node-tank.flow-node-status-processing,:root .flow-node-tank.flow-node-status-error{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}:root .flow-node.flow-node-data,:root .flow-node.flow-node-data.flow-node-status-processing,:root .flow-node.flow-node-data.flow-node-status-error{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}:root .flow-node-pump-v2.has-data-bound.flow-node-status-default .pump-left-part{color:#9ca3af}:root .flow-node-pump-v2.has-data-bound.flow-node-status-processing .pump-left-part{color:var(--cockpit-accent);animation:pump-left-shine 1.4s ease-in-out infinite}:root .flow-node-pump-v2.has-data-bound.flow-node-status-error .pump-left-part{color:var(--cockpit-danger);animation:pump-left-alarm .9s ease-in-out infinite}@keyframes pump-left-shine{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-accent) 70%,transparent)) drop-shadow(0 0 10px color-mix(in srgb,var(--cockpit-accent) 35%,transparent))}50%{filter:drop-shadow(0 0 14px var(--cockpit-accent)) drop-shadow(0 0 28px color-mix(in srgb,var(--cockpit-accent) 85%,transparent))}}@keyframes pump-left-alarm{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-danger) 70%,transparent)) drop-shadow(0 0 12px color-mix(in srgb,var(--cockpit-danger) 40%,transparent))}50%{filter:drop-shadow(0 0 16px var(--cockpit-danger)) drop-shadow(0 0 32px color-mix(in srgb,var(--cockpit-danger) 90%,transparent))}}.flow-node-valve-v2{width:100px;padding:2px;background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}.flow-node-valve-v2:hover,.flow-node-valve-v2.selected{border:none;box-shadow:none}.flow-node-valve-v2 .flow-valve-body{padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;height:32px}.flow-node-valve-v2 .flow-valve-icon-wrap{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:color .3s}.flow-node-valve-v2 .flow-valve-icon-wrap>svg{margin-top:-6px}.flow-node-valve-v2.has-data-bound.flow-node-status-processing .flow-valve-icon-wrap{color:var(--cockpit-accent)}.flow-node-valve-v2.has-data-bound.flow-node-status-error .flow-valve-icon-wrap{color:var(--cockpit-danger)}.flow-node-valve-v2.selected .flow-valve-icon-wrap{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-accent) 40%,transparent))}.flow-node-valve-v2 .flow-node-v2-info{display:flex;flex-direction:column;align-items:center;margin-top:0;line-height:1.1}.flow-node-valve-v2 .flow-node-value{text-align:center;width:100%;font-size:11px;font-weight:700;margin-bottom:0;color:var(--cockpit-text);line-height:1.1}.flow-node-valve-v2 .flow-node-header{padding:0;background:transparent;border:none;justify-content:center;width:100%}.flow-node-valve-v2 .flow-node-title{flex:none;text-align:center;font-size:10px;line-height:1.1;color:var(--cockpit-text-dim)}.flow-node-valve-v2 .valve-body-part{fill:currentColor;transition:color .3s}:root .flow-node-valve-v2,:root .flow-node-valve-v2.flow-node-status-processing,:root .flow-node-valve-v2.flow-node-status-error{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}:root .flow-node-valve-v2.has-data-bound.flow-node-status-processing .valve-body-part{color:var(--cockpit-accent);animation:valve-body-shine 1.4s ease-in-out infinite}:root .flow-node-valve-v2.has-data-bound.flow-node-status-error .valve-body-part{color:var(--cockpit-danger);animation:valve-body-alarm .9s ease-in-out infinite}@keyframes valve-body-shine{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-accent) 70%,transparent)) drop-shadow(0 0 10px color-mix(in srgb,var(--cockpit-accent) 35%,transparent))}50%{filter:drop-shadow(0 0 14px var(--cockpit-accent)) drop-shadow(0 0 28px color-mix(in srgb,var(--cockpit-accent) 85%,transparent))}}@keyframes valve-body-alarm{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--cockpit-danger) 70%,transparent)) drop-shadow(0 0 12px color-mix(in srgb,var(--cockpit-danger) 40%,transparent))}50%{filter:drop-shadow(0 0 16px var(--cockpit-danger)) drop-shadow(0 0 32px color-mix(in srgb,var(--cockpit-danger) 90%,transparent))}}@keyframes shine{0%{transform:translate(-50%)}to{transform:translate(0)}}.flow-node-basic{border-radius:10px;padding:0;min-width:auto}.flow-node-basic .flow-node-header{border:none;background:transparent;padding:6px 16px;justify-content:center}.flow-node-basic .flow-node-title{font-size:13px;color:var(--cockpit-text);text-align:center;overflow:visible;flex:none}.flow-node-basic .flow-node-body{padding-top:0;padding-bottom:0;text-align:center}.flow-node-basic .flow-node-value{text-align:center;color:var(--cockpit-text)}.flow-node-button{border-radius:6px;padding:0;min-width:auto;border:1px solid color-mix(in srgb,var(--cockpit-border) 80%,#000 20%);background:linear-gradient(180deg,color-mix(in srgb,var(--cockpit-panel) 100%,#fff 0%),color-mix(in srgb,var(--cockpit-panel) 90%,#000 10%));box-shadow:0 2px color-mix(in srgb,var(--cockpit-border) 60%,#000 40%),0 3px 6px #00000026,inset 0 1px #ffffff26;cursor:pointer;user-select:none;transition:all .12s ease}.flow-node-button:hover{border-color:var(--cockpit-accent);background:linear-gradient(180deg,color-mix(in srgb,var(--cockpit-accent) 12%,var(--cockpit-panel) 88%),color-mix(in srgb,var(--cockpit-accent) 6%,var(--cockpit-panel) 84%,#000 10%));box-shadow:0 2px color-mix(in srgb,var(--cockpit-accent) 40%,#000 30%),0 3px 8px #0003,inset 0 1px #fff3}.flow-node-button:active{transform:translateY(2px);box-shadow:0 0 0 transparent,0 1px 2px #00000026,inset 0 1px 3px #0000001a}.flow-node-button.selected{border-color:var(--cockpit-accent);box-shadow:0 2px color-mix(in srgb,var(--cockpit-accent) 50%,#000 30%),0 0 0 2px color-mix(in srgb,var(--cockpit-accent) 30%,transparent),0 3px 6px #00000026}.flow-node-button .flow-node-body{padding:6px 16px;text-align:center}.flow-node-button .flow-node-title{font-size:13px;font-weight:600;color:var(--cockpit-text);text-align:center;overflow:visible;flex:none;letter-spacing:.02em}.flow-node-button .flow-node-value{text-align:center;color:var(--cockpit-text-dim);font-size:12px;margin-top:2px}.flow-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (min-width: 960px){.flow-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.flow-metric-card{padding:14px}.flow-metric-card--clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.flow-metric-card--clickable:hover{transform:translateY(-2px);border-color:var(--cockpit-accent, #1677ff);box-shadow:0 4px 16px #1677ff26}.flow-metric-card--clickable:focus-visible{outline:2px solid var(--cockpit-accent, #1677ff);outline-offset:2px}.flow-metric-value-row--percent{align-items:center}.flow-metric-percent-ring{flex-shrink:0;margin-left:auto}.flow-metric-chart{margin-top:8px}.flow-metric-value-row{display:flex;gap:6px;align-items:baseline;margin-top:10px}.flow-metric-value{color:var(--cockpit-text);font-weight:700;font-size:28px;line-height:1}.flow-metric-unit{color:var(--cockpit-text-dim);font-size:12px}.flow-metric-key{margin-top:10px;color:var(--cockpit-text-dim);font-size:11px}.flow-metric-grouped{display:flex;flex-direction:column;gap:12px}.flow-metric-group-title{margin-bottom:6px;padding:4px 10px;color:var(--cockpit-text, #fff);font-weight:700;font-size:14px;border-left:3px solid var(--cockpit-accent, #1890ff);background:linear-gradient(90deg,rgba(24,144,255,.12) 0%,transparent 100%);border-radius:2px}.flow-metric-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--cockpit-text-dim)}.flow-bottom-grid{margin-top:4px}.flow-trend-panel{padding:14px}.flow-trend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.flow-trend-svg-wrap{overflow-x:auto}.flow-trend-svg{display:block;width:100%;min-width:600px;height:240px}.flow-trend-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;color:var(--cockpit-text-dim);font-size:12px}.flow-trend-legend span{display:inline-flex;gap:6px;align-items:center}.flow-trend-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.system-status-trend-page .flow-list-alert{margin-bottom:12px}.system-status-trend-page .flow-page-loading,.system-status-trend-page .flow-page-empty{display:flex;align-items:center;justify-content:center;min-height:220px}.flow-indicator-picker{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:10px}@media (min-width: 960px){.flow-indicator-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}.flow-indicator-chip{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;border:1px solid var(--cockpit-border);border-radius:10px;background:color-mix(in srgb,var(--cockpit-panel) 92%,transparent 8%);text-align:left;cursor:pointer;transition:all .2s ease}.flow-indicator-chip:hover{border-color:color-mix(in srgb,var(--cockpit-accent) 40%,var(--cockpit-border) 60%);transform:translateY(-1px)}.flow-indicator-chip.active{border-color:color-mix(in srgb,var(--cockpit-accent) 78%,#ffffff 22%);background:color-mix(in srgb,var(--cockpit-accent) 14%,transparent)}.flow-indicator-chip-title{overflow:hidden;max-width:100%;color:var(--cockpit-text-dim);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.flow-indicator-chip-value{color:var(--cockpit-text);font-weight:700;font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flow-indicator-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}@media (min-width: 960px){.flow-indicator-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.flow-indicator-stat-card{display:flex;flex-direction:column;gap:8px;padding:12px}.flow-indicator-stat-value{color:var(--cockpit-text);font-weight:700;font-size:20px;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flow-indicator-main-panel{margin-top:12px;padding:14px}.flow-indicator-chart{display:flex;flex-direction:column;gap:10px}.flow-indicator-chart-head{display:flex;gap:12px;align-items:baseline;justify-content:space-between}.flow-indicator-chart-title{color:var(--cockpit-text);font-size:15px;font-weight:600}.flow-indicator-chart-unit{color:var(--cockpit-text-dim);font-size:12px}.flow-indicator-chart-canvas{overflow-x:auto}.flow-indicator-chart-echart{display:block;width:100%;min-width:560px;height:320px}.flow-indicator-chart-empty{min-height:260px}.x6-renderer .x6-canvas{width:100%;height:420px}.system-status-alarm-page .flow-list-alert{margin-bottom:12px}.system-status-alarm-page .flow-page-loading,.system-status-alarm-page .flow-page-empty{display:flex;align-items:center;justify-content:center;min-height:220px}.flow-alarm-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (min-width: 960px){.flow-alarm-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.flow-alarm-stat-card{display:flex;flex-direction:column;gap:8px;padding:14px}.flow-alarm-stat-value{color:var(--cockpit-text);font-weight:700;font-size:28px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flow-alarm-stat-value.danger{color:var(--cockpit-danger)}.flow-alarm-stat-value.warning{color:var(--cockpit-warning)}.flow-alarm-stat-value.success{color:var(--cockpit-success)}.flow-alarm-table-panel{padding:12px}.flow-alarm-table-panel .ant-table{background:transparent}.flow-alarm-table-panel .ant-table-thead>tr>th{background:color-mix(in srgb,var(--cockpit-bg) 60%,transparent 40%);border-bottom:1px solid var(--cockpit-border);color:var(--cockpit-text-dim);font-size:13px}.flow-alarm-table-panel .ant-table-tbody>tr>td{border-bottom:1px solid color-mix(in srgb,var(--cockpit-border) 50%,transparent 50%);color:var(--cockpit-text)}.flow-alarm-table-panel .ant-table-tbody>tr:hover>td{background:color-mix(in srgb,var(--cockpit-accent) 6%,transparent 94%)}.flow-alarm-table-panel .ant-pagination{margin-top:12px}.alarm-center-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 0 8px}.alarm-center-filter-row .ant-select{min-width:140px}.alarm-rule-props-editor{display:flex;flex-direction:column;gap:8px}.alarm-rule-prop-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alarm-rule-prop-item .prop-label{min-width:80px;font-size:13px}.alarm-rule-prop-item .prop-limit-hint{font-size:11px;color:var(--cockpit-text-dim)}.data-mgmt-card{border:1px solid color-mix(in srgb,var(--cockpit-border) 80%,var(--cockpit-accent) 20%);border-radius:10px;background:var(--cockpit-panel);box-shadow:0 2px 8px #0000000f;transition:box-shadow .2s,border-color .2s}.data-mgmt-card:hover{border-color:color-mix(in srgb,var(--cockpit-accent) 45%,var(--cockpit-border) 55%);box-shadow:0 4px 14px #00000017}:root[data-theme=dark] .data-mgmt-card{box-shadow:0 2px 10px #00000040}:root[data-theme=dark] .data-mgmt-card:hover{box-shadow:0 4px 16px #00000059}.data-mgmt-table-panel{padding:12px;border:1px solid color-mix(in srgb,var(--cockpit-border) 80%,var(--cockpit-accent) 20%);border-radius:10px;background:var(--cockpit-panel);box-shadow:0 2px 8px #0000000f}.data-mgmt-table-panel .ant-table{background:transparent}.data-mgmt-table-panel .ant-table-thead>tr>th{background:color-mix(in srgb,var(--cockpit-bg) 60%,transparent 40%);border-bottom:1px solid var(--cockpit-border);color:var(--cockpit-text-dim);font-size:13px}.data-mgmt-table-panel .ant-table-tbody>tr>td{border-bottom:1px solid color-mix(in srgb,var(--cockpit-border) 50%,transparent 50%);color:var(--cockpit-text)}.data-mgmt-table-panel .ant-table-tbody>tr:hover>td{background:color-mix(in srgb,var(--cockpit-accent) 6%,transparent 94%)}.data-mgmt-table-panel .ant-pagination{margin-top:12px}:root[data-theme=dark] .data-mgmt-table-panel{box-shadow:0 2px 10px #00000040}.data-mgmt-table-panel .ant-picker-calendar,.data-mgmt-table-panel .ant-picker-calendar .ant-picker-panel{background:transparent}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-content th,.data-mgmt-table-panel .ant-picker-calendar .ant-picker-cell{color:var(--cockpit-text-dim)}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-cell-in-view{color:var(--cockpit-text)}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{background:transparent;color:inherit}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner{color:var(--cockpit-accent);font-weight:600}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{border:1px solid color-mix(in srgb,var(--cockpit-accent) 50%,transparent);border-radius:6px}.data-mgmt-table-panel .ant-picker-calendar .ant-picker-body,.data-mgmt-table-panel .ant-picker-calendar .ant-picker-content{background:transparent}.ant-space-item:has(>.system-segmented){max-width:100%;overflow:hidden}.system-segmented.ant-segmented{background:color-mix(in srgb,var(--cockpit-border) 40%,transparent);padding:2px;border-radius:8px;max-width:100%;overflow-x:auto}.system-segmented.ant-segmented .ant-segmented-item{border-radius:6px;color:var(--cockpit-text-dim);font-size:13px;transition:all .2s}.system-segmented.ant-segmented .ant-segmented-item .ant-segmented-item-label{color:inherit}.system-segmented.ant-segmented .ant-segmented-item:hover:not(.ant-segmented-item-selected){color:var(--cockpit-text)}.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected,.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected:hover,.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected:focus{background:var(--cockpit-accent);color:#fff!important;font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--cockpit-accent) 40%,transparent)}.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected .ant-segmented-item-label,.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected:hover .ant-segmented-item-label,.system-segmented.ant-segmented .ant-segmented-item.ant-segmented-item-selected:focus .ant-segmented-item-label{color:#fff!important}.system-segmented.ant-segmented .ant-segmented-thumb{background:var(--cockpit-accent);box-shadow:0 2px 8px color-mix(in srgb,var(--cockpit-accent) 40%,transparent)}.system-status-badge{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border:1px solid var(--cockpit-border);border-radius:999px;background:transparent;color:var(--cockpit-text-dim);font-size:12px;cursor:pointer;transition:all .2s}.system-status-badge:hover{border-color:color-mix(in srgb,var(--cockpit-accent) 60%,var(--cockpit-border) 40%);color:var(--cockpit-accent);background:color-mix(in srgb,var(--cockpit-accent) 8%,transparent)}.system-status-badge.active{border-color:var(--cockpit-accent);color:var(--cockpit-accent);background:color-mix(in srgb,var(--cockpit-accent) 14%,transparent);font-weight:600}.system-status-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--cockpit-success);flex-shrink:0}.system-table-section{border-radius:8px;transition:box-shadow .3s,background-color .3s}.system-table-highlight{animation:system-highlight 1.5s ease-out}@keyframes system-highlight{0%{box-shadow:0 0 0 2px var(--cockpit-accent),0 0 16px color-mix(in srgb,var(--cockpit-accent) 30%,transparent);background-color:color-mix(in srgb,var(--cockpit-accent) 6%,transparent)}to{box-shadow:0 0 0 0 transparent,0 0 0 transparent;background-color:transparent}}@media print{.report-view-controls,.ant-layout-sider,.app-header,.ant-collapse-expand-icon{display:none!important}.ant-collapse-header{font-size:16px!important;font-weight:700;padding:8px 0!important}.ant-collapse-content-box{padding:0!important}.report-section{page-break-inside:avoid;break-inside:avoid;page-break-after:auto}.ant-table{font-size:11px!important}.ant-table-cell{padding:4px 6px!important}}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
