.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative;background-clip:padding-box}.react-resizable-handle{position:absolute;right:-5px;bottom:0;z-index:1;width:10px;height:100%;cursor:col-resize}.react-resizable-handle:after{content:"";position:absolute;right:4px;top:25%;height:50%;width:2px;background-color:transparent;border-radius:1px;transition:background-color .2s}.react-resizable-handle:hover:after{background-color:#1677ff}.react-resizable-handle-active:after{background-color:#1677ff}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#f5f5f5}.tech-dot-bg{background-color:#0a0f1a;background-image:radial-gradient(circle at 1px 1px,rgba(0,212,255,.08) 1px,transparent 1px);background-size:32px 32px}.tech-grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(0,212,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.03) 1px,transparent 1px);background-size:40px 40px;z-index:0}@keyframes scanLine{0%{top:-2px;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.tech-scan-line{position:absolute;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,rgba(0,229,255,.6),transparent);animation:scanLine 3s ease-in-out infinite;pointer-events:none;z-index:2}@keyframes pulseGlow{0%,to{box-shadow:0 0 8px #00b4ff4d}50%{box-shadow:0 0 20px #00d4ff80,0 0 40px #00b4ff33}}.tech-pulse{animation:pulseGlow 3s ease-in-out infinite}@keyframes headerShimmer{0%{left:-50%}to{left:120%}}@keyframes headerDot{0%{left:-5%;opacity:0}10%{opacity:1}30%{left:35%;opacity:1}45%{opacity:0}55%{left:55%;opacity:0}60%{opacity:1}80%{left:95%;opacity:1}to{left:105%;opacity:0}}.tech-menu .ant-menu-item{position:relative;overflow:hidden;transition:all .3s ease!important}.tech-menu .ant-menu-item:after{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:linear-gradient(180deg,#00d4ff,#1890ff);transform:scaleY(0);transition:transform .3s cubic-bezier(.16,1,.3,1);border-radius:0 2px 2px 0}.tech-menu .ant-menu-item:hover:after,.tech-menu .ant-menu-item.ant-menu-item-selected:after{transform:scaleY(1)}.tech-menu .ant-menu-item:hover{background:linear-gradient(90deg,rgba(0,212,255,.08),transparent)!important}.tech-menu .ant-menu-item.ant-menu-item-selected{background:linear-gradient(90deg,#00d4ff1f,#1890ff0f)!important;border-radius:6px!important;margin:2px 8px!important;width:calc(100% - 16px)!important}.tech-menu .ant-menu-submenu-title{transition:all .3s ease!important}.tech-menu .ant-menu-submenu-title:hover{background:#00d4ff0d!important}.tech-menu .ant-menu-sub{background:#0003!important;border-radius:0 0 8px 8px;margin:0 8px 4px!important;padding:4px 0!important}.tech-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.3),transparent);margin:8px 16px}.tech-header-glass{background:#ffffffd9!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,212,255,.15)!important}.tech-header-glow{position:absolute;bottom:0;left:5%;width:90%;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.4),rgba(24,144,255,.4),transparent)}.tech-card{background:#fffffff2;border-radius:12px;border:1px solid rgba(0,212,255,.08);box-shadow:0 2px 16px #0014280f;transition:box-shadow .3s ease,border-color .3s ease}.tech-card:hover{border-color:#00d4ff33;box-shadow:0 4px 24px #0014281a}.tech-page-title{position:relative;padding-left:16px;font-size:18px;font-weight:700;color:#1a2a3a}.tech-page-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;background:linear-gradient(180deg,#00d4ff,#1890ff);border-radius:2px}.tech-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;background:linear-gradient(135deg,#ff4d4f,#ff7a45);color:#fff;line-height:1;box-shadow:0 2px 8px #ff4d4f4d}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.4}}.tech-dot-online{width:8px;height:8px;border-radius:50%;background:#52c41a;box-shadow:0 0 6px #52c41a80}.tech-dot-offline{width:8px;height:8px;border-radius:50%;background:#8c8c8c}.tech-dot-alarm{width:8px;height:8px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 8px #ff4d4f99;animation:statusBlink 1.5s ease-in-out infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000000d}::-webkit-scrollbar-thumb{background:#00b4ff40;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00b4ff73}.ant-table-tbody>tr.ant-table-row:hover>td{background:#00d4ff0a!important}.ant-btn-primary{box-shadow:0 2px 8px #1890ff4d!important}.ant-tag{border-radius:4px!important}.ant-card{border-radius:10px!important;border-color:#0000000f!important}.ant-modal-content{border-radius:12px!important}.ant-table{border-radius:8px!important}.dashboard-alert-table .ant-table{background:transparent!important}.dashboard-alert-table .ant-table-thead>tr>th{background:#00d4ff0f!important;color:#ffffff6b!important;border-bottom-color:#ffffff0f!important;font-size:12px!important;padding:8px 12px!important}.dashboard-alert-table .ant-table-tbody>tr>td{background:transparent!important;border-bottom-color:#ffffff0a!important;padding:6px 12px!important}.dashboard-alert-table .ant-table-tbody>tr.ant-table-row:hover>td{background:#00d4ff0a!important}.dashboard-alert-table .ant-table-tbody>tr.ant-table-placeholder>td{background:transparent!important;border-bottom:none!important}.tech-action-btn.ant-btn{color:#00d4ff!important;border-color:#00d4ff4d!important;background:#00d4ff0f!important;border-radius:8px!important;font-weight:500;font-size:13px;height:34px;padding:4px 16px;transition:all .3s ease}.tech-action-btn.ant-btn:hover{color:#00d4ff!important;border-color:#00d4ff99!important;background:#00d4ff1f!important;box-shadow:0 0 14px #00d4ff2e}.tech-action-btn.ant-btn:active{border-color:#00d4ffb3!important;background:#00d4ff29!important}.tech-action-btn .anticon{color:#00d4ff}.tech-menu.ant-menu-inline-collapsed .ant-menu-submenu-title{border-radius:8px;margin:2px 8px;width:calc(100% - 16px)}.ant-input:focus,.ant-input-focused,.ant-input-number-focused,.ant-select-focused .ant-select-selector{border-color:#00d4ff!important;box-shadow:0 0 0 2px #00d4ff1f!important}.dashboard-stat-card{text-align:center;border-radius:12px;border:1px solid rgba(0,212,255,.08)}.dashboard-stat-card .ant-statistic-title{font-size:14px;color:#666}.dashboard-stat-value{font-size:36px;font-weight:700;line-height:1.2}.realtime-chart-container{background:#fff;border-radius:10px;padding:16px;margin-bottom:16px;border:1px solid rgba(0,0,0,.05)}.scada-pump-spin{animation:pumpRotate 1.5s linear infinite;transform-origin:center}@keyframes pumpRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scada-pipe-flow-right{animation:pipeFlowRight 1.2s linear infinite}@keyframes pipeFlowRight{0%{transform:translate(-10px);opacity:0}20%{opacity:1}to{transform:translate(20px);opacity:1}}.scada-pipe-flow-left{animation:pipeFlowLeft 1.2s linear infinite}@keyframes pipeFlowLeft{0%{transform:translate(10px);opacity:0}20%{opacity:1}to{transform:translate(-20px);opacity:1}}.scada-pipe-flow-down{animation:pipeFlowDown 1.2s linear infinite}@keyframes pipeFlowDown{0%{transform:translateY(-10px);opacity:0}20%{opacity:1}to{transform:translateY(20px);opacity:1}}.scada-pipe-flow-up{animation:pipeFlowUp 1.2s linear infinite}@keyframes pipeFlowUp{0%{transform:translateY(10px);opacity:0}20%{opacity:1}to{transform:translateY(-20px);opacity:1}}@keyframes loginFadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes loginFadeIn{0%{opacity:0}to{opacity:1}}@keyframes orbFloat1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,15px) scale(.95)}}@keyframes orbFloat2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-25px,-30px) scale(1.08)}}@keyframes featureCardIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes formSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes btnShimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.login-feature-card{transition:all .35s cubic-bezier(.16,1,.3,1)!important;cursor:default}.login-feature-card:hover{background:#00d4ff14!important;border-color:#00d4ff40!important;transform:translateY(-3px);box-shadow:0 8px 24px #00d4ff1f}.login-feature-card:hover .login-feature-icon{color:#00e5ff!important;transform:scale(1.15)}.login-feature-icon{transition:all .3s ease}.login-form .ant-input-affix-wrapper:focus,.login-form .ant-input-affix-wrapper-focused{border-color:#00d4ff!important;box-shadow:0 0 0 3px #00d4ff1f!important}.login-btn-submit{background:linear-gradient(135deg,#0084ff,#00d4ff,#0084ff)!important;background-size:200% auto!important;transition:all .4s ease!important;border:none!important}.login-btn-submit:hover:not(:disabled){background-position:right center!important;box-shadow:0 6px 20px #00d4ff59!important;transform:translateY(-1px)}.login-btn-submit:active:not(:disabled){transform:translateY(0)}.login-tabs .ant-tabs-tab{font-size:15px!important;padding:8px 0!important;transition:color .3s ease!important}.login-tabs .ant-tabs-tab-btn{font-weight:500}.login-tabs .ant-tabs-ink-bar{background:linear-gradient(90deg,#00d4ff,#1890ff)!important;height:3px!important;border-radius:2px}@keyframes dashCardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes statNumberPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.tech-stat-card{transition:all .3s cubic-bezier(.16,1,.3,1)!important;position:relative;overflow:hidden}.tech-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.4),transparent);opacity:0;transition:opacity .3s ease}.tech-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #00000059,0 0 16px #00d4ff14!important;border-color:#00d4ff33!important}.tech-stat-card:hover:before{opacity:1}.dash-card-enter{animation:dashCardFadeIn .5s cubic-bezier(.16,1,.3,1) both}.dash-stat-pop{animation:statNumberPop .6s cubic-bezier(.16,1,.3,1) both}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 6px #52c41a}50%{opacity:.4;box-shadow:0 0 12px #52c41a}}.dash-card-title{position:relative;padding-left:10px}.dash-card-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:14px;background:linear-gradient(180deg,#00d4ff,#1890ff);border-radius:2px}.login-brand-panel{display:flex}.login-mobile-logo{display:none}@media (max-width: 900px){.login-brand-panel{display:none}.login-mobile-logo{display:flex!important}.login-form-panel{width:100%!important;padding:40px 24px!important}}.wq-panel{border-radius:12px!important;border:1px solid #eef2f7!important;box-shadow:0 2px 12px #1890ff0f!important;overflow:hidden}.wq-panel>.ant-card-head{border-bottom:1px solid #f0f4f8;min-height:46px}.wq-panel>.ant-card-head-title{font-weight:600;letter-spacing:.3px}.wq-gauge-card{position:relative;background:#fff;border:1px solid #eef2f7;border-radius:12px;padding:12px 10px 8px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 1px 3px #1890ff0a}.wq-gauge-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #1677ff24;border-color:#b8d4ff}.wq-gauge-card__bar{position:absolute;top:0;left:0;right:0;height:3px}.wq-gauge-card__head{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:2px}.wq-gauge-card__name{font-size:12.5px;font-weight:600;color:#1f2d3d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.wq-gauge-card__unit{font-size:10px;color:#98a6b5;flex-shrink:0}.wq-gauge-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:-8px;padding:0 2px}.wq-gauge-card__foot>span:first-child{font-size:10px;font-weight:600;padding:1px 8px;border-radius:10px;line-height:18px}.wq-gauge-card__avg{font-size:10px;color:#a0aec0}.zone-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 1px 3px #1890ff0a;background:#fff}.zone-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #1677ff1f;border-color:#b8d4ff!important}.zone-card__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;font-size:18px;background:linear-gradient(135deg,#e6f4ff,#f0f9ff);box-shadow:inset 0 0 0 1px #1677ff14}.zone-card__rate{margin-top:8px;height:4px;border-radius:4px;background:#eef2f7;overflow:hidden}.zone-card__rate-fill{height:100%;border-radius:4px;transition:width .4s ease}.zone-card--empty{background:#fafcfe}.zone-card--empty:hover{border-color:#91caff!important}.zone-card__plus{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;margin:0 auto;background:linear-gradient(135deg,#f0f5ff,#e6f0ff);color:#1677ff}.scada-thumb-overlay:hover{opacity:1!important}
