.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.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)}:root{--hub-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--hub-sidebar-w: 268px;--hub-page-max: 1680px;--hub-page-px: clamp(16px, 1.8vw, 28px);--hub-page-py: clamp(16px, 1.6vw, 28px);--hub-primary: #ff7a18;--hub-primary-dark: #c85a0e;--hub-primary-light: #ffb067;--hub-success: #52c41a;--hub-warning: #faad14;--hub-error: #ff4d4f;--hub-bg: #f4f6f9;--hub-surface: #ffffff;--hub-surface-2: #f1f4f8;--hub-elevated: #ffffff;--hub-border: rgba(255, 122, 24, .2);--hub-border-soft: rgba(15, 23, 42, .1);--hub-text: #1e293b;--hub-text-2: #64748b;--hub-accent-text: #b8560e;--hub-hover-bg: rgba(255, 122, 24, .07);--hub-shadow: 0 2px 16px rgba(15, 45, 53, .06);--hub-shadow-lg: 0 20px 60px rgba(15, 35, 45, .16);--hub-scroll-thumb: #cbd2da;--hub-scroll-thumb-hover: #b0bac2;--hub-sidebar-1: #ffffff;--hub-sidebar-2: #f6f8fb;--hub-sidebar-border: rgba(15, 23, 42, .08);--hub-sidebar-brand: #1e293b;--hub-sidebar-text: #64748b;--hub-menu-item: #475569;--hub-menu-icon: #94a3b8;--hub-menu-hover-bg: rgba(15, 23, 42, .05);--hub-menu-hover-color: #1e293b;--hub-menu-selected-bg: rgba(255, 122, 24, .12);--hub-menu-selected-color: #b8560e;--hub-user-bg: rgba(15, 23, 42, .03);--hub-banner-fade: rgba(244, 246, 249, .96);--hub-login-main-bg: #fafbfc;--hub-chart-axis: rgba(15, 23, 42, .12);--hub-chart-label: #64748b;--hub-chart-tooltip-bg: #ffffff;--ac-shell-top: #fafafa;--ac-shell-mid: #ececec;--ac-shell-bottom: #e2e2e2;--ac-shell-border: #d4d4d4;--ac-shell-inset: #ffffff;--ac-brand: #8a8a8a;--ac-muted: #7a7a7a;--ac-strong: #2f2f2f;--ac-btn-top: #ffffff;--ac-btn-bottom: #e0e0e0;--ac-btn-fg: #444444;--ac-chip-bg: #f5f5f5;--ac-chip-border: #d9d9d9;--ac-chip-fg: #8c8c8c;--ac-chip-on-bg: #2f2f2f;--ac-chip-on-border: #1f1f1f;--ac-chip-on-fg: #ffffff;--ac-power-border: #cccccc;--ac-power-top: #f5f5f5;--ac-power-bottom: #dddddd;--ac-power-fg: #777777;--ac-send-top: #1890ff;--ac-send-bottom: #1890ff;--ac-send-fg: #ffffff;--ac-send-border: transparent;--ac-accent: #1890ff;--ac-accent-soft: rgba(24, 144, 255, .12);--ac-accent-border: rgba(24, 144, 255, .35);--climate-ambient: #1890ff;--climate-ambient-soft: rgba(24, 144, 255, .06);--climate-ambient-mid: rgba(24, 144, 255, .11);--climate-ambient-border: rgba(24, 144, 255, .18);--climate-ambient-glow: rgba(24, 144, 255, .14);--climate-ambient-surface: linear-gradient( 165deg, rgba(24, 144, 255, .07) 0%, rgba(24, 144, 255, .03) 42%, var(--hub-surface-2) 100% )}html.demo-app.theme-dark{--hub-bg: #0a0a0b;--hub-surface: #161618;--hub-surface-2: #1e1e22;--hub-elevated: #1c1c20;--hub-border: rgba(255, 122, 24, .16);--hub-border-soft: rgba(255, 255, 255, .08);--hub-text: #ededef;--hub-text-2: #9ca3af;--hub-accent-text: #ffb067;--hub-hover-bg: rgba(255, 122, 24, .07);--hub-shadow: 0 8px 28px rgba(0, 0, 0, .5);--hub-shadow-lg: 0 24px 80px rgba(0, 0, 0, .6);--hub-scroll-thumb: #2c2c30;--hub-scroll-thumb-hover: #3a3a40;--hub-sidebar-1: #17171a;--hub-sidebar-2: #0a0a0b;--hub-sidebar-border: rgba(255, 122, 24, .16);--hub-sidebar-brand: #ffffff;--hub-sidebar-text: #9ca3af;--hub-menu-item: rgba(255, 255, 255, .62);--hub-menu-icon: rgba(255, 255, 255, .5);--hub-menu-hover-bg: rgba(255, 255, 255, .06);--hub-menu-hover-color: #ffffff;--hub-menu-selected-bg: rgba(255, 122, 24, .16);--hub-menu-selected-color: #ffffff;--hub-user-bg: rgba(255, 255, 255, .03);--hub-banner-fade: rgba(10, 10, 11, .96);--hub-login-main-bg: #101012;--hub-chart-axis: rgba(255, 255, 255, .1);--hub-chart-label: #9ca3af;--hub-chart-tooltip-bg: #1c1c20;--ac-shell-top: #48484e;--ac-shell-mid: #34343a;--ac-shell-bottom: #2a2a30;--ac-shell-border: #5c5c64;--ac-shell-inset: rgba(255, 255, 255, .1);--ac-brand: #b0b0b8;--ac-muted: #a0a0a8;--ac-strong: #f2f2f4;--ac-btn-top: #56565e;--ac-btn-bottom: #3e3e46;--ac-btn-fg: #f0f0f2;--ac-chip-bg: #323238;--ac-chip-border: #56565e;--ac-chip-fg: #b0b0b8;--ac-chip-on-bg: #1890ff;--ac-chip-on-border: #096dd9;--ac-chip-on-fg: #ffffff;--ac-power-border: #6a6a72;--ac-power-top: #42424a;--ac-power-bottom: #323238;--ac-power-fg: #c8c8d0;--ac-send-top: #1890ff;--ac-send-bottom: #1890ff;--ac-send-fg: #ffffff;--ac-send-border: transparent;--ac-accent: #69c0ff;--ac-accent-soft: rgba(105, 192, 255, .14);--ac-accent-border: rgba(105, 192, 255, .4);--climate-ambient: #69c0ff;--climate-ambient-soft: rgba(105, 192, 255, .08);--climate-ambient-mid: rgba(105, 192, 255, .14);--climate-ambient-border: rgba(105, 192, 255, .22);--climate-ambient-glow: rgba(105, 192, 255, .18);--climate-ambient-surface: linear-gradient( 165deg, rgba(105, 192, 255, .12) 0%, rgba(105, 192, 255, .04) 42%, var(--hub-elevated) 100% )}html.demo-app,html.demo-app body,html.demo-app #root{margin:0;padding:0;width:100%;min-height:100%;height:100%;font-family:var(--hub-font);font-size:15px;line-height:1.55;color:var(--hub-text);background:var(--hub-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html.demo-app.theme-switching,html.demo-app.theme-switching *,html.demo-app.theme-switching *:before,html.demo-app.theme-switching *:after{transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}html.demo-app #root{display:flex;flex-direction:column}::selection{background:#ff7a1859}*{scrollbar-width:thin;scrollbar-color:var(--hub-scroll-thumb) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--hub-scroll-thumb);border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:var(--hub-scroll-thumb-hover)}.tabular{font-variant-numeric:tabular-nums}.text-muted{color:var(--hub-text-2)}.link-accent{color:var(--hub-accent-text);cursor:pointer}.link-accent:hover{color:var(--hub-primary)}.accent-strong{color:var(--hub-accent-text);font-weight:600}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.hub-logo-wrap{position:relative;display:flex;flex-direction:column;align-items:center}.hub-logo-glow{position:absolute;width:calc(var(--hub-size) * 1.8);height:calc(var(--hub-size) * 1.8);border-radius:50%;background:radial-gradient(circle,rgba(255,122,24,.4) 0%,transparent 70%);animation:hubPulse 3s ease-in-out infinite}.hub-logo-ring{position:absolute;width:calc(var(--hub-size) * 1.5);height:calc(var(--hub-size) * 1.5)}.hub-logo-ring span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(255,176,103,.2);animation:hubRingSpin 10s linear infinite}.hub-logo-ring span:nth-child(2){top:8%;right:8%;bottom:8%;left:8%;animation-direction:reverse;animation-duration:14s;border-color:#ff7a1840}.hub-logo-ring span:nth-child(3){top:16%;right:16%;bottom:16%;left:16%;animation-duration:18s;border-style:dashed;border-color:#ffb0672e}.hub-logo-text{position:relative;margin:0;font-size:calc(var(--hub-size) * .5);font-weight:800;line-height:1;letter-spacing:.04em;text-shadow:0 4px 24px rgba(255,122,24,.45)}.hub-logo-eon{background:linear-gradient(135deg,#fff,#ffb067,#ff7a18);-webkit-background-clip:text;background-clip:text;color:transparent}.hub-logo-hub{margin-left:.12em;background:linear-gradient(135deg,#ffb067,#ff7a18 60%,#c85a0e);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:900}.hub-tagline{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#ffb067a6}.hub-tagline-line{width:32px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,176,103,.5),transparent)}.hub-logo-wrap--plain .hub-logo-text{text-shadow:none;font-weight:700}.hub-logo-wrap--plain .hub-logo-eon,.hub-logo-wrap--plain .hub-logo-hub{background:none;-webkit-background-clip:unset;background-clip:unset;color:inherit}.hub-logo-wrap--aside .hub-logo-text{text-shadow:none;font-weight:800}.hub-logo-wrap--aside .hub-logo-eon{background:none;-webkit-background-clip:unset;background-clip:unset;color:#fff}.hub-logo-wrap--aside .hub-logo-hub{margin-left:.12em;background:none;-webkit-background-clip:unset;background-clip:unset;color:var(--hub-primary);font-weight:900}@keyframes hubPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes hubRingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-page{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(32px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(56px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));background:radial-gradient(ellipse 60% 50% at 15% 0%,rgba(255,122,24,.1),transparent 60%),radial-gradient(ellipse 50% 50% at 100% 100%,rgba(200,90,14,.08),transparent 55%),#e9edf1;font-family:var(--hub-font)}html.demo-app.theme-dark .login-page{background:radial-gradient(ellipse 60% 50% at 15% 0%,rgba(255,122,24,.12),transparent 60%),radial-gradient(ellipse 50% 50% at 100% 100%,rgba(200,90,14,.1),transparent 55%),#060607}.login-page__frame{display:grid;grid-template-columns:1.05fr 1fr;width:min(920px,100%);min-height:520px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:8px;box-shadow:var(--hub-shadow-lg);overflow:hidden}.login-page__aside{display:flex;flex-direction:column;justify-content:space-between;padding:40px 36px 32px;background:linear-gradient(145deg,#050505,#0c0c0e 38%,#120c08 72%,#0a0705);color:#fff;border-right:1px solid var(--hub-border);position:relative;overflow:hidden;isolation:isolate}.login-page__aside:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 70% at 100% 0%,rgba(255,122,24,.28),transparent 58%),radial-gradient(ellipse 55% 45% at 0% 100%,rgba(255,122,24,.14),transparent 52%),linear-gradient(180deg,rgba(255,122,24,.06) 0%,transparent 42%);pointer-events:none;z-index:0}.login-page__aside-deco{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.login-page__shape{position:absolute;display:block}.login-page__shape--ring-lg{top:-72px;right:-48px;width:220px;height:220px;border:1.5px solid rgba(255,122,24,.35);border-radius:50%;box-shadow:0 0 60px #ff7a181f}.login-page__shape--ring-sm{top:28px;right:52px;width:88px;height:88px;border:1px dashed rgba(255,176,103,.45);border-radius:50%;animation:hubRingSpin 22s linear infinite}.login-page__shape--arc{bottom:-30px;left:-40px;width:200px;height:200px;border:2px solid transparent;border-top-color:#ff7a188c;border-right-color:#ff7a1833;border-radius:50%;transform:rotate(-28deg)}.login-page__shape--dot-grid{top:42%;left:8%;width:120px;height:120px;opacity:.55;background-image:radial-gradient(rgba(255,122,24,.55) 1.5px,transparent 1.5px);background-size:14px 14px;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,#000 30%,transparent 100%)}.login-page__shape--slash{bottom:18%;right:12%;width:3px;height:110px;background:linear-gradient(180deg,transparent,rgba(255,122,24,.75) 45%,rgba(255,176,103,.35) 70%,transparent);transform:rotate(32deg);border-radius:2px;box-shadow:0 0 18px #ff7a1859}.login-page__brand-badge,.login-page__aside>div:not(.login-page__aside-deco),.login-page__aside-foot{position:relative;z-index:1}.login-page__brand-eon{color:#fff}.login-page__brand-hub{color:var(--hub-primary);font-weight:800}.login-page__brand-badge{align-self:flex-start;--hub-size: 46px}.login-page__aside-title{position:relative;margin:28px 0 10px;font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-.01em;color:#fff}.login-page__aside-lead{position:relative;margin:0;font-size:14px;line-height:1.6;color:#ffffffc7;max-width:320px}.login-page__aside-list{position:relative;margin:24px 0 0;padding:0;list-style:none;font-size:13px;line-height:1.5;color:#ffffffb8}.login-page__aside-list li{position:relative;padding-left:16px;margin-bottom:10px}.login-page__aside-list li:before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--hub-primary);box-shadow:0 0 8px #ff7a18b3}.login-page__aside-foot{position:relative;display:flex;flex-direction:column;gap:6px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}.login-page__aside-platform{font-size:12px;color:#ffffff8c}.login-page__main{display:flex;align-items:center;justify-content:center;padding:40px 44px;background:var(--hub-login-main-bg)}.login-page__form-card{width:100%;max-width:340px}.login-page__form-header{margin-bottom:24px}.login-page__form-title{margin:0 0 6px;font-size:20px;font-weight:600;color:var(--hub-text);letter-spacing:-.01em}.login-page__form-lead{margin:0;font-size:14px;line-height:1.5;color:var(--hub-text-2)}.login-page__hint{margin-bottom:20px!important}.login-page__field{margin-bottom:18px}.login-page__label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--hub-text-2)}.login-page__submit{height:42px!important;margin-top:6px;font-size:14px!important;font-weight:600!important}.login-page__footer{margin-top:20px;font-size:12px;color:var(--hub-text-2);text-align:center}.login-page__footer-sep{margin:0 8px;opacity:.5}@media (max-width: 768px){.login-page{justify-content:flex-start;padding:16px}.login-page__frame{grid-template-columns:1fr;min-height:auto;max-width:420px}.login-page__aside{padding:22px 20px 16px}.login-page__aside-list{display:block;margin:12px 0 0;padding-left:18px;font-size:12px;line-height:1.45;color:#ffffffb8}.login-page__aside-foot{display:block;margin-top:14px;font-size:11px;opacity:.75}}.app-container{min-height:100vh;width:100%}.side-menu{width:var(--hub-sidebar-w);background:linear-gradient(180deg,#2a2a2f,#232327 58%,#1b1b1e);color:var(--hub-primary-light);z-index:1100;position:fixed;height:100%;display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1);border-right:1px solid rgba(255,122,24,.14)}@media (max-width: 992px){.side-menu{transform:translate(-100%)}.side-menu.open{transform:translate(0)}}.side-menu-header{flex-shrink:0;padding:20px 20px 16px;border-bottom:1px solid rgba(255,122,24,.16)}.side-menu-brand-row{display:flex;align-items:center;gap:10px;min-height:34px}.side-menu .hub-logo-text{font-size:20px;letter-spacing:.03em}.side-menu .hub-logo-eon{color:#fff!important}.side-menu .hub-logo-hub{color:var(--hub-primary-light)!important;margin-left:.12em}.side-menu-demo-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-primary-light);padding:2px 7px;border-radius:5px;background:#ff7a1829}.side-menu .custom-menu{background:transparent!important;flex-grow:1;padding:8px 10px!important;border:none!important;overflow-y:auto}.side-menu .custom-menu .ant-menu-item{height:40px!important;line-height:40px!important;width:100%!important;margin:2px 0!important;border-radius:8px!important;padding-inline:12px!important;padding-left:12px!important;font-size:14.5px!important;font-weight:500;color:#ffb0679e!important;background:transparent!important;transition:background .15s ease,color .15s ease;overflow:visible!important}.side-menu .custom-menu .ant-menu-item .ant-menu-title-content{flex:1!important;min-width:0!important;overflow:visible!important}.side-menu .custom-menu .ant-menu-item a{color:inherit!important}.side-menu .custom-menu .ant-menu-item .ant-menu-item-icon{color:#ffb0676b!important;font-size:17px;min-width:17px;transition:color .15s ease}.side-menu .custom-menu .ant-menu-item:hover{color:#ffb067eb!important;background:#ffffff0f!important}.side-menu .custom-menu .ant-menu-item:hover .ant-menu-item-icon{color:#ffb067b8!important}.side-menu .custom-menu .ant-menu-item-selected{color:#fff!important;background:#ffffff24!important;box-shadow:none!important;font-weight:500}.side-menu .custom-menu .ant-menu-item-selected .ant-menu-item-icon{color:#ffffffe0!important}.side-menu .custom-menu .ant-menu-item-selected:after{display:none!important}.side-menu .custom-menu .side-menu-item-ai{background:#ff7a181f!important;border:1px solid rgba(255,122,24,.22)!important}.side-menu .custom-menu .side-menu-item-ai,.side-menu .custom-menu .side-menu-item-ai .ant-menu-item-icon{color:#ffb067!important}.side-menu .custom-menu .side-menu-item-ai.ant-menu-item-selected{color:#ffb067!important;background:#ff7a1838!important;border-color:#ffb06759!important;box-shadow:none!important}.side-menu .custom-menu .side-menu-item-ai.ant-menu-item-selected .ant-menu-item-icon{color:#ffb067!important}.side-menu .custom-menu .side-menu-item-ai:hover{color:#ffb067!important;background:#ff7a1829!important;border-color:#ffb0674d!important}.side-menu .custom-menu .side-menu-item-ai:hover .ant-menu-item-icon{color:#ffb067!important}.side-menu-item-label{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.side-menu-badge-wrap{display:inline-flex;align-items:center;flex-shrink:0;margin-left:auto;line-height:1;pointer-events:auto;cursor:default}.side-menu-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 7px 2px 5px;border-radius:999px;background:#ff4d4f24;border:1px solid rgba(255,120,117,.4);line-height:1}.side-menu-badge__dot{width:6px;height:6px;border-radius:50%;background:#ff7875;box-shadow:0 0 6px #ff7875bf;animation:sideMenuBadgePulse 1.8s ease-in-out infinite}.side-menu-badge__count{font-size:11px;font-weight:700;color:#ffb4a2;font-variant-numeric:tabular-nums}.side-menu .custom-menu .ant-menu-item-selected .side-menu-badge{background:#ff4d4f38;border-color:#ffa09d8c}.side-menu .custom-menu .ant-menu-item-selected .side-menu-badge__count{color:#ffe7e3}@keyframes sideMenuBadgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.88)}}.menu-footer{margin-top:auto;padding:14px 12px;border-top:1px solid rgba(255,122,24,.16)}.side-menu-appearance{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:2px 4px}.side-menu-appearance__label{font-size:13px;font-weight:500;color:var(--hub-primary-light)}.theme-switch{position:relative;flex-shrink:0;width:60px;height:30px;padding:0;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:#00000061;box-shadow:inset 0 1px 3px #0006;cursor:pointer;transition:background .25s}.theme-switch__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #00000073;transition:transform .32s cubic-bezier(.34,1.45,.5,1)}.theme-switch--dark .theme-switch__knob{transform:translate(30px)}.theme-switch__icon{position:absolute;top:50%;transform:translateY(-50%);display:flex;width:14px;height:14px;transition:opacity .25s}.theme-switch__icon svg{width:100%;height:100%}.theme-switch__icon--sun{right:9px;color:var(--hub-primary-light)}.theme-switch__icon--moon{left:9px;color:#ffd666}.theme-switch--dark .theme-switch__icon--sun,.theme-switch--light .theme-switch__icon--moon{opacity:0}.side-menu-user{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#ff7a1814;border:1px solid rgba(255,122,24,.16)}.side-menu-user__meta{min-width:0;flex:1}.side-menu-user__name{font-size:13px;font-weight:600;color:var(--hub-primary-light);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-menu-user__role{font-size:11px;color:#ff7a18b3}.side-menu-logout{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:var(--hub-primary-light);font-size:16px;cursor:pointer;transition:background .15s,color .15s}.side-menu-logout:hover{color:#ff7875;background:#ff4d4f24}.hamburger-menu{display:none}@media (max-width: 992px){.hamburger-menu{display:flex;align-items:center;justify-content:center;position:fixed;top:max(10px,env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px));width:44px;height:44px;font-size:18px;color:var(--hub-text);background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:12px;z-index:1200;cursor:pointer;box-shadow:0 4px 16px #0000001f}}.sidebar-overlay{display:none}@media (max-width: 992px){.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000}}.main-content{flex:1;margin-left:var(--hub-sidebar-w);padding:0;min-height:100vh;min-height:100dvh;width:calc(100% - var(--hub-sidebar-w));background:radial-gradient(ellipse 90% 60% at 100% 0%,rgba(255,122,24,.06),transparent 55%),radial-gradient(ellipse 70% 50% at 0% 100%,rgba(255,176,103,.04),transparent 50%),var(--hub-bg);display:flex;flex-direction:column;overflow-x:hidden}.main-content:has(.assistant-page){height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}.main-content:has(.assistant-page) .demo-banner{flex-shrink:0}.main-content:has(.twin-page){height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}.main-content:has(.twin-page) .demo-banner{flex-shrink:0}@media (max-width: 992px){.main-content{margin-left:0;width:100%;padding-top:0;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}}.page-shell{width:100%;max-width:var(--hub-page-max);margin:0 auto;padding:var(--hub-page-py) var(--hub-page-px) calc(var(--hub-page-py) + 12px);box-sizing:border-box}.page-shell__header{margin-bottom:20px}.page-shell__title{color:var(--hub-primary)!important;margin:0 0 4px!important;letter-spacing:-.025em;font-weight:700!important}.page-shell__title .anticon{color:var(--hub-primary)!important;margin-right:10px}.page-shell__lead{display:block;color:var(--hub-text-2)!important;margin-bottom:0}.page-breadcrumb{margin-bottom:16px}.page-breadcrumb a{color:var(--hub-text-2);transition:color .15s ease}.page-breadcrumb a:hover{color:var(--hub-accent-text)}.page-breadcrumb .ant-breadcrumb-separator{color:var(--hub-text-2);opacity:.45}.page-breadcrumb li:last-child{color:var(--hub-text);font-weight:600}.demo-banner{flex-shrink:0;position:sticky;top:0;z-index:100;padding:12px var(--hub-page-px) 0;background:linear-gradient(180deg,var(--hub-banner-fade) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.demo-banner__inner{display:flex;align-items:center;gap:12px;max-width:var(--hub-page-max);margin:0 auto;padding:10px 16px;border-radius:12px;background:linear-gradient(135deg,#ff7a1824,#c85a0e14);border:1px solid rgba(255,122,24,.25);box-shadow:0 2px 12px #ff7a1814}.demo-banner__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--hub-primary),var(--hub-primary-dark));color:#fff;font-size:15px;flex-shrink:0}.demo-banner__text{flex:1;font-size:13px;line-height:1.45;color:var(--hub-text)}.demo-banner__text strong{color:var(--hub-accent-text);font-weight:700}.demo-banner__sep{margin:0 8px;color:#ff7a1880}.demo-banner__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:8px;background:#7f7f7f1f;color:var(--hub-text-2);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.demo-banner__close:hover{background:#7f7f7f33;color:var(--hub-accent-text)}@media (max-width: 640px){.demo-banner__sep{display:none}.demo-banner__inner{flex-wrap:wrap}.demo-banner__text{flex:1 1 100%;order:2}.live-pill{order:3}}.live-pill{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;color:var(--hub-success);background:#52c41a1f;border:1px solid rgba(82,196,26,.3);white-space:nowrap}.live-pill__dot{width:8px;height:8px;border-radius:50%;background:var(--hub-success);box-shadow:0 0 #52c41a8c;animation:liveBlink 1.6s ease-in-out infinite}.live-pill__label{letter-spacing:.02em}.live-pill__meta{color:var(--hub-text-2);font-weight:500}@keyframes liveBlink{0%{box-shadow:0 0 #52c41a8c;opacity:1}70%{box-shadow:0 0 0 7px #52c41a00;opacity:.85}to{box-shadow:0 0 #52c41a00;opacity:1}}@media (max-width: 640px){.live-pill__meta{display:none}}@keyframes liveValueFlash{0%{color:var(--hub-primary)}to{color:inherit}}.page-hero-card{margin-top:20px;margin-bottom:20px;background:linear-gradient(135deg,var(--hub-primary) 0%,var(--hub-primary-dark) 100%)!important;border:none!important;border-radius:14px!important;box-shadow:0 8px 28px #ff7a1838}.page-hero-card .ant-card-body{padding:22px 24px!important}.page-hero-card__stat-title{color:#ffffffb3}.page-hero-card .ant-statistic-title{margin-bottom:4px!important;font-size:12px!important}.page-hero-card .ant-statistic-content{color:#fff}.page-hero-card .ant-statistic-content-prefix{color:#ffffffe6;margin-inline-end:8px}.page-hero-card .ant-statistic-content-suffix{color:#ffffffd1;font-size:13px;margin-inline-start:4px}.page-hero-card .ant-statistic-content-value{word-break:break-word;font-size:1.35rem!important}.home-hero-stats{display:flex;flex-wrap:nowrap;gap:16px;align-items:stretch}.home-hero-stats__item{flex:1 1 0;min-width:0}.home-hero-stats__item--alarm{cursor:pointer;border-radius:8px;transition:background .15s ease}.home-hero-stats__item--alarm:hover{background:#ffffff14}.home-hero-stats__item--alarm:focus-visible{outline:2px solid rgba(255,255,255,.65);outline-offset:2px}.home-hero-stats__item--clickable{cursor:pointer;border-radius:8px;transition:background .15s ease,box-shadow .15s ease}.home-hero-stats__item--clickable:hover{background:#ffffff14}.home-hero-stats__item--clickable:focus-visible{outline:2px solid rgba(255,255,255,.65);outline-offset:2px}.home-hero-stats__item--selected{background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff38}.page-sticky-toolbar{margin-bottom:24px;border-top:3px solid var(--hub-primary)!important;border-radius:8px!important;box-shadow:var(--hub-shadow)}.page-sticky-toolbar .ant-card-body{padding:16px!important}.page-period-controls{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end}.page-period-controls__block{flex:1 1 160px;min-width:0}.page-period-controls__label{display:block;margin-bottom:8px}.page-period-controls .ant-radio-group{display:flex;flex-wrap:wrap;gap:4px}.page-period-controls .ant-picker{width:100%;max-width:220px}.home-section-title{color:var(--hub-primary)!important;margin:0 0 16px!important;display:flex;align-items:center;gap:8px;font-weight:700!important}.home-section-title .anticon{color:var(--hub-primary)}.home-section-title--split{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.home-section-title__text{margin:0!important;color:var(--hub-primary)!important;display:flex;align-items:center;gap:8px}.home-alarm-summary-card .ant-card-body{padding:0!important}.home-alarm-summary__chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px;border-bottom:1px solid var(--hub-border-soft);background:var(--hub-surface-2)}.home-alarm-summary__chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface);min-width:0}.home-alarm-summary__chip--hot{border-color:#ff4d4f59;background:#ff4d4f0f}.home-alarm-summary__chip-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--hub-primary);background:#ff7a181f;flex-shrink:0}.home-alarm-summary__chip--hot .home-alarm-summary__chip-icon{color:var(--hub-error);background:#ff4d4f1f}.home-alarm-summary__chip-body{display:flex;flex-direction:column;min-width:0}.home-alarm-summary__chip-value{font-size:18px;font-weight:700;line-height:1.2;color:var(--hub-text)}.home-alarm-summary__chip-label{font-size:11px;color:var(--hub-text-2);line-height:1.3}.home-alarm-summary__empty{padding:28px 16px!important}.home-alarm-summary__footer{display:flex;justify-content:flex-end;padding:10px 16px 14px;border-top:1px solid var(--hub-border-soft)}@media (max-width: 991px){.home-alarm-summary__chips{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 575px){.home-alarm-summary__chips{grid-template-columns:1fr}}.home-system-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.home-system-status-card{width:100%;height:100%}.home-system-status-card .ant-card-body{padding:28px 24px!important;min-height:148px;display:flex;flex-direction:column;justify-content:center}.home-system-status-card .ant-statistic-title{margin-bottom:16px!important}.home-system-status-card__icon{font-size:28px;line-height:1;flex-shrink:0}.home-system-status-card__label{font-size:16px;font-weight:600;color:var(--hub-text);line-height:1.35}.home-system-status-card .ant-statistic-content{margin-top:4px;font-size:28px}@media (max-width: 1100px){.home-hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.home-hero-stats__item{flex:none;min-width:0;padding:8px 10px;border-radius:10px;background:#ffffff0f}.home-hero-stats__item:last-child:nth-child(odd){grid-column:1 / -1;display:flex;justify-content:center;text-align:center}.home-hero-stats__item:last-child:nth-child(odd) .ant-statistic{width:auto}}@media (max-width: 992px){.home-system-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-sticky-toolbar .ant-card-body{padding:12px!important}.page-period-controls{flex-direction:column;align-items:stretch;gap:12px}.page-period-controls__block{flex:1 1 100%}.page-period-controls .ant-picker{max-width:none}.page-period-controls .ant-radio-button-wrapper{flex:1 1 calc(50% - 4px);text-align:center;padding-inline:8px}.detail-telemetry-range-group .ant-radio-button-wrapper{flex:1 1 calc(33.333% - 4px);min-width:0;font-size:12px;padding-inline:6px}.detail-telemetry-custom-row .ant-picker-range{max-width:none;width:100%}}@media (max-width: 480px){.page-hero-card .ant-card-body{padding:14px 12px!important}.home-hero-stats{gap:8px}.home-hero-stats__item{padding:8px}.page-hero-card .ant-statistic-content-value{font-size:1.2rem!important}.home-system-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-system-status-card .ant-card-body{min-height:108px;padding:14px 12px!important}.home-system-status-card .ant-statistic-content,.home-system-status-card__icon{font-size:22px}.home-system-status-card__label{font-size:12px;line-height:1.3}}.home-unified-hero{background:linear-gradient(135deg,var(--hub-primary) 0%,var(--hub-primary-dark) 55%,#97430a 100%)!important;border:none!important;border-radius:14px!important;box-shadow:0 8px 28px #ff7a1838}.hero-stat-card{height:100%;border:none!important;border-radius:14px!important;color:#fff;overflow:hidden;position:relative}.hero-stat-card .ant-card-body{padding:18px 20px!important}.hero-stat-card__inner{display:flex;align-items:center;gap:14px}.hero-stat-card__icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#ffffff2e;color:#fff;flex-shrink:0}.hero-stat-card__label{font-size:13px;color:#ffffffe6;line-height:1.3}.hero-stat-card__value{font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.hero-stat-card__value small{font-size:14px;font-weight:600;opacity:.8;margin-left:3px}.stat-tile .ant-card-body{padding:20px!important;display:flex;align-items:center;gap:14px}.stat-tile__icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.stat-tile__label{font-size:12px;color:var(--hub-text-2)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot--ok{background:var(--hub-success);box-shadow:0 0 8px var(--hub-success)}.status-dot--warn{background:var(--hub-warning);box-shadow:0 0 8px var(--hub-warning)}.status-dot--err{background:var(--hub-error);box-shadow:0 0 8px var(--hub-error)}.section-title{font-size:16px!important;font-weight:700!important;color:var(--hub-text)!important;margin:0 0 12px!important;display:flex;align-items:center;gap:8px}.section-title .anticon{color:var(--hub-primary)}.devices-page__hero{margin-top:20px;margin-bottom:20px}.devices-page__hero-stat{display:flex;align-items:center;gap:14px;padding:6px 8px;border-radius:10px;margin-bottom:4px}.devices-page__hero-stat--filter{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.devices-page__hero-stat--filter:hover,.devices-page__hero-stat--filter:focus,.devices-page__hero-stat--filter:focus-visible,.devices-page__hero-stat--filter:active{background:transparent!important;box-shadow:none!important;outline:none!important}.devices-page__hero-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;background:#ffffff2e;color:#fff;flex-shrink:0}.devices-page__hero-suffix{font-size:14px;opacity:.7;color:#ffffffd1;margin-inline-start:4px}.devices-page__search-label{display:block;margin-bottom:8px}.devices-page__search-icon{color:var(--hub-primary)}.devices-page__list-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}.devices-page__list-head--collapse{margin-bottom:0;width:100%;padding-right:8px}.devices-page__list-collapse.ant-collapse{background:transparent;margin-bottom:8px}.devices-page__list-collapse>.ant-collapse-item>.ant-collapse-header{align-items:center;padding:8px 4px!important}.devices-page__list-collapse .ant-collapse-content-box{padding:8px 0 0!important}.devices-page__group-collapse.ant-collapse{background:transparent}.devices-page__group-collapse>.ant-collapse-item{margin-bottom:8px;border:1px solid var(--hub-border-soft);border-radius:10px;overflow:hidden;background:var(--hub-surface)}.devices-page__group-collapse>.ant-collapse-item>.ant-collapse-header{align-items:center;padding:10px 12px!important}.devices-page__group-collapse .ant-collapse-content-box{padding:4px 12px 12px!important}.devices-page__group-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;padding-right:8px}.devices-page__group-label-text{font-weight:700;color:var(--hub-text)}.devices-page__group-link{margin-left:auto;border:none;background:transparent;color:var(--hub-primary);font-size:12px;font-weight:600;cursor:pointer;padding:2px 6px}.devices-page__group-link:hover{text-decoration:underline}.devices-page__list-title{margin:0!important}.devices-page__list-meta{font-size:13px;white-space:nowrap}.page-toolbar-actions-col{display:flex;justify-content:flex-end}.page-toolbar-actions-col .ant-space{width:100%;justify-content:flex-end}@media (max-width: 992px){.page-toolbar-actions-col .ant-space{justify-content:flex-start}}.devices-page__empty-card{border-top:3px solid var(--hub-primary)!important;border-radius:12px!important}.device-card__station-line{display:flex;flex-direction:column;gap:2px;padding:0 16px 10px;min-width:0}.device-card__station-line strong{font-size:14px;font-weight:700;color:var(--hub-text);line-height:1.25}.device-card__station-line span{font-size:12px;color:var(--hub-text-2)}.device-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 12px}.device-info-metric{min-width:0;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.device-info-metric--wide{grid-column:1 / -1}.device-info-metric__label{font-size:10px;font-weight:600;color:var(--hub-text-2);text-transform:uppercase;letter-spacing:.03em}.device-info-metric__value{font-size:13px;font-weight:600;color:var(--hub-text);line-height:1.25;word-break:break-word;overflow-wrap:anywhere}html.demo-app.theme-dark .device-info-metric{background:#ffffff08}.device-card{height:100%;border-radius:14px!important;overflow:hidden;border:2px solid var(--hub-border-soft)!important;background:var(--hub-surface)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease!important;box-shadow:0 2px 8px #0f172a0d}.device-card--online{border-color:#52c41a80!important;box-shadow:0 0 0 1px #52c41a1f,0 3px 14px #52c41a24,0 2px 6px #0f172a0a}.device-card--online:hover{transform:translateY(-3px);border-color:#52c41ab8!important;box-shadow:0 0 0 1px #52c41a2e,0 6px 22px #52c41a33,0 3px 10px #0f172a0f}.device-card--offline{border-color:#8c8c8c80!important;box-shadow:0 0 0 1px #8c8c8c1a,0 3px 12px #0f172a12;filter:saturate(.75) grayscale(.15);opacity:.94}.device-card--offline:hover{transform:translateY(-2px);border-color:#8c8c8c94!important;box-shadow:0 0 0 1px #8c8c8c1f,0 5px 16px #0f172a1a}.device-card--alarm{border-color:#ff4d4f9e!important;box-shadow:0 0 0 1px #ff4d4f26,0 3px 16px #ff4d4f38,0 0 12px #ff4d4f1a;animation:device-card-alarm-ring 2.2s ease-in-out infinite}.device-card--alarm:hover{transform:translateY(-3px);border-color:#ff4d4fd1!important;box-shadow:0 0 0 1px #ff4d4f38,0 8px 24px #ff4d4f47,0 0 18px #ff4d4f29}@keyframes device-card-alarm-ring{0%,to{box-shadow:0 0 0 1px #ff4d4f26,0 3px 16px #ff4d4f33,0 0 10px #ff4d4f14}50%{box-shadow:0 0 0 2px #ff4d4f1f,0 4px 20px #ff4d4f47,0 0 14px #ff4d4f24}}html.demo-app.theme-dark .device-card{box-shadow:0 2px 10px #00000047}html.demo-app.theme-dark .device-card--online{box-shadow:0 0 0 1px #52c41a2e,0 3px 16px #52c41a29,0 2px 8px #00000052}html.demo-app.theme-dark .device-card--offline{box-shadow:0 0 0 1px #8c8c8c1f,0 3px 14px #0000005c}html.demo-app.theme-dark .device-card--alarm{box-shadow:0 0 0 1px #ff4d4f33,0 3px 18px #ff4d4f42,0 0 14px #ff4d4f1f}html.demo-app.theme-dark .device-card--online:hover{box-shadow:0 0 0 1px #52c41a3d,0 6px 22px #52c41a38,0 3px 10px #0006}html.demo-app.theme-dark .device-card--offline{border-color:#a0a0a061!important;opacity:.9;filter:saturate(.7) grayscale(.1)}html.demo-app.theme-dark .device-card--offline:hover{border-color:#b4b4b480!important;box-shadow:0 0 0 1px #a0a0a029,0 5px 16px #0000006b}html.demo-app.theme-dark .device-card--alarm:hover{box-shadow:0 0 0 1px #ff4d4f47,0 8px 24px #ff4d4f52,0 0 18px #ff4d4f2e}html.demo-app.theme-dark .device-card--offline .device-card__accent{background:repeating-linear-gradient(90deg,#525252 0,#525252 8px,#737373 8px,#737373 16px)}html.demo-app.theme-dark .device-card__pill--online{color:#95de64;background:#52c41a24;border-color:#52c41a52}html.demo-app.theme-dark .device-card__pill--offline{color:#d4d4d4;background:#ffffff0f;border-color:#ffffff24}html.demo-app.theme-dark .device-card__pill--offline .device-card__pill-dot{background:#a3a3a3}html.demo-app.theme-dark .device-card__pill--offline-alert{color:#e5e5e5;background:#ffffff12;border-color:#ffffff29}html.demo-app.theme-dark .device-card__pill--offline-alert .device-card__pill-dot{background:#d4d4d4}html.demo-app.theme-dark .device-card__pill--alarm{color:#ff9c9c;background:#ff4d4f24;border-color:#ff4d4f57}html.demo-app.theme-dark .device-card__metrics-offline-msg{color:#d4d4d4;background:#ffffff0a;border-color:#ffffff1f}html.demo-app.theme-dark .device-card__footer{background:#ffffff08}.device-card .ant-card-body{padding:0!important;display:flex;flex-direction:column;height:100%}.device-card__accent{height:4px;width:100%;flex-shrink:0}.device-card--online .device-card__accent{background:linear-gradient(90deg,#389e0d,#52c41a,#73d13d)}.device-card--offline .device-card__accent{background:repeating-linear-gradient(90deg,#737373 0,#737373 8px,#a3a3a3 8px,#a3a3a3 16px)}.device-card--alarm .device-card__accent{height:5px;background:linear-gradient(90deg,#cf1322,#ff4d4f,#ff7a45)}.device-card__header{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 8px}.device-card__titles{flex:1;min-width:0;padding-top:2px}.device-card__name{display:block;font-size:15px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--hub-text);line-height:1.3;word-break:break-all}.device-card__subtitle{display:block;margin-top:4px;font-size:12px;font-weight:500;color:var(--hub-text-2);line-height:1.35;word-break:break-word}.hub-status-pills{display:flex;flex-wrap:wrap;gap:6px}.device-card__status.hub-status-pills{padding:0 16px 10px}.hub-status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.2;border:1px solid transparent}.hub-status-pill__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.hub-status-pill__dot--pulse{animation:hub-pill-pulse 1.6s ease-in-out infinite}.hub-status-pill__icon{font-size:12px}.hub-status-pill--online{color:#389e0d;background:#52c41a1f;border-color:#52c41a47}.hub-status-pill--online .hub-status-pill__dot{background:#52c41a;box-shadow:0 0 0 2px #52c41a33}.hub-status-pill--offline{color:#595959;background:#8c8c8c24;border-color:#8c8c8c52}.hub-status-pill--offline .hub-status-pill__dot{background:#8c8c8c}.hub-status-pill--offline-alert{color:#434343;background:#5959591f;border-color:#59595959}.hub-status-pill--offline-alert .hub-status-pill__dot{background:#595959}.hub-status-pill--alarm{color:#cf1322;background:#ff4d4f1a;border-color:#ff4d4f47}.hub-status-pill--alarm .hub-status-pill__dot{background:#ff4d4f}@keyframes hub-pill-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}html.demo-app.theme-dark .hub-status-pill--online{color:#95de64;background:#52c41a24;border-color:#52c41a52}html.demo-app.theme-dark .hub-status-pill--offline{color:#d4d4d4;background:#ffffff0f;border-color:#ffffff24}html.demo-app.theme-dark .hub-status-pill--offline .hub-status-pill__dot{background:#a3a3a3}html.demo-app.theme-dark .hub-status-pill--offline-alert{color:#e5e5e5;background:#ffffff12;border-color:#ffffff29}html.demo-app.theme-dark .hub-status-pill--offline-alert .hub-status-pill__dot{background:#d4d4d4}html.demo-app.theme-dark .hub-status-pill--alarm{color:#ff9c9c;background:#ff4d4f24;border-color:#ff4d4f57}.device-card__status{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}.device-card__pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.2;border:1px solid transparent}.device-card__pill-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.device-card__pill-dot--pulse{animation:device-pill-pulse 1.6s ease-in-out infinite}.device-card__pill-icon{font-size:12px}.device-card__pill--online{color:#389e0d;background:#52c41a1f;border-color:#52c41a47}.device-card__pill--online .device-card__pill-dot{background:#52c41a;box-shadow:0 0 0 2px #52c41a33}.device-card__pill--offline{color:#595959;background:#8c8c8c24;border-color:#8c8c8c52}.device-card__pill--offline .device-card__pill-dot{background:#8c8c8c}.device-card__pill--offline-alert{color:#434343;background:#5959591f;border-color:#59595959}.device-card__pill--offline-alert .device-card__pill-dot{background:#595959}.device-card__pill--alarm{color:#cf1322;background:#ff4d4f1a;border-color:#ff4d4f47}.device-card__pill--alarm .device-card__pill-dot{background:#ff4d4f}@keyframes device-pill-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.device-card__icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.device-card__icon--hub svg{display:block}.device-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin:0 16px 12px;padding:8px 10px;background:var(--hub-surface-2);border-radius:8px;border:1px solid var(--hub-border-soft)}.device-card__meta-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1.35;color:var(--hub-text-2);white-space:nowrap}.device-card__meta-chip .anticon{font-size:12px;color:var(--hub-primary);opacity:.85;flex-shrink:0}.device-card__metrics{padding:0 16px 14px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;flex:1;align-content:start}.device-card__metrics--count-1{grid-template-columns:1fr}.device-card__metrics--count-3 .device-card__metric:last-child{grid-column:1 / -1}.device-card__metric{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px 8px;background:var(--hub-surface-2);border-radius:8px;border:1px solid var(--hub-border-soft);min-height:56px}.device-card__metric-head{display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:6px}.device-card__metric-icon{display:flex;font-size:13px;line-height:1}.device-card__metric-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--hub-text);opacity:.5;line-height:1.2}.device-card__metric-value{display:block;width:100%;font-size:15px;font-weight:700;color:var(--hub-text);font-variant-numeric:tabular-nums;line-height:1.2;text-align:center}.device-card__metrics--offline{position:relative}.device-card__metrics--offline .device-card__metric{opacity:.45}.device-card__metrics--offline .device-card__metric-value{color:var(--hub-text-2);font-weight:600}.device-card__metrics-offline-msg{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;margin-bottom:2px;border-radius:8px;font-size:11px;font-weight:600;color:#595959;background:#8c8c8c1f;border:1px dashed rgba(140,140,140,.35)}.device-card__metrics-offline-msg .anticon{font-size:12px}.device-card--offline .device-card__meta{opacity:.8}.device-card__seen{display:inline-flex!important;align-items:center;gap:5px;font-size:12px!important;white-space:nowrap;flex:0 0 auto;max-width:100%;line-height:1.3}.device-card__seen .anticon{font-size:12px;opacity:.65;flex-shrink:0}.device-card__footer{padding:10px 16px 14px;border-top:1px solid var(--hub-border-soft);background:#ffffff05}.device-card__footer-inner{display:flex;flex-direction:column;align-items:stretch;gap:8px}.device-card__footer-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px;width:100%}.device-card__alarm-btn,.device-card__climate-btn{border-color:var(--hub-border-soft)!important;color:var(--hub-accent-text)!important;font-size:12px!important;height:28px!important;padding-inline:10px!important;flex-shrink:0}.device-card__alarm-btn:hover,.device-card__climate-btn:hover{border-color:var(--hub-primary)!important;color:var(--hub-primary)!important;background:#ff7a1814!important}.device-card__detail-btn{padding:0 0 0 4px!important;font-size:12px!important;flex-shrink:0;white-space:nowrap;margin-left:auto}.hub-modal-layer,.hub-modal-layer .ant-modal-wrap,.hub-modal-layer .ant-modal-mask{z-index:1400!important}.alarm-config-modal-root .ant-modal{max-width:min(1180px,96vw);padding-bottom:0}.alarm-config-modal .ant-modal-content{padding:0;overflow:hidden}.alarm-config-modal .ant-modal-body{padding:28px 32px 12px}.alarm-config-modal .ant-modal-footer{padding:16px 32px 20px;border-top:1px solid var(--hub-border-soft);margin-top:0}.alarm-config-modal__header{display:flex;align-items:flex-start;gap:18px;margin-bottom:22px;flex-wrap:wrap}.alarm-config-modal__header-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff7a1833,#ff7a180f);color:var(--hub-primary);font-size:22px;flex-shrink:0}.alarm-config-modal__header-text{flex:1;min-width:0}.alarm-config-modal__title{margin:0 0 2px!important}.alarm-config-modal__add{margin-left:auto;flex-shrink:0}.alarm-config-modal__system{padding:18px 20px;border-radius:14px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2)}.alarm-config-modal__system-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.alarm-config-modal__system-hint{font-size:12px}.alarm-config-modal__divider{margin:16px 0!important}.alarm-config-modal__scenes{display:flex;flex-direction:column;gap:20px}.alarm-config-modal__scenes--disabled{opacity:.55;pointer-events:none}.alarm-config-modal__empty{padding:24px 0}.alarm-scene-card{border:1px solid var(--hub-border-soft);border-radius:16px;padding:24px;background:var(--hub-surface);transition:border-color .2s ease}.alarm-scene-card--active{border-color:#ff7a1873;box-shadow:inset 3px 0 0 var(--hub-primary)}.alarm-scene-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.alarm-scene-card__title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.alarm-scene-card__title{margin:0!important}.alarm-scene-card__badge{margin:0;font-size:11px}.alarm-scene-card__actions{flex-shrink:0}.alarm-scene-card__divider{margin:14px 0!important}.alarm-scene-card__outputs-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.alarm-scene-card__outputs-note{font-size:12px;margin-left:auto}.alarm-scene-card__outputs-title{color:var(--hub-primary);display:inline-flex;align-items:center;gap:6px}.alarm-scene-card__outputs-title--notify{color:var(--hub-accent-text)}.alarm-scene-card__divider--notify{margin-top:18px!important}.alarm-scene-card__outputs-empty{display:block;text-align:center;padding:8px 0 4px;font-size:12px}.alarm-scene-card__outputs{display:flex;flex-direction:column;gap:14px}.alarm-scene-card__outputs--notify{gap:18px}.alarm-scene-card__sensor-hint{display:block;margin-top:10px;font-size:12px}.alarm-config-field{display:flex;flex-direction:column;height:100%}.alarm-config-field__label-block{margin-bottom:4px}.alarm-config-field__label-block--paired{min-height:38px;margin-bottom:6px}.alarm-config-field__label{display:block;font-size:13px;font-weight:600;color:var(--hub-text-2);margin-bottom:0;line-height:1.3}.alarm-config-field__hint{display:block;font-size:12px;line-height:1.35;margin-top:2px}.alarm-config-field__hint--reserve{visibility:hidden;-webkit-user-select:none;user-select:none}.alarm-config-field__hint--inline{margin:4px 0 0}.alarm-config-field__input,.alarm-config-field__input .ant-input,.alarm-config-field__input .ant-input-affix-wrapper,.alarm-config-field__input .ant-input-number,.alarm-config-field__input .ant-select{width:100%}.alarm-config-field__textarea{resize:vertical;min-height:88px!important}.alarm-config-field__switch-row--field{min-height:32px;padding-top:0}.alarm-scene-condition-summary{margin:4px 0 16px;padding:14px 18px;border-radius:12px;border:1px solid rgba(255,122,24,.22);background:#ff7a1812}.alarm-scene-condition-summary__label{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--hub-primary);margin-bottom:6px}.alarm-scene-condition-summary__text{margin:0;font-size:15px;font-weight:600;line-height:1.45;color:var(--hub-text)}.alarm-config-field__label--inline{margin-bottom:0}.alarm-config-field__control,.alarm-config-field__control--full{width:100%}.alarm-config-field__switch-row{display:flex;align-items:center;gap:10px;min-height:32px}.alarm-config-field__switch-row--between{justify-content:space-between;padding:4px 0}.alarm-scene-output{padding:18px 20px;border-radius:12px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2)}.alarm-scene-output--notify{border-color:#ff7a1838;background:#ff7a1808;padding:22px 24px}.alarm-scene-output--notify-pending{border-style:dashed}.alarm-scene-output__notify-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.alarm-scene-output__notify-title{display:flex;align-items:flex-start;gap:12px;min-width:0}.alarm-scene-output__notify-icon{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#ff7a181f;color:var(--hub-primary);font-size:18px;flex-shrink:0}.alarm-scene-output__notify-sub{display:block;font-size:12px;margin-top:2px}.alarm-scene-output__notify-controls{flex-shrink:0}.alarm-scene-output__notify-top .ant-row{align-items:stretch}.alarm-scene-output__notify-top .ant-col{display:flex}.alarm-scene-output__notify-top .alarm-config-field{flex:1}.alarm-config-field__label-block--cred{min-height:44px;margin-bottom:4px}.alarm-notify-creds .ant-row{width:100%;align-items:stretch}.alarm-notify-creds .ant-col{display:flex}.alarm-notify-creds .alarm-config-field{flex:1;width:100%}.alarm-scene-output__actions{display:flex;justify-content:flex-end;margin-top:14px}.alarm-notify-creds{margin-top:18px;padding:20px 22px;border-radius:12px;border:1px dashed var(--hub-border-soft);background:var(--hub-surface)}.alarm-notify-creds__head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;color:var(--hub-primary);font-size:18px}.alarm-notify-creds__head>div{min-width:0}.alarm-notify-creds__sub{display:block;font-size:12px;margin-top:2px}.alarm-notify-creds__tls{padding:12px 14px;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2)}.alarm-notify-creds__secure{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 14px;border-radius:10px;background:#ff7a180f;font-size:12px}.alarm-notify-creds__secure .anticon{color:var(--hub-primary);margin-top:2px}.alarm-config-test-modal__body p{margin-bottom:12px}.alarm-config-test-modal__list{margin:0 0 12px;padding-left:18px}.alarm-config-test-modal__hint{font-size:12px;display:block}@media (max-width: 768px){.alarm-config-modal .ant-modal-body{padding:20px 18px 10px}.alarm-config-modal .ant-modal-footer{padding:14px 18px 18px}.alarm-config-modal__add{width:100%;margin-left:0}.alarm-scene-card{padding:18px 16px}.alarm-scene-output--notify,.alarm-notify-creds{padding:16px}.alarm-scene-card__actions{width:100%;justify-content:stretch}.alarm-scene-card__actions .ant-btn{flex:1}.alarm-scene-output__notify-head{flex-direction:column}.alarm-scene-output__notify-controls{width:100%;justify-content:space-between}}.page-card-grid>.ant-col{display:flex}.page-card-grid .device-card{flex:1}@media (max-width: 576px){.device-card__metrics{grid-template-columns:1fr}}.devices-page__filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.devices-page__filter-chip{border:1px solid var(--hub-border-soft);background:var(--hub-surface);color:var(--hub-text-2);border-radius:999px;padding:4px 14px;font-size:13px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;font-family:inherit}.devices-page__filter-chip:hover{border-color:var(--hub-primary);color:var(--hub-accent-text)}.devices-page__filter-chip--active{background:var(--hub-primary);border-color:var(--hub-primary);color:#fff;font-weight:600}.devices-page__filter-count{font-size:11px;opacity:.85;background:#00000014;border-radius:999px;padding:0 6px;min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.devices-page__filter-chip--active .devices-page__filter-count{background:#ffffff38;color:#fff}@media (max-width: 768px){.devices-page__filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}.devices-page__filter-chip{flex-shrink:0}}.device-detail-page--online{--detail-ring: rgba(82, 196, 26, .35)}.device-detail-page--offline{--detail-ring: rgba(140, 140, 140, .35)}.device-detail-page--alarm{--detail-ring: rgba(255, 77, 79, .4)}.device-detail-page__empty-actions{text-align:center;margin-top:16px}.device-detail-page__toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.device-detail-hero{margin-bottom:20px;padding:20px 22px 18px;border-radius:14px;color:#fff;overflow:hidden;box-shadow:0 8px 28px #00000024}.device-detail-hero--online{background:linear-gradient(135deg,var(--hub-primary) 0%,var(--hub-primary-dark) 58%,#97430a 100%);box-shadow:0 8px 28px #ff7a183d}.device-detail-hero--offline{background:linear-gradient(135deg,#5c5c5c,#3d3d3d 58%,#2a2a2a);box-shadow:0 6px 22px #00000038;filter:saturate(.9)}.device-detail-hero--alarm{background:linear-gradient(135deg,#e84749,#cf1322 55%,#a8071a);box-shadow:0 8px 28px #ff4d4f47}.device-detail-hero__top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.16)}.device-detail-hero__identity{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1}.device-detail-hero__icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.device-detail-hero__icon svg{display:block}.device-detail-hero__titles{min-width:0;flex:1;padding-top:2px}.device-detail-hero__name{margin:0!important;font-size:clamp(1.25rem,2.5vw,1.55rem)!important;font-weight:700!important;color:#fff!important;word-break:break-word;overflow-wrap:anywhere;line-height:1.25!important;letter-spacing:-.02em}.device-detail-hero__subtitle{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:13px;color:#ffffffe0}.device-detail-hero__subtitle .anticon{color:#ffffffeb}.device-detail-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:#ffffffb8;font-variant-numeric:tabular-nums}.device-detail-hero__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.device-detail-hero__status.hub-status-pills .hub-status-pill{font-size:12px;padding:5px 12px 5px 9px}.device-detail-hero__alert{display:flex;align-items:center;justify-content:center;gap:8px;margin:-4px 0 14px;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:600;background:#0000002e;color:#ffffffeb}.device-detail-hero__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr));gap:12px;width:100%}@media (max-width: 640px){.device-detail-hero__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.device-hero-kpi{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:#ffffff1f;border:1px solid rgba(255,255,255,.14);min-height:72px;min-width:0;width:100%;box-sizing:border-box}.device-hero-kpi--muted{opacity:.78}.device-hero-kpi__icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;background:#ffffff29;color:#fff}.device-hero-kpi__body{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.device-hero-kpi__label{display:block;font-size:12px;font-weight:500;color:#ffffffd1;line-height:1.3}.device-hero-kpi__value{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:18px;font-weight:700;color:#fff;line-height:1.2;font-variant-numeric:tabular-nums}.device-hero-kpi__reading{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.device-hero-kpi__unit{font-size:13px;font-weight:600;opacity:.88;white-space:nowrap}.device-detail-overview{display:flex;flex-direction:column;gap:16px}.detail-device-info-card__title{display:block;margin-bottom:14px!important}.detail-device-info-card__desc{margin-top:0}.detail-equipment-feed-card .ant-card-body{padding:14px 16px!important}.detail-equipment-feed{display:flex;gap:14px;align-items:flex-start}.detail-equipment-feed__icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#1677ff;background:#1677ff1a;border:1px solid rgba(22,119,255,.22)}.detail-equipment-feed__title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700;color:var(--hub-text);margin-bottom:4px}.detail-equipment-feed__lead{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--hub-text-2)}.detail-equipment-feed__meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:var(--hub-text-2)}.detail-equipment-feed__meta strong{color:var(--hub-text);font-weight:600;margin-right:4px}.detail-sensor-feed-tag{margin-inline-start:8px!important;font-size:10px!important;line-height:18px!important;vertical-align:middle}.detail-sensor-feed-tag.is-oem{font-weight:600}.device-card__meta-chip--oem{color:#1677ff;background:#1677ff14;border-color:#1677ff38}.detail-telemetry-toolbar{margin-bottom:0}.detail-telemetry-toolbar .ant-card-body{padding:16px 18px!important}.detail-telemetry-toolbar__controls{align-items:flex-end}.detail-telemetry-toolbar .page-period-controls__label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--hub-text)}.detail-telemetry-toolbar .page-period-controls__label .anticon{color:var(--hub-primary);font-size:14px}.page-period-controls__block--range{flex:2 1 320px}.page-period-controls__block--custom{flex:1 1 280px}.detail-telemetry-range-group{display:flex;flex-wrap:wrap;gap:4px;width:100%}.detail-telemetry-range-group .ant-radio-button-wrapper{flex:1 1 auto;min-width:72px;text-align:center;padding-inline:10px;font-size:13px;height:34px;line-height:32px;border-radius:6px!important;border-inline-start-width:1px!important}.detail-telemetry-range-group .ant-radio-button-wrapper:not(:first-child):before{display:none}.detail-telemetry-range-group .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){font-weight:600;box-shadow:0 2px 8px #ff7a1838}.detail-telemetry-custom-row{width:100%}.detail-telemetry-custom-row .ant-picker-range{flex:1 1 260px;max-width:420px}.detail-telemetry-filter-meta{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hub-border-soft);font-size:12px;line-height:1.45;font-variant-numeric:tabular-nums}.detail-telemetry-filter-meta .anticon{color:var(--hub-primary);font-size:13px;margin-top:2px;flex-shrink:0}.chart-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}@media (max-width: 768px){.chart-stat-grid{grid-template-columns:repeat(2,1fr)}}.chart-stat-tile{padding:10px 12px;border-radius:10px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.chart-stat-tile__label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--hub-text-2);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.chart-stat-tile__label .anticon{font-size:12px}.chart-stat-tile__value{font-size:20px;font-weight:800;line-height:1.1}.chart-stat-tile__value small{font-size:12px;font-weight:600;margin-left:3px;opacity:.75}.alarm-expanded-row{padding:4px 8px 12px}.alarm-expanded-row__meta{display:block;margin-bottom:8px;font-size:12px}.alarm-expanded-row--device{padding:8px 12px 4px}.alarm-expanded-row__summary{margin-bottom:12px}.alarm-expanded-row__title{margin:0 0 4px!important;font-size:15px!important}.alarm-expanded-row__lead{display:block;font-weight:600;color:var(--hub-text)}.alarm-expanded-row__sub{display:block;margin-top:4px;font-size:12px}.alarm-expanded-row__tech .ant-collapse-header{padding:4px 0!important;font-size:12px!important}.alarm-expanded-row--offline{padding:12px 16px;border-radius:10px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.alarm-expanded-row__facts{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:12px;font-size:13px;color:var(--hub-text-2)}.alarm-severity-icon{font-size:16px;color:var(--hub-text-2)}.alarm-severity-icon--critical{color:var(--hub-error)}.alarm-severity-icon--warning{color:var(--hub-warning)}.alarm-table--device .alarm-table-row--active>td{background:#ff4d4f0f!important}.alarm-table--device .alarm-table-row--active>td:first-child{box-shadow:inset 3px 0 0 var(--hub-error)}.alarm-table--global .alarm-table-row--active>td{background:#ff4d4f0f!important}.alarm-table--global .alarm-table-row--active>td:first-child{box-shadow:inset 3px 0 0 var(--hub-error)}html.demo-app.theme-dark .alarm-table--device .alarm-table-row--active>td,html.demo-app.theme-dark .alarm-table--global .alarm-table-row--active>td{background:#ff4d4f1a!important}.alarm-device-link{color:inherit;text-decoration:none}.alarm-device-link:hover{color:var(--hub-primary)}.alarm-ack-icon{font-size:16px}.alarm-ack-icon--done{color:var(--hub-success)}.alarm-ack-btn{padding:0 4px!important;height:auto!important;font-size:12px!important}.alarm-expanded-row--rich .alarm-expanded-row__condition{margin:8px 0 10px}.alarm-expanded-row--global{padding:8px 12px 4px}.alerts-page__hero{margin-top:20px;margin-bottom:20px}.alerts-page__list-head{align-items:center}.alerts-page__list-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.alerts-page__table{margin-bottom:8px}.device-alarms-tab{display:flex;flex-direction:column;gap:16px}.device-alarms-tab__toolbar .ant-card-body{padding:16px 18px!important}.device-alarms-tab__summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;margin-bottom:14px}.device-alarms-tab__filters{margin:0}.alarm-source-cell{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.alarm-source-cell__metric{font-size:12px}.detail-sensor-chart-card__metric{font-size:12px;font-weight:500;margin-left:8px}.detail-sensor-collapse.ant-collapse{background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:12px;overflow:hidden}.detail-sensor-collapse>.ant-collapse-item>.ant-collapse-header{align-items:center!important;padding:12px 14px!important}.detail-sensor-collapse__label{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding-right:8px;min-width:0}.detail-sensor-collapse__title{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;font-size:14px;font-weight:600;color:var(--hub-text)}.detail-sensor-collapse__value{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;font-size:14px;font-weight:700;color:var(--hub-text)}.detail-sensor-collapse__level{transform:scale(.92);transform-origin:right center}.detail-sensor-collapse .ant-collapse-content-box{padding:0 14px 14px!important}.detail-sensor-chart-card--folded-body{padding-top:4px}.detail-telemetry-charts>.ant-col>.detail-sensor-collapse{height:auto}.telemetry-chart-wrap{position:relative;border-radius:10px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft);padding:4px 4px 0;overflow:hidden}.telemetry-chart-wrap--offline{opacity:.88}.telemetry-chart-wrap .detail-chart-offline-msg{margin:8px 8px 0}.page-shell .telemetry-chart.echarts-for-react{width:100%!important;max-width:100%;touch-action:pan-y}.detail-telemetry-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.detail-telemetry-panel__title{margin:0!important}.detail-telemetry-charts{margin-top:4px}.detail-telemetry-charts>.ant-col>.detail-card{height:100%}.page-period-controls__block--wide .ant-picker-range{width:100%;max-width:360px}.device-detail-tabs{margin-top:4px}.detail-card{border-top:3px solid var(--hub-primary)!important;border-radius:12px!important;height:100%}.detail-card--offline{border-top-color:#8c8c8c!important;opacity:.96}.detail-card--alarm{border-top-color:var(--hub-error)!important}.detail-card__title{display:inline-flex;align-items:center;gap:8px}.detail-card__title .anticon{font-size:16px}.detail-stat-row{margin-bottom:16px}.detail-code{font-size:11px!important;word-break:break-all}.detail-advanced-collapse{margin-top:8px}.detail-advanced-collapse .ant-collapse-header{padding:8px 0!important;color:var(--hub-text-2)!important;font-size:12px!important}.detail-offline-banner{display:flex;align-items:center;gap:8px;margin:12px 16px 0;padding:10px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#595959;background:#8c8c8c1f;border:1px dashed rgba(140,140,140,.35)}.detail-offline-banner--page{margin:0}.detail-sensor-list{padding:8px}.detail-sensor-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;transition:background .15s ease}.detail-sensor-row+.detail-sensor-row{border-top:1px solid var(--hub-border-soft)}.detail-sensor-row:hover{background:var(--hub-hover-bg)}.detail-sensor-row--offline{opacity:.65}.detail-sensor-row__icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;border-radius:9px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.detail-sensor-row__body{flex:1;min-width:0}.detail-sensor-row__name{display:block;font-size:14px;font-weight:600;color:var(--hub-text);line-height:1.3}.detail-sensor-row__meta{display:block;font-size:12px;margin-top:2px}.detail-sensor-row__value{font-size:15px;font-weight:700;color:var(--hub-text);flex-shrink:0}.detail-chart-wrap{position:relative}.detail-chart-wrap--offline{opacity:.72}.detail-chart-wrap--offline:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(140,140,140,.04) 8px,rgba(140,140,140,.04) 16px);pointer-events:none;border-radius:8px}.detail-chart-offline-msg{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:10px;padding:8px 10px;border-radius:8px;font-size:11px;font-weight:600;color:var(--hub-text-2);background:var(--hub-surface-2);border:1px dashed var(--hub-border-soft)}html.demo-app.theme-dark .detail-offline-banner,html.demo-app.theme-dark .detail-chart-offline-msg{color:#d4d4d4;background:#ffffff0a;border-color:#ffffff1f}html.demo-app.theme-dark .device-detail-hero--offline{background:linear-gradient(135deg,#3a3a3a,#2a2a2a 58%,#1f1f1f)}.detail-hero{margin:20px 0;background:linear-gradient(135deg,var(--hub-primary),var(--hub-primary-dark))!important;border:none!important;border-radius:14px!important;box-shadow:0 8px 28px #ff7a1838}.detail-hero.page-hero-card{margin-top:20px}.detail-hero .ant-statistic-title{color:#ffffffd1!important;font-size:13px}.detail-hero .ant-statistic-content{color:#fff!important}.detail-hero .ant-statistic-content-prefix{color:#ffffffe6}.detail-stat-card{border-top:3px solid var(--hub-primary)!important;height:100%}.chart-wrap{width:100%;min-height:300px}.page-shell.assistant-page{flex:1;display:flex;flex-direction:column;gap:20px;min-height:0;max-width:var(--hub-page-max);width:100%;margin:0 auto;padding:var(--hub-page-py) var(--hub-page-px);padding-bottom:var(--hub-page-py);box-sizing:border-box;overflow:hidden}.assistant-hero{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:0;padding:20px 22px;border-radius:14px;background:linear-gradient(135deg,var(--hub-primary) 0%,var(--hub-primary-dark) 55%,#7a3708 100%);box-shadow:0 8px 28px #ff7a1838;min-width:0;box-sizing:border-box;overflow:hidden}.assistant-hero__brand{display:flex;align-items:center;gap:16px;min-width:0;flex:1}.assistant-hero__text{min-width:0;flex:1}.assistant-hero__title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0}.assistant-hero__icon{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#ffffff24;color:#fff;font-size:26px;border:1px solid rgba(255,255,255,.2)}.assistant-hero__title{margin:0;font-size:clamp(1.5rem,3.5vw,1.9rem);font-weight:700;color:#fff;letter-spacing:-.02em;line-height:1.25;min-width:0}.assistant-hero__subtitle{margin:4px 0 0;font-size:13px;line-height:1.45;color:#ffffffc7;overflow-wrap:anywhere}.assistant-hero__badge{margin:0;padding:5px 10px;border-radius:999px;background:#ffffff29;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em;line-height:1.2;white-space:nowrap;flex:0 0 auto;max-width:100%;box-sizing:border-box}.assistant-layout{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:20px;flex:1;min-height:0;align-items:stretch;overflow:hidden}.assistant-sidebar{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:14px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);box-shadow:0 2px 10px #0f232d0d;height:fit-content;align-self:start;max-height:100%;overflow-y:auto;box-sizing:border-box}.assistant-sidebar__label{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--hub-primary)}.assistant-sidebar__cards{display:flex;flex-direction:column;gap:10px}.assistant-sidebar-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:10px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.assistant-sidebar-card__icon{flex-shrink:0;display:inline-flex;margin-top:2px;font-size:22px;color:var(--hub-primary);line-height:1}.assistant-sidebar-card__body{display:flex;flex-direction:column;gap:2px;min-width:0}.assistant-sidebar-card__title{font-size:15px;font-weight:700;color:var(--hub-text);line-height:1.4}.assistant-sidebar-card__desc{font-size:14px;line-height:1.45;color:var(--hub-text-2)}.assistant-sidebar__note{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--hub-text-2)}.assistant-chat{display:flex;flex-direction:column;min-height:0;height:100%;max-height:100%;border-radius:14px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);box-shadow:0 4px 20px #0f232d0f;overflow:hidden}.assistant-chat__thread{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:20px 18px;display:flex;flex-direction:column;gap:16px;min-height:0;background:linear-gradient(180deg,var(--hub-surface-2) 0%,var(--hub-surface) 120px);-webkit-overflow-scrolling:touch}.assistant-capabilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.assistant-capability{padding:10px 12px;border-radius:10px;background:#ff7a1814;border:1px solid rgba(255,122,24,.16)}.assistant-capability__title{display:block;font-size:13px;font-weight:700;color:var(--hub-primary-dark);line-height:1.35}.assistant-capability__desc{display:block;font-size:12px;line-height:1.4;margin-top:2px;color:var(--hub-text-2)}.assistant-msg--welcome{max-width:92%;margin-bottom:4px}.assistant-msg--welcome .assistant-msg__bubble{width:100%;min-width:0}.assistant-msg--welcome .assistant-msg__text strong{color:var(--hub-accent-text);font-weight:700}.assistant-messages{display:flex;flex-direction:column;gap:16px;padding-top:4px}.assistant-msg{display:flex;gap:10px;align-items:flex-end;max-width:92%}.assistant-msg--user{align-self:flex-end;flex-direction:row-reverse}.assistant-msg--bot{align-self:flex-start}.assistant-msg__avatar{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--hub-primary),var(--hub-primary-dark));color:#fff;font-size:17px;box-shadow:0 4px 12px #ff7a1840}.assistant-msg--user .assistant-msg__avatar{background:var(--hub-surface-2);color:var(--hub-accent-text);box-shadow:none}.assistant-msg__bubble{padding:12px 16px;border-radius:14px 14px 14px 4px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);box-shadow:0 2px 8px #0f232d0a;color:var(--hub-text);line-height:1.55;white-space:pre-wrap}.assistant-msg--user .assistant-msg__bubble{border-radius:14px 14px 4px;background:linear-gradient(135deg,var(--hub-primary),var(--hub-primary-dark));border:none;color:#fff;box-shadow:none}.assistant-msg__text{margin:0}.assistant-msg--user .assistant-msg__text{color:#fff}.assistant-msg__list{margin:10px 0 0;padding-left:1.2em;color:var(--hub-text-2);font-size:13px;line-height:1.55}.assistant-msg--user .assistant-msg__list{color:#ffffffe6}.assistant-msg__bubble--typing{display:flex;align-items:center;gap:5px;padding:14px 18px;min-width:56px}.assistant-typing-dot{width:7px;height:7px;border-radius:50%;background:var(--hub-primary);opacity:.45;animation:assistantTyping 1.2s infinite ease-in-out}.assistant-typing-dot:nth-child(2){animation-delay:.15s}.assistant-typing-dot:nth-child(3){animation-delay:.3s}@keyframes assistantTyping{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}.assistant-chat__prompts{display:flex;flex-wrap:wrap;gap:10px 12px;padding:14px 16px 16px;border-top:1px solid var(--hub-border-soft);background:#ff7a1808;flex-shrink:0}.assistant-prompt-chip{padding:8px 14px;border-radius:20px;border:1px solid rgba(255,122,24,.28);background:var(--hub-surface);color:var(--hub-primary-dark);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;font-family:inherit;line-height:1.2}.assistant-prompt-chip:hover:not(:disabled){background:#ff7a181a;border-color:var(--hub-primary)}.assistant-prompt-chip:active:not(:disabled){transform:scale(.98)}.assistant-prompt-chip:disabled{opacity:.55;cursor:not-allowed}.assistant-chat__composer{display:flex;align-items:flex-end;gap:10px;padding:12px 16px 18px;border-top:1px solid var(--hub-border-soft);background:var(--hub-surface);flex-shrink:0}.assistant-composer-input{flex:1;border-radius:12px!important;padding:10px 14px!important;font-size:14px!important;resize:none!important}.assistant-composer-input:focus{border-color:var(--hub-primary)!important;box-shadow:0 0 0 2px #ff7a1826!important}.assistant-send-btn{height:40px!important;padding-inline:18px!important;border-radius:10px!important;font-weight:600!important;flex-shrink:0}@media (max-width: 992px){.main-content:has(.assistant-page){height:auto;max-height:none;min-height:100dvh;overflow-x:hidden;overflow-y:auto}.page-shell.assistant-page{flex:none;min-height:auto;overflow:visible;height:auto;width:100%;max-width:100%;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px));box-sizing:border-box}.assistant-layout{grid-template-columns:1fr;margin-top:0;flex:none;min-height:auto;overflow:visible;gap:14px}.assistant-sidebar{order:2;min-height:auto;height:auto;max-height:none;overflow:visible;padding:14px}.assistant-chat{order:1;min-height:clamp(320px,58dvh,560px);height:auto;max-height:none;min-width:0}.assistant-hero{padding:16px;gap:12px}.assistant-hero__brand{gap:12px;width:100%}.assistant-hero__icon{width:44px;height:44px;border-radius:12px;font-size:22px}.assistant-hero__title{font-size:clamp(1.25rem,5.5vw,1.55rem)}.assistant-hero__badge{width:auto;max-width:100%;text-align:center}.assistant-chat__prompts{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:12px 14px 14px;overscroll-behavior-x:contain}.assistant-chat__prompts::-webkit-scrollbar{display:none}.assistant-prompt-chip{flex:0 0 auto;white-space:nowrap;padding:8px 12px;font-size:12px}}@media (max-width: 560px){.page-shell.assistant-page{padding-top:12px;padding-bottom:max(14px,env(safe-area-inset-bottom,0px));gap:12px}.assistant-capabilities{grid-template-columns:1fr}.assistant-hero{padding:14px;border-radius:12px}.assistant-hero__subtitle{font-size:12px}.assistant-chat{min-height:clamp(300px,62dvh,520px);border-radius:12px}.assistant-chat__thread{padding:14px 12px}.assistant-chat__composer{flex-direction:column;align-items:stretch;padding:10px 12px 12px;gap:8px}.assistant-send-btn{width:100%;height:44px!important}.assistant-composer-input{font-size:16px!important}.assistant-msg,.assistant-msg--welcome{max-width:100%}.assistant-msg__avatar{width:32px;height:32px;font-size:15px}.assistant-msg__bubble{padding:10px 12px;font-size:14px;min-width:0;overflow-wrap:anywhere}.assistant-sidebar-card{padding:10px;gap:10px}.assistant-sidebar-card__title{font-size:14px}.assistant-sidebar-card__desc{font-size:13px}}@media (max-width: 380px){.assistant-hero__title-row{flex-direction:column;align-items:flex-start}.assistant-hero__badge{align-self:flex-start}}.page-wip{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;min-height:46vh;padding:48px 24px;border-radius:16px;background:var(--hub-surface);border:1px dashed var(--hub-border)}.page-wip__icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:20px;font-size:34px;color:#fff;background:linear-gradient(135deg,var(--hub-primary),var(--hub-primary-dark));box-shadow:0 10px 30px #ff7a1847}.page-wip__title{font-size:20px;font-weight:700;color:var(--hub-text)}.page-wip__desc{font-size:14px;color:var(--hub-text-2);max-width:440px;line-height:1.6}.page-wip__badge{margin-top:2px;padding:4px 14px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--hub-accent-text);background:#ff7a181f;border:1px solid var(--hub-border)}.layout-list-row{transition:background .15s}.layout-list-row:hover{background:var(--hub-hover-bg)}.layout-list-row+.layout-list-row{border-top:1px solid var(--hub-border-soft)}.page-empty{margin:32px 0 48px;padding:40px 24px;border-radius:14px;background:var(--hub-surface);border:1px dashed var(--hub-border-soft)}.hub-descriptions .ant-descriptions-item-label{color:var(--hub-text-2)!important}.ant-card{border-radius:14px!important}.ant-statistic-content-value{font-weight:700!important;font-variant-numeric:tabular-nums}.ant-tabs-tab:hover .ant-tabs-tab-btn{color:var(--hub-primary)!important}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--hub-primary)!important;font-weight:600}.ant-tabs-ink-bar{background:var(--hub-primary)!important}.detail-card .ant-table-wrapper .ant-table{border-radius:0 0 14px 14px}.detail-card .ant-table-thead>tr>th{font-size:12px;font-weight:600;letter-spacing:.02em}.recent-measures-header-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.recent-measures-header-meta__hint{font-size:12px;white-space:nowrap}.recent-measures-card{overflow:hidden}.recent-measures-table .ant-table{background:transparent}.recent-measure-row{transition:background .15s ease}.recent-measure-row:hover>td{background:var(--hub-hover-bg)!important}.recent-measure-row--incoming>td{animation:recentRowIn .5s ease-out}@keyframes recentRowIn{0%{background:#ff7a1829}to{background:transparent}}.recent-measure-link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0;border:none;background:none;cursor:pointer;text-align:left;font-family:inherit}.recent-measure-link:hover .recent-measure-device__name{color:var(--hub-accent-text)}.recent-measure-device__name{font-size:13px;font-weight:600;color:var(--hub-text);line-height:1.3;transition:color .15s ease}.recent-measure-device__id{font-size:11px;color:var(--hub-text-2);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.recent-measure-sensor__name{display:block;font-size:13px;font-weight:500;color:var(--hub-text);line-height:1.3}.recent-measure-sensor__id{display:block;font-size:11px;margin-top:2px}.recent-measure-metric-tag{display:inline-flex!important;align-items:center;gap:5px;margin:0!important;padding:2px 8px!important;border-radius:6px!important;font-size:12px!important;font-weight:600!important}.recent-measure-metric-tag .anticon{font-size:12px}.recent-measure-value{font-size:15px;font-weight:700;color:var(--hub-text)}.recent-measure-value__unit{margin-left:4px;font-size:12px;font-weight:600;color:var(--hub-text-2)}.recent-measure-time{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.recent-measure-time__ago{font-size:12px;font-weight:600;color:var(--hub-text)}.recent-measure-time__clock{font-size:11px;color:var(--hub-text-2);font-variant-numeric:tabular-nums}.recent-measures-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 24px;text-align:center;color:var(--hub-text-2)}.recent-measures-empty .anticon{font-size:28px;color:var(--hub-primary);opacity:.7}.recent-measures-empty p{margin:0;font-size:13px;max-width:280px;line-height:1.5}@media (max-width: 640px){.recent-measures-header-meta__hint{display:none}.recent-measure-value{font-size:14px}}.live-board-shell{display:flex;flex-direction:column;gap:12px;width:100%;min-height:0}.live-board-shell--fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:var(--hub-bg);padding:12px 16px;overflow:auto;box-sizing:border-box;height:100vh;max-height:100vh;gap:8px}body.live-board-fs-active{overflow:hidden}.live-board-toolbar{display:flex;flex-direction:column;gap:8px;padding:8px 12px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:12px;box-shadow:var(--hub-shadow);flex-shrink:0}.live-board-toolbar__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.live-board-toolbar__row--primary{justify-content:space-between}.live-board-toolbar__scene-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.live-board-toolbar__scene{width:100%;min-width:140px;max-width:320px}.live-board-toolbar__scene-name-wrap{display:flex;flex-direction:column;gap:4px;max-width:360px}.live-board-toolbar__field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.live-board-toolbar__scene-name{width:100%}.live-board-item__title-input{flex:1;min-width:0}.live-board-item__title-input.ant-input{font-size:13px;font-weight:600;height:28px;padding:2px 8px;cursor:text;-webkit-user-select:text;user-select:text;touch-action:auto}.live-board-toolbar__actions{gap:8px}.live-board-toolbar__btn-text--fs{display:inline}.live-board-toolbar__hint{font-size:12px;line-height:1.45;align-self:center;white-space:nowrap}.lb-widget-root{flex:1;min-height:0;display:flex;flex-direction:column}.lb-widget-root>.lb-widget,.lb-widget-root>.ant-empty{flex:1}.live-board-grid{width:100%;min-height:0}.live-board-grid .react-grid-layout{width:100%!important}.live-board-grid--edit .live-board-item{outline:1px dashed var(--hub-primary);outline-offset:-1px}.live-board-grid--edit .react-grid-item.react-draggable{cursor:default}.live-board-item{background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:12px;overflow:hidden;box-shadow:var(--hub-shadow);display:flex;flex-direction:column;height:100%}.live-board-item__body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.live-board-item__chrome{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--hub-surface-2);border-bottom:1px solid var(--hub-border-soft);cursor:grab;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;z-index:2}.live-board-item__chrome:active{cursor:grabbing}.live-board-item__chrome-label{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--hub-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-board-item__chrome-actions{display:flex;align-items:center;gap:2px;margin-left:auto;flex-shrink:0}.live-board-item__edit,.live-board-item__remove{border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.live-board-item__edit{color:var(--hub-text-2);font-size:14px;padding:4px 8px;border-radius:6px}.live-board-item__edit:hover{color:var(--hub-primary);background:var(--hub-hover-bg)}.lb-drag-handle{color:var(--hub-text-2);font-weight:700;letter-spacing:-2px;padding:0 2px;line-height:1}.live-board-item__remove{color:var(--hub-error);font-size:18px;line-height:1;padding:0 6px}.live-board-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;padding:32px 24px;border:1px dashed var(--hub-border-soft);border-radius:12px;background:var(--hub-surface);text-align:center}.live-board-empty__title{font-size:18px}.live-board-empty__lead{max-width:360px;margin-bottom:4px}.live-board-scene-new{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--hub-accent);font-size:14px;font-weight:500;cursor:pointer;text-align:left}.live-board-scene-new:hover{background:var(--hub-surface-2)}.widget-config-form__type-hint{margin-bottom:16px;padding:10px 12px;border-radius:8px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.widget-config-form__preview{margin:-4px 0 12px;padding:8px 10px;border-radius:8px;background:#ff7a1814;border:1px solid rgba(255,122,24,.2)}.lb-widget{flex:1;padding:12px 14px;min-height:0;height:100%;display:flex;flex-direction:column}.lb-widget__fill{flex:1;min-height:0;display:flex;flex-direction:column}.lb-widget__head{margin-bottom:8px;flex-shrink:0}.lb-widget__head--row{display:flex;align-items:center;justify-content:space-between;gap:8px}.lb-widget__title{font-size:12px;color:var(--hub-text)!important;line-height:1.35;white-space:normal;word-break:break-word}.lb-widget__icon{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.lb-widget--kpi{padding:10px 12px;gap:4px;overflow:hidden}.lb-widget--kpi .lb-widget__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px;gap:6px;min-height:0}.lb-widget--kpi .lb-widget__title{font-size:11px;line-height:1.2;font-weight:600;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.lb-widget--kpi .lb-widget__icon{width:18px;height:18px;border-radius:5px;font-size:10px;flex-shrink:0}.lb-widget--kpi .lb-widget__kpi-body{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;gap:8px;min-height:0;flex:1}.lb-widget--kpi .lb-widget__kpi-main{min-width:0;flex:1 1 auto}.lb-widget--kpi .lb-widget__kpi-main .ant-statistic{line-height:1}.lb-widget--kpi .lb-widget__kpi-main .ant-statistic-content{line-height:1.1!important;display:inline-flex;align-items:baseline;flex-wrap:nowrap;max-width:100%}.lb-widget--kpi .lb-widget__kpi-main .ant-statistic-content-value{overflow:visible;text-overflow:clip;white-space:nowrap;letter-spacing:-.01em}.lb-widget--kpi .lb-widget__kpi-main .ant-statistic-content-suffix{font-size:10px!important;margin-inline-start:4px;opacity:.75;flex-shrink:0}.lb-widget--kpi .lb-widget__kpi-side{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px;max-width:42%}.lb-widget--kpi .lb-widget__level{margin-left:0;font-size:9px;padding:1px 6px;line-height:1.25}.lb-widget--kpi .lb-widget__kpi-chip{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;line-height:1.25;white-space:nowrap}.lb-widget--kpi .lb-widget__kpi-chip--alarm{color:#cf1322;background:#e74c3c1f}.lb-widget--kpi .lb-widget__kpi-chip--muted{color:var(--hub-text-2);background:#7f7f7f1f}.lb-widget--kpi-alert{box-shadow:inset 0 0 0 1px #e74c3c66}.lb-widget__chart{position:relative;overflow:hidden}.lb-widget--table .lb-widget__table{overflow:hidden}.lb-widget--table .lb-widget__table .ant-spin-nested-loading,.lb-widget--table .lb-widget__table .ant-spin-container,.lb-widget--table .lb-widget__table .ant-table{height:100%}.lb-widget--table .lb-widget__table .ant-table-container{height:100%;display:flex;flex-direction:column}.lb-widget__empty,.lb-widget--summary .lb-widget__summary{justify-content:center;align-items:center}.lb-widget__foot{font-size:11px;margin-top:4px}.lb-alarm-list{list-style:none;margin:0;padding:0;flex:1;overflow:auto}.lb-alarm-list__item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--hub-border-soft)}.lb-alarm-list__sub{font-size:11px;color:var(--hub-text-2)}.lb-device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;align-content:start;overflow:auto}.lb-device-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2);color:var(--hub-text);font-size:12px;cursor:pointer;text-align:left}.lb-device-chip--off{opacity:.55;border-color:#e74c3c59}.lb-device-chip--ext{border-color:#1677ff47;background:#1677ff0f}.lb-device-chip__meta{display:flex;flex-direction:column;gap:1px;min-width:0}.lb-device-chip__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-device-chip__proto{font-size:10px;color:var(--hub-text-2);letter-spacing:.02em}.lb-device-chip--ext .lb-device-chip__proto{color:#1677ff}.lb-summary-strip{display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px 18px;width:100%;justify-content:flex-start}.lb-summary-strip__item{display:flex;flex-direction:column;gap:2px;min-width:88px;flex:1 1 88px}.lb-summary-strip__val{font-size:clamp(18px,2.2vw,28px);font-weight:700;line-height:1.15;word-break:break-word}.lb-widget--summary .lb-widget__fill{overflow:auto;min-height:0}.lb-widget--summary .lb-widget__summary{justify-content:flex-start}.page-shell--reports .page-shell__lead{max-width:720px}.reports-layout{align-items:stretch}.reports-layout--stacked{display:flex;flex-direction:column;gap:24px}.reports-layout__preview-title{margin:0 0 12px!important;color:var(--hub-text)!important}.report-wizard{display:flex;flex-direction:column;gap:16px}.report-wizard__types,.report-wizard__settings{width:100%}.report-wizard__intro-title{margin:0 0 4px!important;display:flex;align-items:center;gap:8px}.report-wizard__intro-title .anticon{color:var(--hub-primary)}.report-template-grid--compact{margin-bottom:20px}.report-wizard__intro{margin-bottom:14px}.report-wizard__includes-inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.report-wizard__includes-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft);color:var(--hub-text-2)}.report-wizard__includes-chip .anticon{color:var(--hub-primary);font-size:12px}.report-wizard__compare-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.report-wizard__compare-head .report-wizard__field-label{margin-bottom:0}.report-wizard__dates-card{background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.report-wizard__date-row{display:flex;flex-direction:column;gap:2px}.report-wizard__date-row+.report-wizard__date-row{margin-top:12px;padding-top:12px;border-top:1px dashed var(--hub-border-soft)}.report-wizard__date-row--compare strong{color:#4dabf7}.report-wizard__config{display:flex;flex-direction:column;gap:16px;padding-top:4px;border-top:1px solid var(--hub-border-soft)}.report-wizard__includes{background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.report-wizard__includes-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.report-wizard__includes-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.report-wizard__includes-list li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--hub-text)}.report-wizard__includes-list .anticon{color:var(--hub-primary);font-size:13px}.report-wizard__fields{display:flex;flex-direction:column;gap:18px}.report-wizard__field-label{display:block;margin-bottom:8px;font-size:14px}.report-wizard__field-hint{display:block;font-size:12px;margin-top:2px}.report-wizard__field--row{display:flex;flex-direction:column;align-items:stretch;gap:8px}.report-wizard__period--stack{display:flex;flex-direction:column;gap:0;width:100%}.report-wizard__period-option{display:flex!important;align-items:flex-start;width:100%;margin:0!important;padding:12px 14px!important;border:1px solid var(--hub-border-soft);border-radius:10px!important;background:var(--hub-surface)}.report-wizard__period-option+.report-wizard__period-option{margin-top:8px!important}.report-wizard__period-option.ant-radio-wrapper-checked{border-color:var(--hub-primary);background:#ff7a180f}.report-wizard__period-option__main{display:block;font-weight:600;color:var(--hub-text);line-height:1.3}.report-wizard__period-option__date{display:block;font-size:12px;color:var(--hub-text-2);margin-top:2px;line-height:1.35}.report-wizard__period{display:flex;flex-direction:column;width:100%}.report-wizard__period .ant-radio-button-wrapper{display:none}.report-wizard__toggle-dates{margin-top:8px;padding:0;border:none;background:none;color:var(--hub-primary);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.report-wizard__footer{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding-top:16px;border-top:1px solid var(--hub-border-soft)}.report-wizard__recap{display:flex;flex-direction:column;gap:2px}.report-wizard__recap .ant-typography{margin:0}.report-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:8px}.report-template-card{text-align:left;padding:14px;border:1px solid var(--hub-border-soft);border-radius:12px;background:var(--hub-surface);cursor:pointer;transition:border-color .15s,box-shadow .15s}.report-template-card:hover{border-color:#ff7a1859}.report-template-card--active{border-color:var(--hub-primary);box-shadow:0 0 0 2px #ff7a1826}.report-template-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.report-template-card__icon{font-size:20px;color:var(--hub-primary)}.report-template-card__badge{margin:0;font-size:10px}.report-template-card__title{font-weight:600;font-size:14px;margin-bottom:4px;color:var(--hub-text)}.report-template-card__desc{font-size:12px;line-height:1.45;color:var(--hub-text-2)}.report-kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.report-kpi-strip__item{padding:14px 16px;border-radius:12px;background:var(--hub-surface);border:1px solid var(--hub-border-soft)}.report-kpi-strip__label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;display:block}.report-kpi-strip__value{font-size:22px;font-weight:700;color:var(--hub-text);line-height:1.2;margin:4px 0 2px}.report-kpi-strip__sub{font-size:11px}.report-preview-head__row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.report-preview-head__tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.report-export-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.report-export-bar .ant-btn{border-radius:8px}.report-export-bar .ant-space-compact .ant-btn:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.report-export-bar .ant-space-compact .ant-btn:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.report-period-compare__banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:12px 14px;background:var(--hub-surface-2);border-radius:10px;border:1px solid var(--hub-border-soft)}.report-period-compare__window{flex:1;min-width:140px;display:flex;flex-direction:column;gap:2px}.report-period-compare__window .ant-typography,.report-period-compare__window strong{color:var(--hub-text)}.report-period-compare__window--compare strong,.report-period-compare__window--compare .ant-typography-strong{color:#4dabf7!important}.report-period-compare__vs{font-size:12px;font-weight:700;color:var(--hub-text-2);text-transform:uppercase;letter-spacing:.06em}.report-period-compare__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.report-period-compare__item{padding:10px 12px;border:1px solid var(--hub-border-soft);border-radius:8px;background:var(--hub-elevated)}.report-period-compare__label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;color:var(--hub-text-2)}.report-period-compare__current{font-size:20px;font-weight:700;color:var(--hub-text)}.report-period-compare__prev{font-size:12px;color:var(--hub-text-2)}.report-compare-delta{margin:0;font-weight:600}.report-card-extra{font-size:12px;max-width:280px;text-align:right}@media (max-width: 768px){.report-card-extra{max-width:100%;text-align:left;margin-top:6px}}.report-print-cover,.report-print-footer,.report-print-only{display:none}.report-preview__note{display:block;margin-bottom:12px;font-size:13px}.report-alarm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;align-items:start}.report-alarm-stats__top{display:flex;flex-direction:column;gap:2px}.report-archive__toolbar,.report-scheduled__toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.report-archive__search{flex:1;min-width:200px;max-width:360px}.report-archive__filter{min-width:160px}.report-scheduled__toolbar{justify-content:space-between}.report-scheduled-list__meta{font-size:12px;color:var(--hub-text-2);margin-top:4px}.reports-tabs__badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:9px;font-size:11px;font-weight:700;background:var(--hub-primary);color:#fff}.ai-insight-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:12px;flex-wrap:wrap}.ai-insight-card__head .ant-typography{color:var(--hub-text)}.ai-insight-collapse .ant-collapse-header{color:var(--hub-text)!important}.ai-insight-collapse .ant-collapse-content,.ai-insight-collapse .ant-collapse-content-box{background:transparent!important;color:var(--hub-text)}.ai-insight-collapse .ant-list-item{color:var(--hub-text);border-color:var(--hub-border-soft)!important}.ai-insight-collapse .ant-empty-description{color:var(--hub-text-2)}.ai-insight__verdict-row{margin-bottom:10px}.ai-insight__verdict{font-weight:600;font-size:12px;padding:2px 10px}.ai-insight__headline{font-size:15px;line-height:1.5;margin-bottom:12px!important;color:var(--hub-text)!important}.ai-insight__findings{margin-bottom:14px;padding:12px 14px;background:var(--hub-surface-2);border-radius:8px;border:1px solid var(--hub-border-soft);border-left:3px solid var(--hub-primary);color:var(--hub-text)}.ai-insight__findings-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-weight:600;color:var(--hub-text-2)}.ai-insight__finding-item{padding:4px 0!important;border:none!important;color:var(--hub-text)}.ai-insight__finding-icon{color:var(--hub-primary);margin-top:3px}.ai-insight__actions{margin-top:14px;padding-top:12px;border-top:1px dashed var(--hub-border-soft);color:var(--hub-text)}.ai-insight__para{margin:0 0 10px;line-height:1.65;color:var(--hub-text)!important}.ai-insight__para:last-child{margin-bottom:0}.ai-insight__exec{color:var(--hub-text)}.report-archive-list{padding:8px 16px}.report-archive-list__link{border:none;background:none;color:var(--hub-primary);cursor:pointer;font-weight:600}.reports-tabs .ant-tabs-nav{margin-bottom:20px}@media print{@page{size:A4 portrait;margin:10mm 12mm 14mm}html,body{height:auto!important;overflow:visible!important;background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.report-print-active .main-content,body.report-print-active .ant-layout,body.report-print-active .ant-layout-content,body.report-print-active .ant-tabs,body.report-print-active .ant-tabs-content,body.report-print-active .ant-tabs-content-holder,body.report-print-active .page-shell,body.report-print-active .reports-layout,body.report-print-active .reports-layout__preview,body.report-print-active .report-preview--printable{overflow:visible!important;height:auto!important;max-height:none!important;min-height:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;position:static!important;transform:none!important}body.report-print-active .ant-tabs-tabpane:not(.ant-tabs-tabpane-active){display:none!important;visibility:hidden!important}body.report-print-active .ant-tabs-tabpane-active{display:block!important;overflow:visible!important;height:auto!important;max-height:none!important}body.report-print-active .main-content{margin-left:0!important;background:#fff!important}.no-print,.report-archive,.report-scheduled,.side-menu,.sidebar-overlay,.demo-banner,.hamburger-menu,.page-shell__header,.reports-tabs .ant-tabs-nav,.report-wizard,.report-preview-head__actions,.report-export-bar,.reports-layout__preview-title,.ant-pagination,.ant-table-pagination{display:none!important}.report-print-cover{display:block!important;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e8e8e8;page-break-after:avoid}.report-print-cover__brand{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#666!important;margin-bottom:6px}.report-print-cover__title{margin:0 0 6px!important;font-size:20px!important;color:#111!important}.report-print-cover__meta{display:block;font-size:12px;color:#555!important;line-height:1.5}.report-print-footer{display:block!important;margin-top:16px;padding-top:10px;border-top:1px solid #ddd;font-size:10px;text-align:center;color:#666!important}.report-print-only{display:block!important;margin-bottom:10px;font-size:12px;color:#555!important}.report-preview--printable{width:100%}.report-preview-head{padding:0 0 10px!important;margin-bottom:8px!important;box-shadow:none!important;border:none!important;border-bottom:1px solid #ddd!important;background:transparent!important}.report-preview-head .ant-typography,.report-preview-head .ant-tag{color:#111!important}.report-preview--printable .detail-card,.report-preview--printable .report-kpi-strip,.report-preview--printable .ai-insight-card{break-inside:avoid-page;page-break-inside:avoid;box-shadow:none!important;border:1px solid #d9d9d9!important;margin-bottom:12px!important;background:#fff!important}.report-preview--printable .report-print-table.detail-card,.report-preview--printable .report-print-chart.detail-card{break-inside:auto;page-break-inside:auto}.report-preview--printable .ant-card-head{min-height:auto;padding:8px 12px!important;border-bottom:1px solid #e8e8e8!important;background:#fafafa!important}.report-preview--printable .ant-card-head-title{font-size:13px!important;color:#111!important;padding:0!important}.report-preview--printable .ant-card-body{padding:10px 12px!important}.report-kpi-strip{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px!important}.report-kpi-strip__item{border:1px solid #e8e8e8;border-radius:6px;padding:8px;background:#fafafa}.report-kpi-strip__value{font-size:16px!important}.report-data-table .ant-table,.report-data-table .ant-table-container,.report-data-table .ant-table-content,.report-data-table .ant-table-body{overflow:visible!important}.report-data-table .ant-table-thead>tr>th{background:#f0f0f0!important;color:#111!important;font-size:11px!important;padding:6px 8px!important}.report-data-table .ant-table-tbody>tr>td{font-size:11px!important;padding:5px 8px!important;color:#111!important}.report-data-table .ant-table-thead{display:table-header-group}.report-data-table .ant-table-tbody>tr{break-inside:avoid;page-break-inside:avoid}body.report-print-active .ai-insight-collapse .ant-collapse-item,body.report-print-active .ai-insight-collapse .ant-collapse-content,body.report-print-active .ai-insight-collapse .ant-collapse-content-box{display:block!important;height:auto!important;visibility:visible!important}body.report-print-active .ai-insight-collapse .ant-collapse-content{overflow:visible!important}body.report-print-active .ai-insight__findings{background:#f7f7f7!important;border-left-color:#333!important}.report-preview--printable a{color:inherit!important;text-decoration:none!important}.report-preview--printable .ant-tag{border:1px solid #bbb!important;background:#f5f5f5!important;color:#111!important}.report-print-chart .echarts-for-react,.report-print-chart canvas{max-width:100%!important;break-inside:avoid;page-break-inside:avoid}.report-alarm-stats{grid-template-columns:repeat(3,1fr)}}.page-shell--cameras .page-shell__lead{max-width:720px}.camera-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}@media (max-width: 768px){.camera-kpi-strip{grid-template-columns:repeat(2,1fr)}}.camera-kpi-strip__item{padding:14px 16px;border-radius:12px;border:1px solid var(--hub-border-soft);background:var(--hub-surface)}.camera-kpi-strip__value--online{color:var(--hub-success)}.camera-kpi-strip__value--rec{color:var(--hub-error)}.camera-kpi-strip__value{font-size:24px;font-weight:700;line-height:1.2;margin-top:4px;color:var(--hub-text)}.camera-toolbar{padding:14px 16px;margin-bottom:20px}.camera-toolbar__row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.camera-toolbar__filters{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.camera-toolbar__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex-shrink:0}.camera-toolbar__search{width:100%;max-width:360px}.camera-toolbar__online-tag{margin:0}.camera-toolbar__events-badge{margin-left:6px}.camera-toolbar__hint{display:block;margin-top:10px;font-size:13px}.camera-grid{display:grid;gap:12px}.camera-grid--1{grid-template-columns:1fr;max-width:900px}.camera-grid--4{grid-template-columns:repeat(2,1fr)}.camera-grid--9{grid-template-columns:repeat(3,1fr)}.camera-empty{padding:48px 16px}@media (max-width: 768px){.camera-grid--4,.camera-grid--9{grid-template-columns:1fr}.camera-toolbar__row{flex-direction:column}.camera-toolbar__actions{width:100%}.camera-toolbar__search{max-width:none}}.camera-tile{border:none;padding:0;background:transparent;cursor:pointer;text-align:left;border-radius:12px;overflow:hidden;position:relative;transition:transform .15s ease,box-shadow .15s ease}.camera-tile:hover{transform:translateY(-2px)}.camera-tile:hover .camera-feed{border-color:var(--hub-primary);box-shadow:var(--hub-shadow)}.camera-tile--off .camera-feed{filter:grayscale(.85) brightness(.65)}.camera-tile__hint{position:absolute;bottom:10px;right:10px;z-index:2;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;background:#0000008c;color:#ffffffe6;opacity:0;transition:opacity .15s ease;pointer-events:none}.camera-tile:hover .camera-tile__hint{opacity:1}.camera-feed{position:relative;aspect-ratio:16 / 10;min-height:160px;border-radius:12px;overflow:hidden;border:1px solid var(--hub-border-soft);transition:border-color .15s ease,box-shadow .15s ease}.camera-feed--large{aspect-ratio:16 / 9;min-height:280px}.camera-feed__noise{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}.camera-feed__vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.35) 100%);pointer-events:none}.camera-feed__scanline{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none}.camera-feed__corner{position:absolute;width:18px;height:18px;border:2px solid rgba(255,255,255,.35);pointer-events:none}.camera-feed__corner--tl{top:10px;left:10px;border-right:none;border-bottom:none}.camera-feed__corner--tr{top:10px;right:10px;border-left:none;border-bottom:none}.camera-feed__corner--bl{bottom:10px;left:10px;border-right:none;border-top:none}.camera-feed__corner--br{bottom:10px;right:10px;border-left:none;border-top:none}.camera-feed__badge-row{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:2}.camera-feed__live,.camera-feed__rec{font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:4px;background:#e74c3ceb;color:#fff;display:inline-flex;align-items:center;gap:5px}.camera-feed__live-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:camera-live-pulse 1.4s ease-in-out infinite}@keyframes camera-live-pulse{0%,to{opacity:1}50%{opacity:.35}}.camera-feed__live--off{background:#64748beb}.camera-feed__rec{background:#0f172acc}.camera-feed__expand{position:absolute;top:10px;right:10px;z-index:2;border:none;background:#00000073;color:#fff;width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.camera-feed__expand:hover{background:#000000a6}.camera-feed__meta{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;background:linear-gradient(transparent,#000c);z-index:1}.camera-feed__name{display:block;color:#fff!important;font-weight:600;font-size:13px;line-height:1.3}.camera-feed__area{display:block;color:#ffffffbf!important;font-size:11px;margin-top:2px}.camera-feed__overlay{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.camera-feed__overlay span{font-size:11px;color:#fffffff2;background:#0006;padding:2px 8px;border-radius:4px}.camera-feed__offline-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ffffffb3;font-size:14px;z-index:1}.camera-feed__offline-msg .anticon{font-size:28px}.camera-focus-layout{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}@media (max-width: 991px){.camera-focus-layout{grid-template-columns:1fr}}.camera-thumb-strip{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 4px;margin-top:4px}.camera-thumb-strip__item{flex:0 0 auto;width:120px;border:2px solid transparent;border-radius:10px;padding:0;background:transparent;cursor:pointer;text-align:left}.camera-thumb-strip__item--active{border-color:var(--hub-primary)}.camera-thumb-strip__preview{display:block;width:100%;aspect-ratio:16 / 10;border-radius:8px;position:relative;border:1px solid var(--hub-border-soft)}.camera-thumb-strip__dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--hub-text-2);border:1px solid rgba(255,255,255,.5)}.camera-thumb-strip__dot--on{background:var(--hub-success);box-shadow:0 0 0 2px #52c41a59}.camera-thumb-strip__name{display:block;font-size:11px;margin-top:4px;color:var(--hub-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camera-focus-detail{padding:16px 18px}.camera-focus-detail__title{margin:0 0 10px!important}.camera-focus-detail__meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.camera-focus-detail__rows{display:grid;gap:12px;margin-bottom:16px}.camera-focus-detail__rows>div{display:flex;flex-direction:column;gap:2px;font-size:13px}.camera-focus-detail__value{color:var(--hub-text);font-weight:500}.camera-focus-detail__link{color:var(--hub-accent-text);font-weight:600}.camera-focus-detail__link:hover{color:var(--hub-primary)}.camera-focus-detail__sensors-label{display:block;margin-bottom:8px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.camera-focus-detail__sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:16px}.camera-focus-detail__sensor{padding:10px;border-radius:8px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2);display:flex;flex-direction:column;gap:2px}.camera-focus-detail__sensor-name{font-size:11px;color:var(--hub-text-2)}.camera-focus-detail__sensor strong{font-size:16px}.camera-focus-detail__sensor span:last-child{font-size:11px;color:var(--hub-text-2)}.camera-focus-detail__actions{width:100%}.camera-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:#0a0a0a;display:flex;flex-direction:column}.camera-fullscreen__bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#000000d9;border-bottom:1px solid rgba(255,255,255,.1)}.camera-fullscreen__title{color:#fff!important;font-weight:600}.camera-fullscreen__body{flex:1;padding:16px;display:flex;align-items:center;justify-content:center}.camera-fullscreen__body .camera-feed{width:100%;max-width:var(--hub-page-max);min-height:60vh;aspect-ratio:16 / 9}body.camera-fs-active{overflow:hidden}.camera-main{margin-bottom:16px}.camera-events-panel{padding:0;overflow:hidden}.camera-events-panel--collapsed{padding-bottom:0}.camera-events-panel__head{padding:12px 16px}.camera-events-panel__toggle{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;padding:0;cursor:pointer;text-align:left;color:var(--hub-text)}.camera-events-panel__toggle .anticon-alert{color:var(--hub-primary);font-size:16px}.camera-events-panel__title{margin:0!important;flex:0 0 auto;color:var(--hub-text)!important}.camera-events-panel__chevron{margin-left:auto;color:var(--hub-text-2);font-size:12px}.camera-events-panel__peek{display:block;margin-top:8px;padding-left:26px;font-size:13px;max-width:100%}.camera-events-panel__body{padding:0 16px 16px;border-top:1px solid var(--hub-border-soft)}.camera-events-panel__toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:14px 0 12px}.camera-events-panel__search{flex:1;min-width:200px;max-width:360px}.camera-events-scroll{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.camera-events-scroll::-webkit-scrollbar{height:6px}.camera-events-scroll::-webkit-scrollbar-thumb{background:var(--hub-border-soft);border-radius:3px}.camera-event-card{flex:0 0 auto;width:240px;scroll-snap-align:start;text-align:left;border:1px solid var(--hub-border-soft);border-radius:12px;padding:12px 14px;background:var(--hub-surface-2);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;display:flex;flex-direction:column;gap:6px}.camera-event-card:hover{border-color:var(--hub-primary);box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.camera-event-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.camera-event-card__type{margin:0;font-size:11px}.camera-event-card__time{font-size:11px;color:var(--hub-text-2);white-space:nowrap}.camera-event-card__cam{font-size:13px;color:var(--hub-text);line-height:1.3}.camera-event-card__label{font-size:12px;color:var(--hub-text-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.camera-event-card__area{align-self:flex-start;margin:0;font-size:10px}@media (max-width: 768px){.camera-events-panel__toolbar{flex-direction:column;align-items:stretch}.camera-events-panel__search{max-width:none}.camera-event-card{width:220px}}html.demo-app.theme-dark .camera-kpi-strip__item{background:var(--hub-elevated)}html.demo-app.theme-dark .camera-tile:hover .camera-feed{box-shadow:var(--hub-shadow-lg)}html.demo-app.theme-dark .camera-event-card{background:var(--hub-elevated)}html.demo-app.theme-dark .camera-event-card:hover{box-shadow:0 4px 20px #00000073}html.demo-app.theme-dark .camera-focus-detail__sensor{background:var(--hub-elevated)}html.demo-app.theme-dark .camera-thumb-strip__item--active{background:#ff7a1814}.live-board-grid--edit .react-resizable-handle,.live-board-grid--edit .react-grid-item>.react-resizable-handle{z-index:6;background-image:none!important;padding:0}.live-board-grid--edit .react-resizable-handle-e,.live-board-grid--edit .react-grid-item>.react-resizable-handle-e{top:0;right:0;width:8px;height:100%;margin:0;transform:none;cursor:ew-resize}.live-board-grid--edit .react-resizable-handle-w,.live-board-grid--edit .react-grid-item>.react-resizable-handle-w{top:0;left:0;width:8px;height:100%;margin:0;transform:none;cursor:ew-resize}.live-board-grid--edit .react-resizable-handle-s,.live-board-grid--edit .react-grid-item>.react-resizable-handle-s{left:0;bottom:0;width:100%;height:8px;margin:0;transform:none;cursor:ns-resize}.live-board-grid--edit .react-resizable-handle-se,.live-board-grid--edit .react-grid-item>.react-resizable-handle-se{right:0;bottom:0;width:20px;height:20px;cursor:se-resize}.live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-e,.live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-w{background:#0f172a0f}.live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-s{background:#0f172a0f}html.demo-app.theme-dark .live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-e,html.demo-app.theme-dark .live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-w,html.demo-app.theme-dark .live-board-grid--edit .react-grid-item:hover>.react-resizable-handle-s{background:#ffffff14}.live-board-grid--edit .react-resizable-handle-se:after,.live-board-grid--edit .react-grid-item>.react-resizable-handle-se:after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid rgba(15,23,42,.35);border-bottom:2px solid rgba(15,23,42,.35)}html.demo-app.theme-dark .live-board-grid--edit .react-resizable-handle-se:after,html.demo-app.theme-dark .live-board-grid--edit .react-grid-item>.react-resizable-handle-se:after{border-right-color:#fff6;border-bottom-color:#fff6}.react-grid-placeholder{background:#ff7a1826!important;border-radius:12px}@media (max-width: 767px){.live-board-shell--fs{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.live-board-toolbar{padding:12px;gap:10px}.live-board-toolbar__row--primary{flex-direction:column;align-items:stretch}.live-board-toolbar__scene-block{width:100%}.live-board-toolbar__scene,.live-board-toolbar__scene-name-wrap{max-width:none;width:100%}.live-board-toolbar__actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.live-board-toolbar__btn{width:100%;padding-inline:8px;justify-content:center}.live-board-toolbar__btn-text,.live-board-toolbar__btn--fs .live-board-toolbar__btn-text--fs{display:none}.live-board-toolbar__hint{font-size:11px}.live-board-grid{min-height:280px;margin:0 -2px}.live-board-grid--mobile .react-grid-item{touch-action:pan-y}.live-board-item{border-radius:10px}.live-board-item__chrome{min-height:44px;padding:8px 10px}.live-board-item__remove,.live-board-item__edit{min-width:44px;min-height:44px}.live-board-item__remove{margin:-8px -6px -8px 0}.lb-widget-root--compact .lb-widget{padding:10px 12px}.lb-widget-root--compact .lb-summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;width:100%}.lb-widget-root--compact .lb-summary-strip__item{min-width:0;flex:none}.lb-widget-root--compact .lb-summary-strip__val{font-size:20px}.lb-widget-root--compact .lb-summary-strip .ant-tag{grid-column:1 / -1;justify-self:start;margin-inline-end:0;width:fit-content}.lb-widget-root--compact .lb-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lb-widget-root--compact .lb-device-chip{width:100%;justify-content:flex-start}.lb-widget-root--compact .lb-widget--table .ant-table{font-size:12px}.lb-widget-root--compact .lb-alarm-list__item{flex-direction:column;align-items:flex-start;gap:6px}.lb-widget-root--compact .lb-alarm-list__item .ant-btn{align-self:flex-end}}@media (max-width: 400px){.live-board-toolbar__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.climate-panel__hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding:18px 22px;border-radius:12px;background:var(--hub-surface);border:1px solid var(--hub-border-soft)}.climate-panel__hero-title{margin:0 0 4px!important;color:var(--hub-text)!important}.climate-panel__hero-stat{text-align:center;min-width:72px}.climate-panel__hero-stat-val{display:block;font-size:32px;font-weight:800;line-height:1;color:var(--hub-text)}.climate-panel__hero-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--hub-text-2)}.climate-station-list{display:flex;flex-direction:column;gap:28px}.climate-station{position:relative;padding:24px;border-radius:20px;background:var(--hub-surface);border:1px solid var(--hub-border-soft);overflow:hidden}.climate-station--on{border-color:var(--hub-border-soft)}.climate-station--warning{border-color:#faad1473}.climate-station--critical{border-color:#ff4d4f73}.climate-station__glow{display:none}.climate-station__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;position:relative;z-index:1}.climate-station__title{margin:0 0 8px!important;color:var(--hub-text)!important}.climate-station__tags{display:flex;flex-wrap:wrap;gap:6px}.climate-station__side{display:flex;flex-direction:column;gap:14px}.climate-telemetry-card{display:flex;gap:0;padding:16px;border-radius:14px;background:var(--hub-surface-2);border:1px solid var(--hub-border-soft)}.climate-telemetry-card__item{flex:1;display:flex;gap:12px;align-items:flex-start;font-size:22px;color:var(--hub-text-2)}.climate-telemetry-card__item>div{min-width:0}.climate-telemetry-card__label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--hub-text-2);margin-bottom:2px}.climate-telemetry-card__value{display:block;font-size:26px;font-weight:700;color:var(--hub-text);line-height:1.1}.climate-telemetry-card__value--sm{font-size:22px}.climate-telemetry-card__hint{display:block;font-size:12px!important;margin-top:2px}.climate-telemetry-card__divider{width:1px;margin:0 14px;background:var(--hub-border-soft);align-self:stretch}.climate-station__protocol-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.climate-station__remote-wrap{position:relative;display:flex;justify-content:center;padding:8px 0}.climate-station__offline-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#00000073;color:#fff;font-weight:600;font-size:14px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.climate-health-stack{display:flex;flex-direction:column;gap:8px}.climate-health-alert{border-radius:10px}.climate-protocol-select{width:100%}.climate-last-cmd{font-size:12px}.ac-remote-shell{position:relative;width:min(100%,320px);perspective:800px}.ac-remote-shell--disabled{opacity:.72;pointer-events:none}.ac-remote__shadow{position:absolute;bottom:-8px;left:12%;right:12%;height:24px;background:radial-gradient(ellipse,rgba(0,0,0,.22) 0%,transparent 72%);filter:blur(8px)}.ac-remote{position:relative;padding:20px 18px 22px;border-radius:28px 28px 36px 36px;background:linear-gradient(165deg,var(--ac-shell-top) 0%,var(--ac-shell-mid) 35%,var(--ac-shell-bottom) 100%);box-shadow:0 8px 24px #0000001a;border:1px solid var(--ac-shell-border)}.ac-remote-shell--on .ac-remote{border-color:var(--ac-accent-border);box-shadow:0 8px 24px #0000001a}.ac-remote__brand{text-align:center;font-size:10px;font-weight:700;letter-spacing:.28em;color:var(--ac-brand);margin-bottom:10px}.ac-remote__power{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto 14px;border-radius:50%;border:2px solid var(--ac-power-border);background:linear-gradient(145deg,var(--ac-power-top),var(--ac-power-bottom));color:var(--ac-power-fg);font-size:22px;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 8px #0000001a}.ac-remote__power:hover{border-color:#ff4d4f;color:#ff4d4f}.ac-remote__power--on{border-color:#52c41a;background:#52c41a1f;color:#389e0d;box-shadow:none}html.demo-app.theme-dark .ac-remote__power--on{color:#95de64}.ac-remote__lcd{position:relative;margin-bottom:16px;padding:14px 16px 12px;border-radius:12px;background:#141a22;border:1px solid #2a3544;box-shadow:inset 0 1px 4px #00000040;color:#8c9bab;font-family:Consolas,SF Mono,monospace;min-height:120px;opacity:.5;transition:opacity .2s ease,color .2s ease}.ac-remote__lcd--on{opacity:1;color:#69c0ff}.ac-remote__lcd-top{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px;opacity:.9}.ac-remote__lcd-mode{display:flex;align-items:center;gap:4px}.ac-remote__lcd-main{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.ac-remote__lcd-target-val{font-size:48px;font-weight:300;line-height:1;letter-spacing:-.02em}.ac-remote__lcd-target-unit{font-size:18px;opacity:.7;margin-left:2px}.ac-remote__lcd-bottom{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;opacity:.75}.ac-remote__lcd-off{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:.2em;color:#ffffff40;background:#00000059;border-radius:10px}.ac-remote__fan-bars{display:flex;align-items:flex-end;gap:3px;height:44px;opacity:.35}.ac-remote__fan-bars--live{opacity:1}.ac-remote__fan-bar{width:5px;border-radius:2px 2px 0 0;background:#ffffff1f;transition:background .2s}.ac-remote__fan-bar--on{background:currentColor}.ac-remote__temp-ring{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.ac-remote__round-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--ac-chip-border);background:var(--ac-chip-bg);font-size:18px;color:var(--ac-btn-fg);cursor:pointer;transition:border-color .12s ease,transform .12s ease}.ac-remote__round-btn:active:not(:disabled){transform:scale(.94);box-shadow:0 1px 4px #00000026 inset}.ac-remote__round-btn:disabled{opacity:.4;cursor:not-allowed}.ac-remote__temp-dial{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:0 4px}.ac-remote__temp-dial-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ac-muted);line-height:1.2;margin:0}.ac-remote__temp-dial-val{display:block;font-size:20px;font-weight:700;color:var(--ac-strong);line-height:1.15;margin:0;white-space:nowrap}.ac-remote__modes{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px}.ac-remote__mode-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--ac-chip-border);border-radius:10px;background:var(--ac-chip-bg);font-size:9px;color:var(--ac-chip-fg);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.ac-remote__mode-btn span{line-height:1.1;text-align:center}.ac-remote__mode-btn:hover:not(:disabled){border-color:var(--ac-accent-border);color:var(--ac-accent)}.ac-remote__mode-btn--selected{background:var(--ac-accent-soft);border-color:var(--ac-accent);color:var(--ac-accent);font-weight:600;box-shadow:none}.ac-remote__mode-btn--selected .anticon{color:var(--ac-accent)}.ac-remote__fan-ring{margin-bottom:14px}.ac-remote__fan-ring .ac-remote__temp-dial{gap:8px;min-height:44px}.ac-remote__fan-ring .ac-remote__temp-dial-label{letter-spacing:.12em}.ac-remote__fan-ring .ac-remote__temp-dial-val{font-size:15px;line-height:1.2}.ac-remote__fan-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;color:var(--ac-muted)}.ac-remote__fan-head .anticon{font-size:12px;color:var(--ac-accent)}.ac-remote__fan-head-label{font-weight:600}.ac-remote__fan-head-value{margin-left:auto;font-weight:700;color:var(--ac-strong);font-size:10px}.ac-remote__fan-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.ac-remote__fan-seg{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 2px 5px;border:1px solid var(--ac-chip-border);border-radius:8px;background:var(--ac-chip-bg);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.ac-remote__fan-seg:hover:not(:disabled){border-color:var(--ac-accent-border)}.ac-remote__fan-seg--on{background:var(--ac-accent-soft);border-color:var(--ac-accent);box-shadow:none}.ac-remote__fan-seg-bar{display:block;width:100%;max-width:18px;min-height:6px;border-radius:3px 3px 1px 1px;background:#1890ff33;transition:background .15s}html.demo-app.theme-dark .ac-remote__fan-seg-bar{background:#69c0ff38}.ac-remote__fan-seg--on .ac-remote__fan-seg-bar{background:var(--ac-accent);box-shadow:none}.ac-remote__fan-seg-label{display:block;width:100%;font-size:8px;font-weight:600;line-height:1.15;text-align:center;color:var(--ac-chip-fg);word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.ac-remote__fan-seg--on .ac-remote__fan-seg-label{color:var(--ac-accent);font-weight:700}.ac-remote__send{width:100%;padding:12px;border:none;border-radius:12px;background:var(--ac-accent);color:var(--ac-send-fg);font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:filter .15s,opacity .15s}.ac-remote__send:hover:not(:disabled){filter:brightness(1.08);box-shadow:none}.ac-remote__send:active:not(:disabled){transform:scale(.98)}.ac-remote__send:disabled{opacity:.5;cursor:not-allowed}.device-card__meta-chip--climate-on{color:#389e0d;border-color:#52c41a59}html.demo-app.theme-dark .climate-panel__hero,html.demo-app.theme-dark .climate-station{background:var(--hub-surface);border-color:var(--hub-border-soft)}html.demo-app.theme-dark .climate-station--on{border-color:var(--hub-border-soft)}html.demo-app.theme-dark .climate-station--warning{border-color:#faad1480}html.demo-app.theme-dark .climate-station--critical{border-color:#ff78758c}html.demo-app.theme-dark .climate-telemetry-card{background:var(--hub-surface-2);border-color:var(--hub-border-soft)}html.demo-app.theme-dark .climate-telemetry-card__value{color:var(--hub-text)}html.demo-app.theme-dark .climate-station__protocol-label{color:var(--hub-text-2)}html.demo-app.theme-dark .climate-last-cmd{color:var(--hub-text-2)!important}html.demo-app.theme-dark .climate-health-alert--ok.ant-alert-success{background:#52c41a1f;border-color:#52c41a47}html.demo-app.theme-dark .device-card__meta-chip--climate-on{color:#95de64;border-color:#52c41a66;background:#52c41a1a}.lb-widget--climate .lb-widget__head{border-bottom:1px solid var(--hub-border-soft);padding-bottom:6px;margin-bottom:6px}.lb-widget--climate-panel{padding:0!important;overflow:hidden}.lb-climate-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:10px 10px 8px;gap:8px}.lb-climate-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-shrink:0;padding-bottom:6px;border-bottom:1px solid var(--hub-border-soft)}.lb-climate-panel__title{display:block;font-size:13px;font-weight:700;color:var(--hub-text);line-height:1.25}.lb-climate-panel__sub{display:block;margin-top:2px;font-size:11px;color:var(--hub-text-2)}.lb-climate-panel__count{flex-shrink:0;font-size:11px;font-weight:600;color:var(--hub-text-2);padding:2px 8px;border-radius:999px;background:var(--hub-surface-2, rgba(0, 0, 0, .04));border:1px solid var(--hub-border-soft)}.lb-climate-panel__tabs{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding-bottom:2px;flex-shrink:0;scrollbar-width:thin}.lb-climate-panel__tab{position:relative;flex:0 0 auto;min-width:88px;max-width:140px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px 8px;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2, rgba(0, 0, 0, .03));color:var(--hub-text);cursor:pointer;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.lb-climate-panel__tab:hover:not(:disabled){border-color:color-mix(in srgb,var(--hub-primary, #ff7a18) 45%,transparent)}.lb-climate-panel__tab.is-active{border-color:var(--hub-primary, #ff7a18);background:color-mix(in srgb,var(--hub-primary, #ff7a18) 10%,var(--hub-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hub-primary, #ff7a18) 25%,transparent)}.lb-climate-panel__tab.is-offline{opacity:.62}.lb-climate-panel__tab-name{font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding-right:10px}.lb-climate-panel__tab-meta{font-size:10px;color:var(--hub-text-2);text-transform:lowercase}.lb-climate-panel__tab.is-on .lb-climate-panel__tab-meta{color:#389e0d}.lb-climate-panel__tab-led{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:#8c8c8c73}.lb-climate-panel__tab-led.is-on{background:#52c41a;box-shadow:0 0 0 2px #52c41a33}.lb-climate-panel__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.lb-climate-widget__body{overflow:auto;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;justify-content:flex-start;padding:8px 12px 12px!important;margin:0 4px 4px}.lb-climate-widget__body--board{flex-direction:column;align-items:stretch;justify-content:stretch;gap:0;overflow:hidden;padding:2px 6px 6px!important;min-height:0}.lb-climate-widget__remote-fit{flex:1;min-height:0;width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.lb-climate-widget__remote-fit-inner{width:300px;flex:0 0 auto;will-change:transform}.lb-climate-widget__remote-fit-inner .ac-remote-shell{width:300px;max-width:300px}.lb-climate-widget__stats{min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;background:var(--hub-surface-2, rgba(0, 0, 0, .03));border:1px solid var(--hub-border-soft);flex-shrink:0}.lb-climate-widget__stats-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.lb-climate-widget__stats-head strong{font-size:12px;font-weight:700;color:var(--hub-text);letter-spacing:.01em}.lb-climate-widget__stats-head span{font-size:11px;color:var(--hub-text-2);white-space:normal;overflow:visible;text-overflow:unset;text-align:right;line-height:1.3}.lb-climate-temps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface);overflow:hidden}.lb-climate-temps__item{display:flex;flex-direction:column;gap:2px;padding:10px 8px;min-width:0;text-align:center}.lb-climate-temps__item+.lb-climate-temps__item{border-left:1px solid var(--hub-border-soft)}.lb-climate-temps__label{font-size:10px;font-weight:600;color:var(--hub-text-2);text-transform:uppercase;letter-spacing:.04em}.lb-climate-temps__value{font-style:normal;font-size:18px;font-weight:700;color:var(--hub-text);line-height:1.15}.lb-climate-temps__hint{font-size:10px;color:var(--hub-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-climate-temps__item--delta.is-ok .lb-climate-temps__value{color:var(--hub-success, #52c41a)}.lb-climate-temps__item--delta.is-warm .lb-climate-temps__value{color:var(--hub-error, #ff4d4f)}.lb-climate-temps__item--delta.is-cool .lb-climate-temps__value{color:var(--climate-ambient, #1890ff)}.lb-climate-detail-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface);overflow:hidden}.lb-climate-detail-list li{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:8px;min-width:0}.lb-climate-detail-list li+li{border-left:1px solid var(--hub-border-soft)}.lb-climate-detail-list__label{font-size:10px;color:var(--hub-text-2);line-height:1.2}.lb-climate-detail-list__value{font-style:normal;font-size:13px;font-weight:700;color:var(--hub-text);line-height:1.25;text-align:left;white-space:normal;overflow:visible;text-overflow:unset;max-width:100%;word-break:break-word}.lb-climate-widget__meta{display:block;font-size:10px!important;line-height:1.3}.lb-climate-widget__remote{min-width:0;display:flex;justify-content:center;align-items:flex-start;flex-shrink:0}.lb-climate-widget__foot{display:block;padding:0 12px 10px;font-size:11px;text-align:center;color:var(--hub-text-2)!important}html.demo-app.theme-dark .lb-climate-widget__stats{background:#ffffff08}html.demo-app.theme-dark .lb-climate-temps,html.demo-app.theme-dark .lb-climate-detail-list{background:var(--hub-surface)}html.demo-app.theme-dark .lb-climate-widget__alert.ant-alert{background:var(--hub-surface-2);border-color:var(--hub-border-soft)}@media (max-width: 720px){.lb-climate-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.lb-climate-detail-list li+li{border-left:none}.lb-climate-detail-list li:nth-child(n+3){border-top:1px solid var(--hub-border-soft)}.lb-climate-detail-list li:nth-child(2n){border-left:1px solid var(--hub-border-soft)}}.lb-widget-root--compact .lb-climate-widget__body{padding:6px!important;margin:0 4px 4px}.lb-widget-root--compact .lb-climate-temps__value{font-size:15px}.lb-widget-root--compact .lb-climate-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.lb-widget-root--compact .lb-climate-detail-list li+li{border-left:none}.lb-widget-root--compact .lb-climate-detail-list li:nth-child(n+3){border-top:1px solid var(--hub-border-soft)}.lb-widget-root--compact .lb-climate-detail-list li:nth-child(2n){border-left:1px solid var(--hub-border-soft)}.alarm-expanded-row--climate .alarm-expanded-row__facts{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:12px}@media (max-width: 640px){.climate-telemetry-card{flex-direction:column}.climate-telemetry-card__divider{width:100%;height:1px;margin:12px 0}.ac-remote__modes{grid-template-columns:repeat(3,1fr)}.ac-remote__mode-btn:nth-child(4),.ac-remote__mode-btn:nth-child(5){grid-column:span 1}}.ac-remote-shell--compact{width:100%;max-width:300px;margin:0 auto}.ac-remote-shell--compact .ac-remote{padding:14px 12px 16px;border-radius:24px 24px 30px 30px}.ac-remote-shell--compact .ac-remote__brand{font-size:9px;margin-bottom:8px}.ac-remote-shell--compact .ac-remote__power{width:46px;height:46px;font-size:18px;margin-bottom:10px}.ac-remote-shell--compact .ac-remote__lcd{min-height:100px;padding:10px 12px;margin-bottom:12px}.ac-remote-shell--compact .ac-remote__lcd-target-val{font-size:36px}.ac-remote-shell--compact .ac-remote__round-btn{width:42px;height:42px;font-size:16px}.ac-remote-shell--compact .ac-remote__temp-dial-val{font-size:16px}.ac-remote-shell--compact .ac-remote__modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.ac-remote-shell--compact .ac-remote__mode-btn{padding:7px 3px;font-size:12px}.ac-remote-shell--compact .ac-remote__mode-btn span{display:block;font-size:9px;font-weight:700}.ac-remote-shell--compact .ac-remote__fan-ring{margin-bottom:10px}.ac-remote-shell--compact .ac-remote__send{padding:10px;font-size:12px}.lb-widget--climate,.lb-widget--actuator{height:100%;display:flex;flex-direction:column}.lb-actuator-widget__tags{display:flex;gap:4px;flex-shrink:0}.lb-actuator-widget__body{display:flex;flex-direction:column;gap:12px;padding:10px 12px 12px!important}.lb-actuator-widget__body--fuse{gap:8px;padding:8px 10px 10px!important;min-height:0;flex:1}.lb-actuator-widget__power{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:10px;border:1px solid var(--hub-border-soft);background:var(--hub-surface-2, rgba(0, 0, 0, .03))}.lb-actuator-widget__label{display:flex;align-items:center;gap:6px;font-size:13px}.lb-actuator-widget__hint{display:block;font-size:11px!important;margin-top:2px}.lb-actuator-widget__stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lb-actuator-widget__stats>div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;border:1px solid var(--hub-border-soft);background:var(--hub-surface);min-width:0}.lb-actuator-widget__stats span{font-size:10px;color:var(--hub-text-2);text-transform:uppercase;letter-spacing:.03em}.lb-actuator-widget__stats em{font-style:normal;font-size:13px;font-weight:700;color:var(--hub-text);line-height:1.25;overflow:hidden;text-overflow:ellipsis}.lb-actuator-widget__link{align-self:flex-start;padding-inline:0}.lb-climate-widget__tags{display:flex;gap:4px;flex-shrink:0}.lb-climate-widget__alert{margin:0 12px 8px;font-size:12px}.hvac-board{width:100%;height:100%;min-height:0}.hvac-board__bezel{display:flex;flex-direction:column;gap:10px;height:100%;padding:12px;border-radius:14px;background:linear-gradient(165deg,#3a3f48,#2a2e36 45%,#1f2329);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px #ffffff1f,0 8px 20px #0000002e;color:#e8eaed}.hvac-board__rail{display:flex;align-items:center;justify-content:space-between;gap:8px}.hvac-board__brand{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c}.hvac-board__rail-led{width:8px;height:8px;border-radius:50%;background:#5a6270;box-shadow:inset 0 1px 2px #0006}.hvac-board--on .hvac-board__rail-led{background:#52c41a;box-shadow:0 0 8px #52c41abf}.hvac-board__lcd{position:relative;padding:10px 12px;border-radius:10px;background:linear-gradient(180deg,#0d1f18,#071410);border:1px solid rgba(80,200,140,.15);min-height:88px;opacity:.55;transition:opacity .2s ease}.hvac-board__lcd--on{opacity:1;box-shadow:inset 0 0 24px #38b4781f}.hvac-board__lcd-row{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#7ddea8;margin-bottom:6px}.hvac-board__lcd-row .anticon{margin-right:4px}.hvac-board__lcd-temps{display:flex;align-items:stretch;gap:0}.hvac-board__lcd-temps>div{flex:1;display:flex;flex-direction:column;gap:2px}.hvac-board__lcd-temps em{font-style:normal;font-size:10px;color:#7ddea8a6;text-transform:uppercase;letter-spacing:.06em}.hvac-board__lcd-temps strong{font-size:28px;font-weight:700;line-height:1;color:#b8f5d0;letter-spacing:-.02em}.hvac-board__lcd-divider{width:1px;margin:4px 12px;background:#7ddea840}.hvac-board__lcd-off{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.2em;color:#7ddea859;background:#0714108c;border-radius:10px}.hvac-board__controls{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.hvac-board__power{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:56px;height:56px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#00000047;color:#ffffffb3;cursor:pointer;font-size:10px;font-weight:600;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.hvac-board__power .anticon{font-size:18px}.hvac-board__power.is-on{color:#fff;background:linear-gradient(160deg,#52c41a,#389e0d);border-color:transparent;box-shadow:0 4px 12px #52c41a59}.hvac-board__power:disabled,.hvac-board__temp button:disabled,.hvac-board__mode:disabled,.hvac-board__fan-btn:disabled,.hvac-board__send:disabled{opacity:.45;cursor:not-allowed}.hvac-board__temp{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:6px;padding:6px;border-radius:12px;background:#00000038;border:1px solid rgba(255,255,255,.08)}.hvac-board__temp button{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#fff;cursor:pointer;font-size:14px}.hvac-board__temp button:hover:not(:disabled){background:#ffffff1f}.hvac-board__temp-val{display:flex;align-items:baseline;justify-content:center;gap:2px;color:#fff}.hvac-board__temp-val span{font-size:28px;font-weight:700;line-height:1}.hvac-board__temp-val small{font-size:12px;opacity:.65}.hvac-board__modes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.hvac-board__mode{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:8px;border:1px solid transparent;background:#ffffff0a;color:#ffffff8c;cursor:pointer;font-size:9px;font-weight:600;line-height:1.1}.hvac-board__mode .anticon{font-size:14px}.hvac-board__mode.is-selected{color:#fff;background:#1890ff47;border-color:#1890ff73}.hvac-board__fan{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.hvac-board__fan-btn{padding:7px 2px;border-radius:7px;border:1px solid rgba(255,255,255,.08);background:#0003;color:#ffffff8c;font-size:10px;font-weight:700;cursor:pointer}.hvac-board__fan-btn.is-on{color:#fff;background:#ff7a1859;border-color:#ff7a188c}.hvac-board__send{margin-top:auto;width:100%;padding:10px 12px;border:none;border-radius:10px;background:linear-gradient(180deg,var(--hub-primary),var(--hub-primary-dark));color:#fff;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #ff7a184d}.hvac-board__send:hover:not(:disabled){filter:brightness(1.06)}.hvac-board--disabled .hvac-board__bezel{filter:grayscale(.25)}.fuse-box{width:100%;height:100%;min-height:0}.fuse-box__door{position:relative;display:flex;flex-direction:column;gap:10px;height:100%;padding:14px 14px 12px 20px;border-radius:12px;background:linear-gradient(145deg,#eceff3,#d5dae2 55%,#c8ced8);border:2px solid #9aa3b0;box-shadow:inset 0 1px #ffffffb3,inset 0 -2px 6px #00000014,0 6px 16px #0000001a;color:#1f2937}html.demo-app.theme-dark .fuse-box__door{background:linear-gradient(145deg,#3a404c,#2c313a 55%,#242830);border-color:#565e6c;color:#e8eaed;box-shadow:inset 0 1px #ffffff14,inset 0 -2px 6px #00000040,0 6px 16px #00000040}.fuse-box__hinge{position:absolute;left:5px;width:7px;height:18px;border-radius:2px;background:linear-gradient(90deg,#8b939e,#b8bfc9 40%,#7a828e);box-shadow:0 1px 2px #00000040}.fuse-box__hinge--top{top:18%}.fuse-box__hinge--bot{bottom:22%}.fuse-box__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.fuse-box__badge{font-size:10px;font-weight:800;letter-spacing:.16em;color:#fff;background:#374151;padding:3px 8px;border-radius:4px}html.demo-app.theme-dark .fuse-box__badge{background:#111827}.fuse-box__pilot{width:12px;height:12px;border-radius:50%;background:#6b7280;box-shadow:inset 0 1px 2px #00000059}.fuse-box__pilot.is-on{background:#22c55e;box-shadow:0 0 10px #22c55ed9}.fuse-box__plate{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:#ffffff8c;border:1px solid rgba(0,0,0,.08)}html.demo-app.theme-dark .fuse-box__plate{background:#00000040;border-color:#ffffff14}.fuse-box__circuit{font-size:18px;font-weight:800;letter-spacing:.04em;line-height:1.1}.fuse-box__name{font-size:13px;font-weight:700;line-height:1.25}.fuse-box__kind{font-size:11px;color:#6b7280}html.demo-app.theme-dark .fuse-box__kind{color:#ffffff8c}.fuse-box__breaker{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:118px;padding:12px 10px 10px;border:none;border-radius:10px;background:linear-gradient(180deg,#f8fafc,#e2e8f0);box-shadow:inset 0 0 0 1px #00000014,0 2px 4px #0000000f;cursor:pointer;transition:background .15s ease}html.demo-app.theme-dark .fuse-box__breaker{background:linear-gradient(180deg,#4b5563,#374151)}.fuse-box__breaker:hover:not(:disabled){filter:brightness(1.03)}.fuse-box__breaker:disabled{cursor:not-allowed;opacity:.55}.fuse-box__rail{position:absolute;top:18px;bottom:36px;width:10px;border-radius:5px;background:#94a3b8;box-shadow:inset 0 1px 2px #00000040}.fuse-box__lever{position:relative;z-index:1;width:54px;height:72px;display:flex;align-items:flex-end;justify-content:center;transform-origin:50% 85%;transform:rotate(-28deg);transition:transform .28s cubic-bezier(.34,1.2,.64,1)}.fuse-box__breaker.is-on .fuse-box__lever{transform:rotate(28deg)}.fuse-box__lever-grip{width:22px;height:58px;border-radius:6px 6px 4px 4px;background:linear-gradient(90deg,#dc2626,#ef4444 45%,#b91c1c);box-shadow:0 4px 8px #b91c1c59,inset 0 1px #ffffff59;border:1px solid #991b1b}.fuse-box__breaker.is-on .fuse-box__lever-grip{background:linear-gradient(90deg,#16a34a,#22c55e 45%,#15803d);border-color:#166534;box-shadow:0 4px 8px #16a34a59,inset 0 1px #ffffff59}.fuse-box__breaker-state{position:relative;z-index:1;font-size:11px;font-weight:800;letter-spacing:.12em;color:#64748b}.fuse-box__breaker.is-on .fuse-box__breaker-state{color:#15803d}html.demo-app.theme-dark .fuse-box__breaker.is-on .fuse-box__breaker-state{color:#4ade80}.fuse-box__meter{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fuse-box__meter>div{display:flex;flex-direction:column;gap:2px;padding:7px 9px;border-radius:8px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06);min-width:0}html.demo-app.theme-dark .fuse-box__meter>div{background:#00000038;border-color:#ffffff0f}.fuse-box__meter span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}html.demo-app.theme-dark .fuse-box__meter span{color:#ffffff80}.fuse-box__meter em{font-style:normal;font-size:12px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fuse-box__hint{margin:0;font-size:11px;line-height:1.35;color:#4b5563}html.demo-app.theme-dark .fuse-box__hint{color:#ffffff8c}.fuse-box--offline .fuse-box__pilot{background:#ef4444;box-shadow:0 0 8px #ef444480}.fuse-box--on .fuse-box__door{box-shadow:inset 0 1px #ffffffb3,inset 0 -2px 6px #00000014,0 0 0 1px #22c55e40,0 6px 16px #0000001a}.fuse-cabinet{width:100%;height:100%;min-height:0}.fuse-cabinet__frame{position:relative;height:100%;display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;border-radius:10px;background:linear-gradient(160deg,#f4f5f7,#e4e7ec 55%,#d5dae3);border:2px solid #9aa3b0;box-shadow:inset 0 1px #ffffffd9,0 8px 20px #0000001f}html.demo-app.theme-dark .fuse-cabinet__frame{background:linear-gradient(160deg,#3a404c,#2b303a 55%,#232830);border-color:#5a6270}.fuse-cabinet__screw{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d0d5dd,#6b7280 70%);box-shadow:inset 0 1px 1px #fff6}.fuse-cabinet__screw--tl{top:8px;left:8px}.fuse-cabinet__screw--tr{top:8px;right:8px}.fuse-cabinet__screw--bl{bottom:8px;left:8px}.fuse-cabinet__screw--br{bottom:8px;right:8px}.fuse-cabinet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:0 4px}.fuse-cabinet__title{display:block;font-size:15px;font-weight:800;color:#1f2937;letter-spacing:.02em}html.demo-app.theme-dark .fuse-cabinet__title{color:#f3f4f6}.fuse-cabinet__sub{display:block;margin-top:2px;font-size:11px;color:#6b7280}html.demo-app.theme-dark .fuse-cabinet__sub{color:#ffffff80}.fuse-cabinet__count{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:#374151;color:#fff}.fuse-cabinet__cavity{position:relative;flex:1;min-height:140px;display:flex;align-items:stretch;gap:8px;padding:12px 10px;border-radius:8px;background:linear-gradient(180deg,#eceff3,#dfe3ea);border:1px solid #b0b8c4;box-shadow:inset 0 2px 8px #00000014}html.demo-app.theme-dark .fuse-cabinet__cavity{background:linear-gradient(180deg,#1f242c,#171b22);border-color:#3f4654}.fuse-cabinet__wires{width:14px;flex-shrink:0;border-radius:4px;opacity:.85}.fuse-cabinet__wires--left{background:repeating-linear-gradient(180deg,#2563eb 0 3px,transparent 3px 7px,#b45309 7px 10px,transparent 10px 14px)}.fuse-cabinet__wires--right{background:repeating-linear-gradient(180deg,#16a34a 0 3px,transparent 3px 6px,#ca8a04 6px 9px,transparent 9px 13px,#2563eb 13px 16px,transparent 16px 20px)}.fuse-cabinet__rail{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;position:relative;padding:8px 4px 4px}.fuse-cabinet__din{position:absolute;left:0;right:0;top:42%;height:10px;border-radius:2px;background:linear-gradient(180deg,#9ca3af,#6b7280 40%,#4b5563);box-shadow:0 1px 2px #00000040;z-index:0}.fuse-cabinet__breakers{position:relative;z-index:1;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:2px;justify-content:center;-webkit-overflow-scrolling:touch}.fuse-cabinet__empty{flex:1;text-align:center;font-size:12px;color:#6b7280;padding:24px 8px}.din-breaker{flex:1 1 0;width:auto;min-width:64px;max-width:100px;min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;padding:8px 6px 7px;border:1px solid #c5cad3;border-radius:3px 3px 4px 4px;background:linear-gradient(180deg,#fbfbfc,#eef0f4);box-shadow:inset 0 1px #fff,0 1px 2px #00000014;cursor:pointer;color:#1f2937;transition:transform .12s ease,box-shadow .12s ease}.din-breaker:hover:not(:disabled):not(.din-breaker--blank){transform:translateY(-1px);box-shadow:inset 0 1px #fff,0 3px 8px #0000001f}.din-breaker:disabled,.din-breaker.is-disabled{opacity:.55;cursor:not-allowed}.din-breaker--blank{opacity:.35;pointer-events:none;filter:grayscale(.4)}.din-breaker__top{width:70%;height:6px;border-radius:2px;background:#cbd5e1}.din-breaker__toggle{width:26px;height:42px;border-radius:3px;background:#e5e7eb;border:1px solid #9ca3af;display:flex;align-items:flex-end;justify-content:center;padding:3px;transition:background .15s ease}.din-breaker.is-on .din-breaker__toggle{align-items:flex-start;background:#dcfce7;border-color:#16a34a}.din-breaker__knob{width:16px;height:18px;border-radius:2px;background:linear-gradient(180deg,#9ca3af,#6b7280);box-shadow:0 1px 2px #00000040;transition:background .15s ease}.din-breaker.is-on .din-breaker__knob{background:linear-gradient(180deg,#4ade80,#15803d)}.din-breaker__face{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;width:100%}.din-breaker__face strong{font-size:13px;font-weight:800;letter-spacing:.04em;line-height:1.1}.din-breaker__face em{font-style:normal;font-size:10px;font-weight:600;color:#6b7280;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-align:center;line-height:1.2}.din-breaker__led{width:7px;height:7px;border-radius:50%;background:#9ca3af;box-shadow:inset 0 1px 1px #0000004d}.din-breaker__led.is-on{background:#22c55e;box-shadow:0 0 8px #22c55ed9}.din-breaker__state{font-size:8px;font-weight:800;letter-spacing:.06em;color:#6b7280}.din-breaker.is-on .din-breaker__state{color:#15803d}.din-breaker.is-offline{outline:1px solid rgba(239,68,68,.45)}.fuse-cabinet__legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px}.fuse-cabinet__legend li{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 8px;border-radius:6px;background:#ffffff8c;border:1px solid rgba(0,0,0,.06);font-size:11px}html.demo-app.theme-dark .fuse-cabinet__legend li{background:#00000038;border-color:#ffffff0f}.fuse-cabinet__legend strong{font-weight:800;color:#111827}html.demo-app.theme-dark .fuse-cabinet__legend strong{color:#f9fafb}.fuse-cabinet__legend span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#4b5563;line-height:1.25}html.demo-app.theme-dark .fuse-cabinet__legend span{color:#ffffffa6}.fuse-cabinet__legend em{font-style:normal;font-weight:700;color:#6b7280}.fuse-cabinet__legend em.is-on{color:#16a34a}.lb-widget--fuse-cabinet,.lb-fuse-cabinet-widget{height:100%;min-height:0}.lb-fuse-cabinet-widget{padding:8px 10px 10px!important;display:flex;flex-direction:column;overflow:visible}.lb-fuse-cabinet-widget .fuse-cabinet{flex:1;min-height:0;display:flex;flex-direction:column}.lb-fuse-cabinet-widget .fuse-cabinet__frame{flex:1;min-height:0;gap:10px;padding:14px 14px 12px;overflow:visible}.lb-fuse-cabinet-widget .fuse-cabinet__cavity{flex:1;min-height:160px;padding:16px 12px}.lb-fuse-cabinet-widget .fuse-cabinet__rail{height:100%;justify-content:center;padding:6px 2px}.lb-fuse-cabinet-widget .fuse-cabinet__breakers{height:auto;max-height:none;min-height:160px;align-items:stretch;justify-content:center;gap:10px;overflow-x:auto;overflow-y:visible}.lb-fuse-cabinet-widget .din-breaker{flex:1 1 0;min-width:76px;max-width:120px;min-height:160px;height:auto;padding:10px 8px 8px}.lb-fuse-cabinet-widget .din-breaker__toggle{width:30px;height:48px}.lb-fuse-cabinet-widget .din-breaker__knob{width:18px;height:22px}.lb-fuse-cabinet-widget .din-breaker__face strong{font-size:14px}.lb-fuse-cabinet-widget .fuse-cabinet__legend{flex-shrink:0;gap:6px}.lb-fuse-cabinet-widget .fuse-cabinet__legend li{padding:6px 8px;font-size:11px}.twin-station-card__fuse.is-compact .fuse-cabinet__frame{padding:10px;gap:8px}.twin-station-card__fuse.is-compact .fuse-cabinet__cavity{min-height:120px;padding:8px}.twin-station-card__fuse.is-compact .fuse-cabinet__wires,.twin-station-card__fuse.is-compact .fuse-cabinet__legend,.twin-station-card__fuse.is-compact .din-breaker--blank{display:none}.twin-station-card__fuse.is-compact .din-breaker{width:64px;max-width:72px;flex:0 0 auto;min-height:130px}.page-shell.twin-page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:12px}.twin-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;flex-shrink:0}.twin-page__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:16px;flex:1;min-height:0;overflow:hidden;align-items:stretch}.twin-page__viewport{position:relative;min-height:0;height:100%;border-radius:14px;overflow:hidden;border:1px solid var(--hub-border-soft);background:#1a1f27;box-shadow:var(--hub-shadow)}.twin-canvas{position:relative;width:100%;height:100%;min-height:0}.twin-canvas canvas{width:100%!important;height:100%!important;display:block}.twin-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:#0f1724f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.twin-loading .ant-spin-dot-item{background-color:#ff7a18}.twin-loading__title{display:block;color:#f8fafc!important;font-size:16px;font-weight:600}.twin-loading__hint{display:block;color:#ffffff80!important;font-size:13px;max-width:280px;line-height:1.45}.twin-canvas__hint{position:absolute;left:12px;bottom:12px;z-index:2;padding:6px 10px;border-radius:8px;background:#0f172ab8;color:#ffffffc7;font-size:11px;pointer-events:none}.twin-zone-label{display:inline-flex;align-items:center;gap:5px;padding:2px 6px;border-radius:4px;background:#0f172a73;color:#f1f5f9b8;font-size:9px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.twin-zone-label span{width:5px;height:5px;border-radius:50%;opacity:.85}.twin-hub-badge{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;line-height:1;box-shadow:0 2px 8px #00000059}.twin-hub-badge--alarm{background:#ff4d4f;color:#fff}.twin-hub-badge--off{background:#0f172abf;color:#faad14;border:1px solid rgba(250,173,20,.45);font-size:9px}.twin-hub-tag{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 8px;border-radius:7px;background:#0f172ad1;border:1px solid rgba(255,255,255,.14);color:#e2e8f0;font-size:10px;line-height:1.15;white-space:nowrap;box-shadow:0 4px 12px #00000047;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.twin-hub-tag--btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;font:inherit;cursor:pointer;text-align:center}.twin-hub-tag--btn:hover{border-color:#ff7a18b3;background:#0f172aeb}.twin-hub-tag.is-compact{padding:3px 7px;gap:0;background:#0f172ab8;box-shadow:0 2px 8px #00000038;transform:translateY(-10px)}.twin-hub-tag.is-compact strong{font-size:10px;font-weight:650}.twin-hub-tag.is-compact span{font-size:9px;opacity:.88}.twin-hub-tag strong{font-size:11px;color:#fff}.twin-hub-tag.is-selected{padding:6px 10px;border-color:var(--hub-primary);background:#0f172aeb;box-shadow:0 0 0 1px var(--hub-primary),0 8px 18px #0006;transform:translateY(-10px)}.twin-hub-tag.is-selected strong{font-size:11px}.twin-hub-tag.is-alarm{border-color:#ff4d4fb3}.twin-hub-tag.is-offline{opacity:.85}.twin-hub-tag.is-ext{border-color:#1677ff66}.twin-hub-tag__proto{font-style:normal;font-size:9px;color:#69b1ff;letter-spacing:.04em;text-transform:uppercase}.device-card__meta-chip--protocol{color:#1677ff;border-color:#1677ff40;background:#1677ff14}.device-card--integration .device-card__accent{background:linear-gradient(180deg,#1677ff,#69b1ff)}.twin-hub-tag__off{color:#faad14}.twin-floor2d{height:100%;min-height:0;padding:16px;background:radial-gradient(ellipse at 20% 10%,rgba(255,122,24,.12),transparent 45%),linear-gradient(180deg,#222833,#1a1f27)}.twin-floor2d__plan{position:relative;width:100%;height:100%;min-height:0;border-radius:12px;background:#2a313c;border:1px solid rgba(255,255,255,.06);overflow:hidden}.twin-floor2d__zone{position:absolute;border:1px solid color-mix(in srgb,var(--zone-accent) 55%,transparent);border-radius:6px;box-sizing:border-box}.twin-floor2d__zone-name{position:absolute;top:8px;left:10px;font-size:11px;font-weight:700;color:#ffffffe0;letter-spacing:.03em;text-transform:uppercase}.twin-floor2d__marker{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;cursor:pointer;padding:0;z-index:2}.twin-floor2d__dot{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 3px #00000040}.twin-floor2d__marker.is-online .twin-floor2d__dot{background:#52c41a}.twin-floor2d__marker.is-offline .twin-floor2d__dot{background:#8c8c8c}.twin-floor2d__marker.is-alarm .twin-floor2d__dot{background:#ff4d4f;animation:twin-pulse 1.2s ease-in-out infinite}.twin-floor2d__marker.is-selected .twin-floor2d__dot{box-shadow:0 0 0 3px #ff7a188c}.twin-floor2d__name{max-width:110px;padding:2px 6px;border-radius:6px;background:#0f172ad1;color:#f8fafc;font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes twin-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.twin-page__side{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px;scrollbar-gutter:stable}.twin-side-card{background:var(--hub-surface);border:1px solid var(--hub-border-soft);border-radius:12px;padding:14px;box-shadow:var(--hub-shadow)}.twin-side-card__title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--hub-text-2);margin-bottom:10px}.twin-side-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.twin-side-kpis div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:var(--hub-surface-2)}.twin-side-kpis strong{font-size:20px;color:var(--hub-text);line-height:1.1}.twin-side-kpis strong.is-alarm{color:var(--hub-error)}.twin-side-kpis span{font-size:11px;color:var(--hub-text-2)}.twin-side-hint{margin:12px 0 0;font-size:11px;line-height:1.4;color:var(--hub-text-2)}.twin-station-card-anchor{transform:translateY(-8px)}.twin-station-overlay{position:absolute;right:14px;top:14px;z-index:80;max-width:min(360px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;overscroll-behavior:contain;pointer-events:auto}.twin-station-overlay.is-peek{pointer-events:none}.twin-station-overlay.is-peek .twin-station-card{pointer-events:none;opacity:.96;box-shadow:0 12px 32px #00000080,0 0 0 1px #ffffff0f inset,0 0 28px color-mix(in srgb,var(--twin-card-accent, #ff7a18) 28%,transparent)}.twin-station-card__peek-hint{display:block;width:100%;font-size:11px;letter-spacing:.02em;color:#e2e8f0b8;text-align:right;padding:2px 4px 0}.twin-station-card{width:min(340px,92vw);padding:14px 16px 12px;border-radius:14px;background:linear-gradient(145deg,#121822f7,#0a0e16f2);border:1px solid color-mix(in srgb,var(--twin-card-accent, #ff7a18) 50%,transparent);box-shadow:0 16px 40px #00000073,0 0 0 1px #ffffff0d inset,0 0 22px color-mix(in srgb,var(--twin-card-accent, #ff7a18) 22%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#f8fafc;text-align:left;pointer-events:auto;max-height:min(70vh,560px);overflow-y:auto;overscroll-behavior:contain}.twin-station-card__toolbar{display:flex;justify-content:flex-end;margin:-4px -4px 6px 0}.twin-station-card__close{width:28px;height:28px;border:none;border-radius:8px;background:#ffffff14;color:#ffffffbf;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.twin-station-card__close:hover{background:#ffffff24;color:#fff}.twin-station-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.twin-station-card__identity{min-width:0;flex:1}.twin-station-card__title{font-size:16px;font-weight:700;line-height:1.25;color:#f8fafc;overflow-wrap:anywhere;word-break:break-word}.twin-station-card__sub{margin-top:2px;font-size:12px;font-weight:600;color:var(--twin-card-accent, #ff7a18)}.twin-station-card__loc{margin-top:4px;font-size:11px;color:#ffffff73}.twin-station-card__pill{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#ffffff0f;white-space:nowrap}.twin-station-card__dot{width:7px;height:7px;border-radius:50%;background:#8c8c8c}.twin-station-card__pill.is-on .twin-station-card__dot{background:#52c41a;box-shadow:0 0 6px #52c41a}.twin-station-card.is-alarm .twin-station-card__pill .twin-station-card__dot{background:#ff4d4f;box-shadow:0 0 6px #ff4d4f}.twin-station-card__feed{display:flex;flex-direction:column;gap:2px;padding:8px 10px;margin-bottom:10px;border-radius:10px;background:#1677ff1f;border:1px solid rgba(22,119,255,.25);font-size:11px;color:#ffffffa6;word-break:break-all}.twin-station-card__feed-label{font-weight:700;color:#69b1ff}.twin-station-card__section-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;margin-bottom:6px}.twin-station-card__metrics{list-style:none;margin:0 0 12px;padding:0;border-radius:10px;border:1px solid rgba(255,255,255,.08);overflow:hidden;background:#ffffff08}.twin-station-card__metrics li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-top:1px solid rgba(255,255,255,.06)}.twin-station-card__metrics li:first-child{border-top:none}.twin-station-card__metric-name{font-size:12px;color:#ffffffb3;min-width:0}.twin-station-card__metric-name em{display:block;font-style:normal;font-size:10px;color:#69b1ff;margin-top:1px}.twin-station-card__metrics strong{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}.twin-station-card__level{transform:scale(.9);transform-origin:right center}.twin-station-card__fuse{margin-bottom:10px}.twin-station-card__fuse.is-compact .fuse-box__door{padding:10px 10px 8px 16px;gap:6px}.twin-station-card__fuse.is-compact .fuse-box__breaker{min-height:88px}.twin-station-card__fuse.is-compact .fuse-box__hint{display:none}.twin-station-card__footer{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:none;border-radius:10px;background:linear-gradient(180deg,var(--hub-primary),var(--hub-primary-dark));color:#fff;font-size:13px;font-weight:700;cursor:pointer}.twin-station-card__footer:hover{filter:brightness(1.05)}.twin-beacon-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--hub-border-soft);font-size:11px;color:var(--hub-text-2)}.twin-beacon-legend>span{display:inline-flex;align-items:center;gap:5px}.twin-beacon-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.twin-beacon-dot--run{background:#52c41a;color:#52c41a}.twin-beacon-dot--idle{background:#faad14;color:#faad14}.twin-beacon-dot--alarm{background:#ff4d4f;color:#ff4d4f;animation:twin-beacon-blink .7s step-end infinite}.twin-beacon-dot--off{background:#5a5f66;color:transparent;box-shadow:none;opacity:.55}.twin-side-card--fuse{padding-bottom:12px}.twin-fuse-lead{margin:-4px 0 10px;font-size:11px;line-height:1.4;color:var(--hub-text-2)}.twin-fuse-grid{display:flex;flex-direction:column;gap:10px}.twin-fuse-slot{border-radius:12px;outline:2px solid transparent;outline-offset:1px;cursor:pointer;transition:outline-color .15s ease}.twin-fuse-slot.is-selected{outline-color:var(--hub-primary)}.twin-fuse-slot .fuse-box__door{padding:12px 12px 10px 18px;gap:8px}.twin-fuse-slot .fuse-box__breaker{min-height:96px}.twin-fuse-slot .fuse-box__lever{height:58px}.twin-fuse-slot .fuse-box__lever-grip{height:48px}.twin-fuse-slot .fuse-box__hint{font-size:10px}@keyframes twin-beacon-blink{50%{background:#faad14;color:#faad14}}.twin-selected__name{font-size:16px;font-weight:700;color:var(--hub-text);margin-bottom:8px}.twin-selected__loc{margin:8px 0 10px;font-size:12px;color:var(--hub-text-2)}.twin-selected__sensors{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}.twin-selected__sensors li{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--hub-text-2)}.twin-selected__sensors strong{color:var(--hub-text);font-variant-numeric:tabular-nums}.twin-side-card--zones{flex:1;min-height:0;display:flex;flex-direction:column}.twin-zone-list{display:flex;flex-direction:column;gap:6px;overflow:auto;max-height:340px}.twin-zone-row{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid transparent;background:var(--hub-surface-2);border-radius:8px;padding:8px 10px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.twin-zone-row:hover{border-color:var(--hub-border);background:var(--hub-hover-bg)}.twin-zone-row__swatch{width:8px;height:28px;border-radius:4px}.twin-zone-row__meta{display:flex;flex-direction:column;gap:1px;min-width:0}.twin-zone-row__meta strong{font-size:13px;color:var(--hub-text)}.twin-zone-row__meta small{font-size:11px;color:var(--hub-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.twin-zone-row__stats{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;color:var(--hub-text-2)}.twin-zone-row__stats em{font-style:normal;color:var(--hub-error);font-weight:600}@media (max-width: 1100px){.main-content:has(.twin-page){height:auto;max-height:none;overflow-x:hidden;overflow-y:auto}.page-shell.twin-page{overflow:visible;height:auto}.twin-page__body{grid-template-columns:1fr;min-height:0;overflow:visible;flex:none}.twin-page__viewport{min-height:min(52vh,480px);height:min(52vh,480px)}.twin-canvas,.twin-floor2d{min-height:min(52vh,480px)}.twin-page__side{height:auto;max-height:none;overflow:visible}}.home-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:24px}.home-zone-card{display:grid;grid-template-columns:6px 1fr;gap:12px;align-items:stretch;text-align:left;border:1px solid var(--hub-border-soft);background:var(--hub-surface);border-radius:12px;padding:12px 14px;cursor:pointer;box-shadow:var(--hub-shadow);transition:border-color .15s ease,transform .15s ease}.home-zone-card:hover{border-color:var(--hub-border);transform:translateY(-1px)}.home-zone-card.is-alarm{border-color:#ff4d4f59}.home-zone-card__swatch{border-radius:4px;min-height:100%}.home-zone-card__body{display:flex;flex-direction:column;gap:4px;min-width:0}.home-zone-card__body strong{font-size:14px;color:var(--hub-text)}.home-zone-card__body small{font-size:12px;color:var(--hub-text-2);line-height:1.35}.home-zone-card__meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.metric-level{display:inline-flex;align-items:center;margin-left:8px;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em;line-height:1.4;vertical-align:middle;white-space:nowrap}.metric-level--low{color:#1677ff;background:#1677ff1f}.metric-level--normal{color:#389e0d;background:#52c41a24}.metric-level--high{color:#d4380d;background:#ff7a1829}.metric-level--alarm{color:#cf1322;background:#ff4d4f29}.device-hero-kpi__level{margin-left:0;font-size:10px;background:#fff3!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)}.device-card__metric-value{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.device-card__metric-level{margin-left:0}.detail-sensor-normal-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 12px;border-radius:8px;background:var(--hub-surface-2, rgba(0, 0, 0, .03));border:1px solid var(--hub-border, rgba(0, 0, 0, .06))}.detail-sensor-normal-row__copy{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:420px}.twin-selected__reading{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.page-breadcrumb{margin-bottom:12px}.hierarchy-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 18px;padding:10px 14px;border-radius:10px;background:var(--hub-surface-2, rgba(0, 0, 0, .03));border:1px solid var(--hub-border, rgba(0, 0, 0, .06));color:var(--hub-text-2);font-size:13px}.hierarchy-strip .anticon{font-size:10px;opacity:.55}.hierarchy-strip__node.is-active{color:var(--hub-text);font-weight:600}.hierarchy-context-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;padding:10px 12px;border-radius:8px;background:#ff7a1814;border:1px solid rgba(255,122,24,.22)}.zones-page__hero{margin-bottom:20px}.zones-page__hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px}.zones-page__hero-stat{min-width:0}.zones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;align-items:stretch}.zone-tile{display:grid;grid-template-columns:5px minmax(0,1fr);gap:0;width:100%;min-height:148px;margin:0;padding:0;text-align:left;cursor:pointer;border:1px solid var(--hub-border-soft);border-radius:14px;background:var(--hub-surface);box-shadow:var(--hub-shadow);overflow:hidden;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.zone-tile:hover{border-color:var(--hub-border);transform:translateY(-2px);box-shadow:0 8px 22px #00000014}.zone-tile:hover .zone-tile__chevron{color:var(--hub-primary);transform:translate(2px)}.zone-tile--alarm{border-color:#ff4d4f66}.zone-tile__accent{display:block;min-height:100%}.zone-tile__body{display:flex;flex-direction:column;gap:14px;padding:14px 14px 12px;min-width:0}.zone-tile__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.zone-tile__titles{display:flex;flex-direction:column;gap:4px;min-width:0}.zone-tile__titles strong{font-size:15px;font-weight:700;color:var(--hub-text);line-height:1.25}.zone-tile__titles span{font-size:12px;color:var(--hub-text-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.zone-tile__chevron{color:var(--hub-text-2);font-size:12px;margin-top:4px;flex-shrink:0;transition:color .15s ease,transform .15s ease}.zone-tile__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--hub-border-soft)}.zone-tile__stat{display:flex;flex-direction:column;gap:2px;min-width:0}.zone-tile__stat em{font-style:normal;font-size:14px;font-weight:700;color:var(--hub-text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zone-tile__stat em .anticon{font-size:11px;margin-right:2px}.zone-tile__stat span{font-size:11px;color:var(--hub-text-2);line-height:1.2}.zone-tile__stat--alarm em{color:var(--hub-error)}.zone-tile__stat--ok em{color:var(--hub-success);font-size:13px}@media (max-width: 1100px){.zones-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 992px){.zones-page__hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.zones-grid{grid-template-columns:1fr}.zones-page__hero-stats{grid-template-columns:1fr 1fr}.zone-tile__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 400px){.zones-page__hero-stats{grid-template-columns:1fr 1fr;gap:10px 12px}}.zone-detail-hero{display:flex;gap:14px;align-items:flex-start;margin-bottom:8px;padding:16px 18px;border-radius:12px;border-left:4px solid #ff7a18;background:var(--hub-surface, #fff);border:1px solid var(--hub-border, rgba(0, 0, 0, .06))}.zone-detail-hero__swatch{width:12px;min-height:64px;border-radius:6px}.zone-detail-hero__title{margin:0 0 4px!important}.zone-detail-hero__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.station-zone-group{margin-bottom:22px}.station-zone-group__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.station-zone-group__title{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;cursor:pointer;font-size:16px;font-weight:700;color:var(--hub-text)}.station-zone-group__swatch{width:10px;height:18px;border-radius:3px}.devices-page__filters--zones{margin-bottom:14px}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body,#root{overflow-x:hidden;max-width:100vw}.page-shell .echarts-for-react{width:100%!important;max-width:100%}.page-shell .ant-card .echarts-for-react{touch-action:pan-y}.detail-sensor-normal-input{width:140px;max-width:100%}.detail-sensor-normal-unit{width:52px!important;text-align:center;pointer-events:none}.twin-view-opt{display:inline-flex;align-items:center;gap:6px}.twin-view-opt__short{display:none}.twin-page__view-toggle{max-width:360px}@media (max-width: 992px){.hamburger-menu{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;height:44px;z-index:1200}.main-content{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);overflow-x:hidden;max-width:100vw}.page-shell,.demo-banner{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(56px,calc(12px + env(safe-area-inset-right)))}.page-shell__title{font-size:22px!important;padding-right:8px;line-height:1.25!important}.page-toolbar-actions-col{width:100%}.page-toolbar-actions-col .ant-space{width:100%;justify-content:stretch!important}.page-toolbar-actions-col .ant-space .ant-btn{flex:1 1 auto}.devices-page__filters{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:4px;scrollbar-width:none}.devices-page__filters::-webkit-scrollbar{display:none}.devices-page__filter-chip{flex-shrink:0}.page-sticky-toolbar .ant-card-body{padding:12px 14px!important}.device-detail-page__toolbar{flex-wrap:wrap;gap:8px}.device-detail-page__toolbar .ant-space{width:100%}.device-detail-hero{padding:16px 14px 14px}.device-detail-hero__name{font-size:22px!important;word-break:break-word}.device-detail-tabs .ant-tabs-nav{margin-bottom:12px}.device-detail-tabs .ant-tabs-nav-wrap{overflow-x:auto}.detail-sensor-normal-row{flex-direction:column;align-items:stretch}.detail-sensor-normal-input{width:100%}.hierarchy-strip{font-size:12px;gap:6px;padding:8px 10px}.hierarchy-context-bar{flex-direction:column;align-items:flex-start}.twin-page__header{flex-direction:column;align-items:stretch;gap:12px}.twin-page__view-toggle{max-width:none;width:100%}.twin-view-opt__full{display:none}.twin-view-opt__short{display:inline}.twin-page__body{grid-template-columns:1fr;min-height:0;gap:12px;overflow:visible;flex:none}.twin-page__viewport,.twin-canvas,.twin-floor2d{min-height:min(48vh,420px);height:min(48vh,420px)}.twin-page__side{height:auto;overflow:visible}.twin-canvas{touch-action:none}.twin-hub-tag{max-width:min(160px,42vw);font-size:10px}.twin-hub-tag.is-compact{max-width:88px}.twin-floor2d__name{max-width:72px;overflow:hidden;text-overflow:ellipsis}.climate-panel__hero{flex-wrap:wrap;align-items:stretch;gap:14px;padding:14px 16px}.climate-panel__hero-stat{min-width:64px}.climate-panel__hero-stat-val{font-size:26px}.climate-station{padding:16px}.alarm-table,.recent-measures-table,.report-data-table{-webkit-overflow-scrolling:touch}.page-shell .ant-segmented{max-width:100%}.page-shell .ant-card-extra{margin-left:0!important;margin-top:8px;width:100%}.page-shell .ant-card-head-wrapper{flex-wrap:wrap}.report-archive__search{min-width:0!important;width:100%}.zone-detail-hero{flex-direction:column}.zone-detail-hero__title{font-size:22px!important;word-break:break-word}.home-zone-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr))}.station-zone-group__head{flex-wrap:wrap}}@media (max-width: 768px){.page-shell{padding-top:12px;padding-bottom:20px}.page-hero-card .ant-statistic-content{font-size:22px!important}.devices-page__hero-stat{min-width:0}.device-card__footer-inner{flex-direction:column;align-items:stretch;gap:8px}.device-card__footer-actions{display:flex;flex-wrap:wrap;gap:6px;width:100%}.device-card__footer-actions .ant-btn{flex:1 1 auto}.device-card__meta{gap:6px 8px}.device-card__meta-chip{white-space:normal;max-width:100%}.chart-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.live-board-toolbar{gap:8px}.camera-feed--large{min-height:220px!important}.report-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ant-picker-panels{flex-direction:column!important}.page-period-controls__block--custom .ant-picker-range{width:100%!important;max-width:none!important}.detail-telemetry-custom-row,.detail-telemetry-custom-row .ant-space{width:100%}}@media (max-width: 640px){.device-detail-hero__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.device-hero-kpi{min-height:64px;padding:10px;gap:8px}.device-hero-kpi__icon{width:32px;height:32px;font-size:14px;border-radius:8px}.device-hero-kpi__value{font-size:15px}.device-hero-kpi__label{font-size:11px}.twin-page__viewport,.twin-canvas,.twin-floor2d{min-height:min(42vh,360px)}.twin-canvas__hint{font-size:10px;padding:4px 8px}.climate-panel__hero-stat-val{font-size:22px}.climate-telemetry-card{grid-template-columns:1fr!important}.home-system-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.lb-widget__kpi-body .ant-statistic-content-value{font-size:clamp(14px,4.2vw,18px)!important}}@media (max-width: 480px){.page-shell__title{font-size:20px!important}.page-shell__lead{font-size:13px}.page-breadcrumb{font-size:12px;overflow-x:auto;white-space:nowrap;max-width:100%;padding-bottom:2px}.device-detail-hero__metrics{grid-template-columns:1fr}.device-hero-kpi__reading{white-space:normal}.chart-stat-grid{grid-template-columns:1fr!important}.devices-page__hero .ant-col{min-width:0}.devices-page__hero-stat{gap:10px}.devices-page__hero-icon{width:38px;height:38px;font-size:17px}.devices-page__hero .ant-statistic-content-value{font-size:22px!important}.home-hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero-stats__item{flex:none;min-width:0}.report-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}.camera-kpi-strip{grid-template-columns:1fr 1fr!important}.login-page__frame{padding:12px}.ac-remote-shell{max-width:100%}}@media (max-width: 400px){.device-hero-kpi__unit{font-size:11px}.camera-kpi-strip{grid-template-columns:1fr!important}.live-board-chrome__title{font-size:14px}}.actuator-panel{display:flex;flex-direction:column;gap:16px}.actuator-panel__hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:12px;background:var(--hub-surface);border:1px solid var(--hub-border-soft)}.actuator-panel__hero-title{margin:0 0 4px!important}.actuator-card__title{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.actuator-card__hint{display:block;margin-bottom:12px}.actuator-card__alert{margin-bottom:12px}.actuator-card__power,.actuator-card__schedule-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;border-radius:10px;background:var(--hub-surface-2, rgba(0, 0, 0, .03));border:1px solid var(--hub-border, rgba(0, 0, 0, .06))}.actuator-card__sub{display:block;font-size:12px;margin-top:2px}.actuator-card__schedule{padding:12px 14px;border-radius:10px;border:1px solid var(--hub-border-soft)}.actuator-card__schedule-fields{margin-top:12px}.actuator-card__days{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:6px}.actuator-card__schedule-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.actuator-card__last{display:block;margin-top:12px;font-size:12px}.actuator-card--on{box-shadow:inset 0 0 0 1px #52c41a47}.device-card__meta-chip--actuator{color:#1677ff}.device-card__meta-chip--actuator-on{color:#389e0d;font-weight:600}@media (max-width: 640px){.actuator-card__power,.actuator-card__schedule-head,.actuator-card__schedule-foot{flex-direction:column;align-items:stretch}}html.demo-app,html.demo-app body,#root{overflow-x:clip;max-width:100%}.page-shell,.page-shell>*,.ant-row,.ant-col,.page-card-grid,.device-card,.zone-tile,.live-board-toolbar,.device-detail-hero,.assistant-page,.twin-page,.report-kpi-strip,.camera-kpi-strip{min-width:0;max-width:100%}.page-shell .ant-card,.page-shell .ant-card-body,.page-shell .ant-table-wrapper,.page-shell .ant-tabs,.page-shell .ant-tabs-content,.page-shell .ant-tabs-tabpane{min-width:0;max-width:100%}.page-shell .ant-table{width:100%}.page-breadcrumb{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.page-breadcrumb ol,.page-breadcrumb .ant-breadcrumb-list{flex-wrap:wrap;row-gap:4px}.hierarchy-strip{max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere}@media (max-width: 1360px) and (min-width: 993px){:root{--hub-page-px: 16px}.home-zone-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr))}.zones-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.page-card-grid>.ant-col{min-width:0}.live-board-toolbar__row--primary,.live-board-toolbar__actions{flex-wrap:wrap}.device-detail-hero__top{gap:12px}.twin-page__header{flex-wrap:wrap}}@media (max-width: 1200px) and (min-width: 993px){.zones-grid,.home-system-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-toolbar-actions-col .ant-space{flex-wrap:wrap}}@media (max-width: 992px){.device-info-grid{grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 10px}.device-info-metric{padding:7px 8px}.device-info-metric__value{font-size:12px}.device-card__header{padding:12px 12px 6px}.device-card__meta{margin:0 12px 10px}.actuator-panel__hero{flex-direction:column;align-items:stretch}.climate-panel__hero{flex-direction:column}.lb-climate-temps{grid-template-columns:repeat(3,minmax(0,1fr))}.lb-climate-temps__item{padding:8px 4px}.lb-climate-temps__value{font-size:clamp(14px,3.6vw,18px);word-break:break-word}.assistant-hero{padding:14px 16px}.assistant-hero__title{font-size:clamp(1.2rem,5vw,1.35rem)}.ant-modal{max-width:calc(100vw - 24px)!important;margin:12px auto!important}.ant-modal .ant-modal-body{max-height:min(70vh,640px);overflow:auto}.ant-drawer-content-wrapper{max-width:100vw!important}.page-shell .ant-picker-dropdown,.ant-picker-dropdown{max-width:calc(100vw - 16px)}}@media (max-width: 768px){.device-info-grid{grid-template-columns:1fr 1fr}.devices-page__hero .ant-row{row-gap:12px!important}.devices-page__hero-stat{align-items:flex-start}.devices-page__hero .ant-statistic-title{white-space:normal}.page-sticky-toolbar .ant-space{width:100%;flex-wrap:wrap}.page-sticky-toolbar .ant-input-affix-wrapper,.page-sticky-toolbar .ant-input{max-width:100%}.live-board-toolbar__actions{grid-template-columns:repeat(4,minmax(0,1fr))}.lb-actuator-widget__power{flex-wrap:wrap}.lb-actuator-widget__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-grid,.cameras-page__grid{grid-template-columns:1fr!important}.report-wizard,.report-preview{max-width:100%}.login-page__frame{min-height:auto}.login-page__form-card{width:100%;max-width:100%}.hierarchy-context-bar .ant-btn{width:100%}}@media (max-width: 640px){.device-info-grid{grid-template-columns:1fr}.lb-climate-temps__value{font-size:15px}.device-detail-hero__actions{width:100%;justify-content:flex-start}.device-detail-hero__actions .ant-btn{flex:1 1 auto}.alerts-page__hero .ant-col{min-width:0}.zone-tile__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.twin-page__side,.twin-page__panel{max-width:100%}}@media (max-width: 480px){.page-shell{padding-right:max(48px,calc(10px + env(safe-area-inset-right)));padding-left:max(10px,env(safe-area-inset-left))}.devices-page__filter-chip{font-size:12px;padding:6px 10px}.hub-status-pill{font-size:10px}.device-card__name{font-size:13px}.live-board-toolbar__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 400px){.hierarchy-strip .anticon{display:inline-flex}.hierarchy-strip{font-size:11px;gap:4px}}html.twin-fs-active,html.twin-fs-active body,html.twin-fs-active #root{height:100%;max-height:100dvh;overflow:hidden;overscroll-behavior:none;background:#0b1018}.twin-fs-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;width:100%;height:100dvh;max-height:100dvh;background:#0b1018;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box;color:#f8fafc}.twin-fs-shell .page-shell.twin-page{flex:1;min-height:0;max-width:none;width:100%;margin:0;padding:0;height:100%;background:transparent}.twin-page--redirect{display:grid;place-items:center;min-height:40vh}.twin-page--fs{overflow:hidden!important;height:100%!important;display:flex;flex-direction:column}.twin-page--fs .twin-page__body{flex:1!important;min-height:0!important;display:flex!important;flex-direction:column!important;grid-template-columns:none!important;overflow:hidden!important;gap:0!important}.twin-page--fs .twin-page__viewport{flex:1;min-height:0!important;height:auto!important;border-radius:0;border:none;box-shadow:none;background:#121820}.twin-page--fs .twin-canvas,.twin-page--fs .twin-floor2d{flex:1;width:100%;min-height:0!important;height:100%!important;border-radius:0}.twin-page--fs .twin-canvas--mobile{touch-action:none;-webkit-user-select:none;user-select:none}.twin-page--mobile .twin-canvas__hint{display:none}.twin-mobile-bar{flex-shrink:0;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;background:#0b1018eb;border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:5}.twin-mobile-bar__back{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0f;color:#f8fafc;font-size:16px;cursor:pointer}.twin-mobile-bar__back:active{background:#ffffff1f}.twin-mobile-bar__titles{min-width:0;display:flex;flex-direction:column;gap:1px}.twin-mobile-bar__titles strong{font-size:15px;font-weight:700;color:#fff;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.twin-mobile-bar__titles span{font-size:11px;color:#f8fafc8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.twin-mobile-bar__toggle.ant-segmented{background:#ffffff0f;padding:2px;border-radius:10px}.twin-mobile-bar__toggle .ant-segmented-item{min-height:32px;border-radius:8px;color:#f8fafcb3}.twin-mobile-bar__toggle .ant-segmented-item-selected{color:#0b1018;background:#ff7a18!important}.twin-mobile-bar__toggle .ant-segmented-item-label{min-height:32px;line-height:32px;padding:0 10px;font-size:12px;font-weight:700}.twin-mobile-coach{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:6;max-width:calc(100% - 24px);padding:8px 14px;border-radius:999px;background:#080c12d1;border:1px solid rgba(255,255,255,.1);color:#f8fafce6;font-size:12px;font-weight:600;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:twin-coach-in .35s ease}@keyframes twin-coach-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.twin-page--station-open .twin-mobile-coach{display:none}.twin-mobile-dock{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#0b101833,#0b1018f5 28%);border-top:1px solid rgba(255,255,255,.08);z-index:5}.twin-page--station-open .twin-mobile-dock{opacity:.35;pointer-events:none}.twin-mobile-zones{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0}.twin-mobile-zones::-webkit-scrollbar{display:none}.twin-mobile-zone-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px 0 8px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#f1f5f9;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.twin-mobile-zone-chip i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.twin-mobile-zone-chip em{font-style:normal;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ff4d4f;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.twin-mobile-zone-chip.is-alarm{border-color:#ff4d4f73;background:#ff4d4f1f}.twin-mobile-zone-chip:active{transform:scale(.97)}.twin-mobile-dock__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:stretch}.twin-mobile-dock__stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:48px;padding:6px 4px;border-radius:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.twin-mobile-dock__stat strong{font-size:16px;font-weight:750;color:#fff;line-height:1.1}.twin-mobile-dock__stat strong.is-alarm{color:#ff7875}.twin-mobile-dock__stat span{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#f8fafc80}.twin-mobile-dock__zones-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:72px;min-height:48px;padding:0 12px;border-radius:12px;border:1px solid rgba(255,122,24,.4);background:#ff7a1829;color:#ffb067;font-size:12px;font-weight:700;cursor:pointer}.twin-mobile-dock__zones-btn:active{background:#ff7a1847}.twin-page__alarm-pill{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ff4d4f;color:#fff;font-size:10px;line-height:1}.twin-page--station-open .twin-hub-tag,.twin-page--station-open .twin-hub-tag--btn{visibility:hidden!important;pointer-events:none!important}.twin-mobile-drawer.ant-drawer .ant-drawer-mask,.twin-mobile-drawer.ant-drawer .ant-drawer-content-wrapper,.twin-mobile-drawer.ant-drawer{z-index:2200!important}.twin-mobile-drawer-root--station .ant-drawer-content-wrapper,.twin-mobile-drawer--station.ant-drawer-bottom>.ant-drawer-content-wrapper{width:100%!important;max-width:100vw!important;left:0!important;right:0!important;margin:0!important}.twin-mobile-drawer .ant-drawer-content{border-radius:18px 18px 0 0;background:#121820;width:100%!important;max-width:100%;overflow-x:hidden;box-sizing:border-box}.twin-mobile-drawer .ant-drawer-header{border-bottom-color:#ffffff14;padding:14px 16px;background:#121820}.twin-mobile-drawer .ant-drawer-title{color:#f8fafc;font-weight:700}.twin-mobile-drawer .ant-drawer-close{color:#ffffffb3}.twin-mobile-drawer .ant-drawer-body{padding:12px 14px calc(16px + env(safe-area-inset-bottom,0px));background:#121820;overflow-x:hidden;box-sizing:border-box}.twin-mobile-drawer--station .ant-drawer-body{padding:0;max-height:min(78dvh,720px);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.twin-mobile-station-sheet{width:100%;max-width:100%;box-sizing:border-box;padding:8px max(12px,env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));overflow-x:hidden}.twin-mobile-station-sheet__handle{width:40px;height:4px;margin:4px auto 10px;border-radius:999px;background:#ffffff38}.twin-mobile-station-sheet .twin-station-card,.twin-station-card--sheet{width:100%!important;max-width:100%!important;min-width:0;margin:0;padding:12px 12px 10px;border-radius:16px;box-shadow:none;max-height:none;overflow-x:hidden;overflow-y:visible;box-sizing:border-box}.twin-station-card--sheet .twin-station-card__header{gap:8px}.twin-station-card--sheet .twin-station-card__sub,.twin-station-card--sheet .twin-station-card__loc{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.twin-station-card--sheet .twin-station-card__pill{max-width:42%;white-space:normal;text-align:center;line-height:1.25;padding:5px 8px}.twin-station-card--sheet .twin-station-card__feed{max-width:100%;overflow-wrap:anywhere}.twin-station-card--sheet .twin-station-card__metrics li{flex-wrap:wrap;align-items:flex-start;gap:6px 10px}.twin-station-card--sheet .twin-station-card__metric-name{flex:1 1 120px}.twin-station-card--sheet .twin-station-card__metrics strong{flex:1 1 auto;justify-content:flex-end;white-space:normal;flex-wrap:wrap;max-width:100%;text-align:right;overflow-wrap:anywhere}.twin-station-card--sheet .twin-station-card__level{transform:none}.twin-station-card--sheet .fuse-cabinet__wires,.twin-station-card--sheet .fuse-cabinet__legend,.twin-station-card--sheet .din-breaker--blank{display:none}.twin-station-card--sheet .fuse-cabinet__frame{padding:10px;gap:8px}.twin-station-card--sheet .fuse-cabinet__cavity{min-height:0;padding:8px 6px;gap:4px}.twin-station-card--sheet .fuse-cabinet__breakers{justify-content:flex-start;flex-wrap:wrap}.twin-station-card--sheet .din-breaker{flex:0 0 auto;width:72px;min-width:64px;max-width:88px;min-height:120px}.twin-station-card--sheet .twin-station-card__footer{min-height:44px;font-size:13px}.twin-mobile-drawer__body{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.twin-mobile-drawer__body .twin-side-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);box-shadow:none}.twin-mobile-drawer__body .twin-side-card__title,.twin-mobile-drawer__body .twin-side-kpis span,.twin-mobile-drawer__body .twin-side-hint,.twin-mobile-drawer__body .twin-beacon-legend,.twin-mobile-drawer__body .twin-zone-row__meta small,.twin-mobile-drawer__body .twin-zone-row__stats{color:#f8fafcb8}.twin-mobile-drawer__body .twin-side-kpis strong,.twin-mobile-drawer__body .twin-zone-row__meta strong{color:#f8fafc}.twin-mobile-drawer__body .twin-zone-row{background:#ffffff0a;border-color:#ffffff1a;min-height:56px}.twin-mobile-drawer__body--zones .twin-zone-list{max-height:none;overflow:visible}.twin-page--mobile .twin-hub-tag{max-width:min(132px,38vw);padding:5px 8px;font-size:10px;border-radius:9px;-webkit-tap-highlight-color:transparent}.twin-page--mobile .twin-hub-tag strong{font-size:11px}.twin-page--mobile .twin-floor2d{padding:12px;box-sizing:border-box}.twin-page--mobile .twin-floor2d__plan{height:100%;min-height:0;border-radius:14px}.twin-page--mobile .twin-floor2d__name{font-size:10px;max-width:64px}.twin-page--mobile .twin-floor2d__marker{min-width:44px;min-height:44px}.twin-mobile-kpi-strip{display:none}@media (max-width: 1100px){.twin-page--fs.page-shell.twin-page{overflow:hidden!important;height:100%!important}.twin-page--fs .twin-page__body{flex:1!important;overflow:hidden!important}.twin-page--fs .twin-page__viewport,.twin-page--fs .twin-canvas,.twin-page--fs .twin-floor2d{min-height:0!important;height:100%!important}}@media (max-width: 480px){.twin-mobile-bar{padding:6px 8px;gap:6px}.twin-mobile-bar__titles strong{font-size:14px}.twin-mobile-dock{padding:6px 8px calc(8px + env(safe-area-inset-bottom,0px));gap:6px}.twin-mobile-dock__stat{min-height:44px}.twin-mobile-dock__zones-btn{min-width:64px;min-height:44px;padding:0 10px}.twin-mobile-station-sheet{padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}.twin-station-card--sheet{padding:10px 10px 8px}.twin-station-card--sheet .twin-station-card__title{font-size:15px}.twin-station-card--sheet .twin-station-card__metrics li{padding:8px}}@media (max-width: 360px){.twin-station-card--sheet .twin-station-card__pill{max-width:38%;font-size:10px;padding:4px 6px}.twin-station-card--sheet .din-breaker{width:60px;min-width:56px;min-height:108px}}@media (orientation: landscape) and (max-height: 500px){.twin-mobile-bar{padding:4px 8px}.twin-mobile-bar__titles span,.twin-mobile-zones{display:none}.twin-mobile-dock{padding:4px 8px calc(6px + env(safe-area-inset-bottom,0px))}.twin-mobile-dock__stat{min-height:40px;flex-direction:row;gap:6px;padding:4px 8px}.twin-mobile-dock__stat span{text-transform:none;font-size:11px}.twin-mobile-coach{display:none}.twin-mobile-drawer--station .ant-drawer-content-wrapper,.twin-mobile-drawer-root--station .ant-drawer-content-wrapper{width:100%!important;max-width:100vw!important}.twin-mobile-drawer--station .ant-drawer-body{max-height:min(70dvh,480px)}}@media (max-width: 992px){:root{--hub-page-px: 16px;--hub-page-py: 14px;--hub-mobile-topbar: 56px}.demo-banner{padding-top:calc(var(--hub-mobile-topbar) + 4px);padding-left:var(--hub-page-px);padding-right:var(--hub-page-px)}.demo-banner__inner{max-width:none;width:100%;box-sizing:border-box}.page-shell{width:100%;max-width:720px;margin-left:auto;margin-right:auto;padding-top:var(--hub-page-py);padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));padding-left:var(--hub-page-px);padding-right:var(--hub-page-px);box-sizing:border-box}.main-content:not(:has(.demo-banner)) .page-shell{padding-top:calc(var(--hub-mobile-topbar) + 8px)}.page-shell__header{margin-bottom:14px;padding-right:52px}.page-shell__title{font-size:clamp(1.35rem,5.2vw,1.65rem)!important;line-height:1.25!important}.page-shell__lead{font-size:13px!important;line-height:1.45!important;max-width:36em}.page-hero-card{margin-top:0;margin-bottom:16px;border-radius:16px!important}.page-hero-card .ant-card-body{padding:16px!important}.home-section-title,.home-section-title--split{margin:4px 0 12px!important;gap:8px}.home-section-title--split{flex-direction:column;align-items:flex-start}.home-section-title__text{margin:0!important;font-size:1.05rem!important}.home-zone-grid{grid-template-columns:1fr;gap:10px;margin-bottom:20px}.home-zone-card{width:100%;padding:14px;border-radius:14px;box-sizing:border-box}.home-system-status-grid{gap:12px;margin-bottom:8px}.home-system-status-card,.home-alarm-summary-card,.detail-card,.page-sticky-toolbar{border-radius:14px!important}.page-sticky-toolbar{margin-bottom:16px}.page-breadcrumb{margin-bottom:12px;padding-right:48px}.devices-page__filters,.page-period-controls .ant-radio-group{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;overscroll-behavior-x:contain}.devices-page__filters::-webkit-scrollbar,.page-period-controls .ant-radio-group::-webkit-scrollbar{display:none}.devices-page__filter-chip{flex:0 0 auto}.page-period-controls .ant-radio-button-wrapper{flex:0 0 auto!important}.page-card-grid .ant-col{display:flex}.page-card-grid .ant-col>.ant-card,.page-card-grid .ant-col>.device-card,.page-card-grid .ant-col>*{width:100%}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-table{min-width:520px}.home-alarm-summary-card .ant-table,.alarm-table{min-width:480px}.page-toolbar-actions-col{width:100%}.page-toolbar-actions-col .ant-space{width:100%;display:flex;flex-wrap:wrap}.hierarchy-context-bar{border-radius:12px;padding:12px;gap:10px}.reports-layout{display:flex;flex-direction:column;gap:16px}.report-kpi-strip,.camera-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.recent-measures-header-meta{width:100%;justify-content:space-between}}@media (max-width: 767px){:root{--hub-page-px: 14px;--hub-page-py: 12px}.page-shell{max-width:560px}.home-hero-stats{gap:8px}.page-hero-card .ant-statistic-title{font-size:11px!important}.page-hero-card .ant-statistic-content-value{font-size:1.15rem!important}.home-zone-card__body strong{font-size:15px}.device-card,.zone-tile{border-radius:14px}.zones-grid{grid-template-columns:1fr!important;gap:12px}.live-board-toolbar{border-radius:12px}.page-sticky-toolbar .ant-input-affix-wrapper,.page-sticky-toolbar .ant-input,.page-sticky-toolbar .ant-select{width:100%;max-width:none}.mb-24{margin-bottom:16px!important}}@media (max-width: 480px){:root{--hub-page-px: 12px}.page-shell{max-width:100%}.home-system-status-card .ant-statistic-title .ant-space{flex-wrap:wrap}.home-alarm-summary__chips{grid-template-columns:1fr 1fr!important}}
