body{padding:0;margin:0}.main-layout{min-height:100vh}.main-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;line-height:56px}.header-logo{font-size:15px;font-weight:800;letter-spacing:1.5px;color:#1677ff;white-space:nowrap;cursor:pointer}.header-primary{min-width:0}.header-nav{flex:1;border-bottom:none!important;line-height:54px;min-width:0;background:transparent!important}.header-search{width:180px}.main-content{overflow:auto;padding:0}.management-page{padding:24px}.page-header{margin-bottom:24px}.page-title{margin:0!important;letter-spacing:.5px}.stats-row{margin-bottom:24px}.management-tabs .ant-tabs-nav{margin-bottom:16px}.stat-card .ant-card-body{padding:20px 24px}.stat-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:600}.stat-value{margin:4px 0 2px!important;line-height:1!important}.stat-sub{font-size:12px}.stat-icon{font-size:22px;opacity:.4;margin-top:4px}.inventory-card .ant-card-body{padding:20px 24px}.inventory-title{font-size:12px;letter-spacing:1.5px;text-transform:uppercase}.status-tag{font-size:11px;font-weight:600;padding:1px 6px;border-radius:3px}.node-location{font-size:11px}.health-progress{width:90px;min-width:90px}.checkin-date{font-size:12px;white-space:nowrap}.sensor-count{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.backup-toolbar{margin-bottom:16px}.backup-path{display:block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.mono-text{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.maintenance-dialog{width:100%;max-height:calc(90vh - 120px)}.maintenance-device-filter{min-width:220px}.maintenance-history-list{display:grid;gap:12px;max-height:min(62vh,640px);overflow-y:auto;padding:2px 4px 4px}.maintenance-history-item{border:1px solid rgba(128,128,128,.18);border-radius:6px;padding:14px 16px}.maintenance-history-title{font-size:14px}.maintenance-device-name{border:1px solid rgba(22,119,255,.24);border-radius:4px;color:#1677ff;font-size:12px;font-weight:600;padding:2px 8px}.maintenance-worker-row{min-height:18px}.maintenance-worker-name,.maintenance-worker-contact{font-size:12px}.maintenance-worker-name{font-weight:600}.maintenance-comment{display:block;margin-top:10px;white-space:pre-line}.maintenance-status-timeline{display:flex;gap:0;margin-top:14px;overflow-x:auto;padding-bottom:2px}.maintenance-status-step{display:grid;grid-template-columns:14px minmax(120px,1fr);min-width:170px;position:relative}.maintenance-status-step:not(:last-child):after{background:#80808038;content:"";height:2px;left:14px;position:absolute;right:0;top:7px}.maintenance-status-node{border-radius:50%;height:14px;position:relative;width:14px;z-index:1}.maintenance-status-content{display:flex;flex-direction:column;gap:2px;padding:0 16px 0 8px}.maintenance-status-label,.maintenance-status-description{font-size:12px}.maintenance-status-tag{border:none;border-radius:4px;font-size:11px;font-weight:600;margin-inline-end:0}.maintenance-status-success .maintenance-status-node,.maintenance-status-tag.maintenance-status-success{background:#52c41a;color:#fff}.maintenance-status-warning .maintenance-status-node,.maintenance-status-tag.maintenance-status-warning{background:#faad14;color:#1f1f1f}.maintenance-status-danger .maintenance-status-node,.maintenance-status-tag.maintenance-status-danger{background:#ff4d4f;color:#fff}.maintenance-status-info .maintenance-status-node,.maintenance-status-tag.maintenance-status-info{background:#1677ff;color:#fff}.maintenance-time{font-size:12px}.update-page{padding:24px;max-width:1180px;margin:0 auto}.update-header{margin-bottom:24px}.update-breadcrumb{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;opacity:.45;font-weight:600}.update-title{margin:2px 0 0!important;letter-spacing:.3px}.update-list-btn{font-size:13px;letter-spacing:.5px}.update-form{display:flex;flex-direction:column;gap:16px}.update-tabs .ant-tabs-nav{margin-bottom:16px}.update-section-card{border-radius:6px!important}.update-section-card .ant-card-body{padding:20px 24px 8px!important}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.section-accent{display:inline-block;width:3px;height:16px;background:#569cd6;border-radius:2px;flex-shrink:0}.section-title{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#569cd6}.update-form .ant-form-item-label>label{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:600;opacity:.65}.update-input{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace!important;font-size:13px!important;border-radius:4px!important}.update-textarea{resize:vertical}.update-input-ip{flex:1}.update-input-port{width:100px}.network-separator{opacity:.4;font-size:16px;flex-shrink:0}.field-icon{color:#569cd6;font-size:13px}.update-select-protocol{flex-shrink:0}.update-input-readonly{cursor:not-allowed!important}.test-btn{flex-shrink:0;font-size:12px;letter-spacing:.5px;font-weight:600;border-radius:4px!important}.update-actions{margin-top:4px;margin-bottom:20px}.cancel-btn{min-width:90px;font-weight:600;border-radius:4px!important}.submit-btn{min-width:120px;font-weight:600;letter-spacing:.5px;border-radius:4px!important}.update-footer-row{margin-top:4px}.footer-card{border-radius:6px!important}.footer-card .ant-card-body{padding:16px 20px!important}.footer-card-icon{font-size:18px;margin-top:2px;flex-shrink:0}.footer-icon-success{color:#52c41a}.footer-card-title{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:700;opacity:.7;display:block;margin-bottom:4px}.footer-card-body{font-size:12px;opacity:.6;line-height:1.6}.footer-analytics-tag{flex-shrink:0;margin-top:2px;border-radius:3px!important;font-weight:700}.threshold-card .ant-card-body{padding-bottom:20px!important}.threshold-toolbar{margin-bottom:16px;flex-wrap:wrap}.threshold-sensor-select{min-width:280px;flex:1}.threshold-alert{margin-bottom:16px}.threshold-table{overflow:hidden}.threshold-metric-key{font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:12px;word-break:break-all}.threshold-number-input{width:100%}@media(max-width:960px){.update-page{padding:16px;max-width:100%}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.monitoring-page{height:calc(100vh - 56px);overflow:hidden;background:#131313}.mon-palette{width:160px;flex-shrink:0;background:#1c1c1c;padding:16px 8px 12px;gap:4px;border-right:1px solid rgba(255,255,255,.06);overflow:hidden}.palette-title{display:block;font-size:9px;font-weight:700;letter-spacing:1px;color:#569cd6!important;text-transform:uppercase;margin-bottom:8px;text-align:center}.palette-section-label{display:block;font-size:8px;font-weight:700;letter-spacing:.8px;color:#ffffff40!important;text-transform:uppercase;margin-bottom:2px;padding:0 4px}.palette-item{padding:5px 6px;border-radius:5px;cursor:grab;transition:background .15s;border:1px solid rgba(255,255,255,.1)}.palette-item:hover{background:#afc6ff14;border-color:#afc6ff33}.palette-item:active{cursor:grabbing}.palette-label{font-size:10px;color:#fff9!important;line-height:1.2}.palette-troidview-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;max-height:260px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.palette-troidview-list::-webkit-scrollbar{width:3px}.palette-troidview-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.palette-troidview-item{padding:5px 6px;border-radius:5px;cursor:grab;transition:background .15s;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.palette-troidview-item:hover{background:#afc6ff14;border-color:#afc6ff33}.palette-troidview-item:active{cursor:grabbing}.palette-troidview-label{font-size:10px;color:#fff9!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.palette-troidview-error{font-size:9px;color:#f5222dbf!important;padding:4px 6px;line-height:1.4}.palette-troidview-empty{font-size:9px;color:#ffffff40!important;padding:4px 6px;font-style:italic}.palette-tv-icon{font-size:13px;color:#4ec9b0!important;flex-shrink:0}.palette-spacer{flex:1}.palette-active-nodes{border-top:1px solid rgba(255,255,255,.08);padding-top:10px;gap:2px}.palette-active-label{font-size:9px;font-weight:600;letter-spacing:.5px;color:#fff6!important;text-transform:uppercase}.palette-active-value{font-family:JetBrains Mono,Courier New,monospace;font-size:18px;font-weight:700;color:#afc6ff!important;line-height:1.2}.palette-active-total{font-size:11px;color:#ffffff59}.mon-canvas-wrapper{background:#1a1e26;overflow:hidden}.mon-toolbar{padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.05);background:#ffffff05;flex-shrink:0;min-height:49px}.mon-toolbar-btn{background:#ffffff0f!important;border-color:#ffffff1f!important;color:#ffffffbf!important;font-size:12px;font-weight:500}.mon-toolbar-btn:hover{background:#afc6ff1f!important;border-color:#afc6ff4d!important;color:#afc6ff!important}.mon-toolbar-btn[disabled]{opacity:.35!important}.mon-site-tools{min-width:0}.mon-interval-select{width:88px}.mon-interval-select .ant-select-selector{background:#ffffff0f!important;border-color:#ffffff1f!important;color:#ffffffc7!important}.mon-interval-select .ant-select-selection-item{color:#ffffffc7!important}.mon-site-select{width:190px}.mon-site-select .ant-select-selector{background:#ffffff0f!important;border-color:#ffffff1f!important;color:#ffffffc7!important}.mon-site-select .ant-select-selection-placeholder{color:#ffffff59!important}.mon-site-select .ant-select-selection-item{color:#ffffffc7!important}.mon-canvas{position:relative;flex:1;min-height:0;overflow:hidden}.mon-canvas .react-flow{background:#1a1e26}.mon-canvas .react-flow__controls{background:#1c2026e6;border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mon-canvas .react-flow__controls-button{background:transparent;border:none;border-top:1px solid rgba(255,255,255,.06);color:#fff9;fill:#fff9;width:28px;height:28px}.mon-canvas .react-flow__controls-button:first-child{border-top:none}.mon-canvas .react-flow__controls-button:hover{background:#afc6ff1a;fill:#afc6ff}.mon-canvas .react-flow__attribution{display:none}.node-handle{width:7px!important;height:7px!important;border:1px solid rgba(255,255,255,.35)!important;background:#4ec9b0!important}.node-handle--source{right:-4px!important}.node-handle--target{left:-4px!important}.sensor-edge .react-flow__edge-path{stroke:#4ec9b08c;stroke-width:1.5}.gateway-edge .react-flow__edge-path{stroke:#faad14ad;stroke-width:1.7}.mon-canvas .react-flow__node-block{z-index:0!important}.mon-canvas .react-flow__node-gateway,.mon-canvas .react-flow__node-troidview,.mon-canvas .react-flow__node-sensor{z-index:10!important}.block-node{width:100%;height:100%;border:1px dashed rgba(86,156,214,.4);border-radius:4px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:6px 8px;box-sizing:border-box;gap:4px}.react-flow__node-block.selected .block-node,.react-flow__node-block:focus .block-node{border-color:#569cd6cc;border-style:solid}.block-node-input{background:transparent;border:none;outline:none;color:#ffffffd9;font-size:11px;font-weight:600;letter-spacing:.3px;width:100%;cursor:text;padding:0}.block-node-input:focus{color:#fff}.block-node-footer{display:flex;align-items:center;gap:4px;align-self:flex-end}.block-node-color-input{width:16px;height:16px;border:1px solid rgba(255,255,255,.2);border-radius:3px;cursor:pointer;padding:0;background:none}.block-node-color-input::-webkit-color-swatch-wrapper{padding:0}.block-node-color-input::-webkit-color-swatch{border:none;border-radius:2px}.troidview-node{background:#14181eeb;border:1px solid rgba(78,201,176,.35);border-radius:5px;padding:7px 10px;display:flex;flex-direction:column;gap:3px;min-width:130px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.react-flow__node-troidview.selected .troidview-node{border-color:#4ec9b0cc}.troidview-node-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.troidview-node-dot--connected{background:#52c41a;box-shadow:0 0 5px #52c41a;animation:indicator-blink 1s ease-in-out infinite}.troidview-node-dot--disconnected{background:#595959}.troidview-node-dot--normal,.troidview-node-dot--online{background:#52c41a;box-shadow:0 0 5px #52c41a}.troidview-node-dot--offline{background:#595959}.troidview-node-dot--error{background:#f5222d;box-shadow:0 0 5px #f5222d}.troidview-node-dot--warning{background:#faad14;box-shadow:0 0 5px #faad14}.troidview-node-dot--unknown{background:#595959}.troidview-node-name{font-size:11px;font-weight:600;color:#ffffffe6!important;white-space:nowrap}.troidview-node-location{font-size:9px;color:#ffffff59!important;padding-left:13px}.troidview-node-id{font-family:JetBrains Mono,monospace;font-size:9px;color:#4ec9b099!important;padding-left:13px}.sensor-node{background:#161a22e6;border:1px solid rgba(175,198,255,.28);border-radius:5px;padding:6px 9px;display:flex;flex-direction:column;gap:2px;min-width:158px;cursor:default;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.react-flow__node-sensor.selected .sensor-node{border-color:#afc6ffb3}.sensor-node-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;animation:indicator-blink 1s ease-in-out infinite}.sensor-node-dot--normal{background:#52c41a;box-shadow:0 0 5px #52c41a}.sensor-node-dot--warning{background:#faad14;box-shadow:0 0 5px #faad14}.sensor-node-dot--error{background:#f5222d;box-shadow:0 0 5px #f5222d}.sensor-node-dot--unknown{background:#afc6ff;box-shadow:0 0 5px #afc6ffcc}@keyframes indicator-blink{0%,to{opacity:1}50%{opacity:.25}}.sensor-node-name{font-size:10px;font-weight:600;color:#ffffffd1!important;white-space:nowrap;max-width:132px;overflow:hidden;text-overflow:ellipsis}.sensor-node-footer{min-width:0}.sensor-node-id{font-family:JetBrains Mono,monospace;font-size:9px;color:#afc6ff8c!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-node-score{flex-shrink:0;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:8px;font-weight:700;line-height:1.4;border:1px solid transparent;color:#ffffffe6;background:#afc6ff1f}.sensor-node-score--good{color:#73d13d;background:#52c41a24;border-color:#52c41a47}.sensor-node-score--fair{color:#ffd666;background:#faad1424;border-color:#faad1447}.sensor-node-score--poor{color:#ff9c6e;background:#fa541c26;border-color:#fa541c4d}.sensor-node-score--critical{color:#ff7875;background:#f5222d26;border-color:#f5222d4d}.sensor-node-score--unknown,.sensor-node-score--unsupported{color:#ffffff75;background:#ffffff0f;border-color:#ffffff1a}.sensor-node-score--stale{opacity:.58}.sensor-node-score-tooltip .ant-typography{color:#ffffffe0!important;font-size:11px}.gateway-node{background:#201c12eb;border:1px solid rgba(250,173,20,.42);border-radius:5px;padding:8px 10px;display:flex;flex-direction:column;gap:3px;min-width:132px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.react-flow__node-gateway.selected .gateway-node{border-color:#faad14d1}.gateway-node-icon{font-size:13px;color:#faad14}.gateway-node-name{font-size:11px;font-weight:700;color:#ffffffe6!important;white-space:nowrap}.gateway-node-sub{font-size:9px;color:#faad1499!important;padding-left:19px}.mon-stream{width:300px;flex-shrink:0;background:#1c1c1c;border-left:1px solid rgba(255,255,255,.06);overflow:hidden}.stream-header{padding:12px 14px 8px;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0}.stream-live-dot{width:7px;height:7px;border-radius:50%;background:#52c41a;box-shadow:0 0 6px #52c41a;flex-shrink:0;animation:pulse-dot 2s ease-in-out infinite}.stream-title{font-size:12px;font-weight:700;letter-spacing:.5px;color:#ffffffd9!important}.stream-sync-label{font-size:9px;font-weight:600;letter-spacing:.5px;color:#ffffff59!important;text-transform:uppercase}.stream-tabs{flex-shrink:0;padding:0 14px}.stream-tabs .ant-tabs-nav{margin-bottom:0!important}.stream-tabs .ant-tabs-tab{font-size:10px!important;font-weight:700!important;letter-spacing:.8px!important;padding:6px 0!important;color:#ffffff59!important}.stream-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:#afc6ff!important}.stream-tabs .ant-tabs-ink-bar{background:#afc6ff!important}.stream-event-list{flex:1;overflow-y:auto;padding:6px 8px;gap:6px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.stream-event-list::-webkit-scrollbar{width:4px}.stream-event-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.event-card{padding:8px 10px;border-radius:6px;border-left:3px solid transparent;background:#252525;gap:3px;cursor:pointer;transition:background .15s;flex-shrink:0}.event-card:hover{background:#2d2d2d}.event-card--error{border-left-color:#f5222d;background:#f5222d29}.event-card--warning{border-left-color:#faad14;background:#faad1429}.event-card--normal{border-left-color:#52c41a;background:#52c41a24}.event-card-header{margin-bottom:2px}.event-level-tag{font-size:9px!important;font-weight:700!important;letter-spacing:.5px!important;padding:0 5px!important;line-height:18px!important;border:none!important}.event-level-tag--error{background:#f5222d33!important;color:#f5222d!important}.event-level-tag--warning{background:#faad1433!important;color:#faad14!important}.event-level-tag--normal{background:#52c41a2e!important;color:#52c41a!important}.event-time{font-family:JetBrains Mono,monospace;font-size:10px;color:#ffffff4d!important}.event-name{font-size:12px;font-weight:600;color:#ffffffd9!important}.event-footer{margin-top:2px}.event-location{font-size:10px;color:#ffffff59!important;display:flex;align-items:center;gap:4px}.event-location-dot{width:4px;height:4px;border-radius:50%;background:currentColor;flex-shrink:0}.event-value{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;max-width:150px;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.event-value--error{color:#f5222d!important}.event-value--warning{color:#faad14!important}.event-value--normal{color:#52c41a!important}.stream-empty{display:block;padding:18px 8px;text-align:center;color:#ffffff47!important;font-size:11px}.stream-footer{flex-shrink:0;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06);background:#0003}.stream-stat-label{font-size:9px;font-weight:600;letter-spacing:.8px;color:#ffffff4d!important;text-transform:uppercase}.stream-stat-value{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700;color:#fffc!important}.stream-stat-value--ok{color:#52c41a!important}:root[data-theme=light] .monitoring-page,.ant-app:not([data-theme=dark]) .monitoring-page{background:#f0f4fa}:root[data-theme=light] .mon-palette,:root[data-theme=light] .mon-stream{background:#f8f9fb;border-color:#00000014}:root[data-theme=light] .mon-canvas-wrapper{background:#e8edf5}:root[data-theme=light] .mon-canvas .react-flow{background:#e8edf5}:root[data-theme=light] .palette-title{color:#1677ff!important}:root[data-theme=light] .palette-section-label{color:#0000004d!important}:root[data-theme=light] .palette-label{color:#00000080!important}:root[data-theme=light] .palette-active-value{color:#1677ff!important}:root[data-theme=light] .palette-active-label{color:#0006!important}:root[data-theme=light] .palette-troidview-label{color:#0009!important}:root[data-theme=light] .palette-troidview-empty{color:#0000004d!important}:root[data-theme=light] .palette-active-total{color:#00000059}:root[data-theme=light] .block-node{border-color:#1677ff59}:root[data-theme=light] .block-node-input{color:#000000d9}:root[data-theme=light] .troidview-node{background:#ffffffeb;border-color:#00968259}:root[data-theme=light] .troidview-node-name{color:#000000d9!important}:root[data-theme=light] .troidview-node-location{color:#0006!important}:root[data-theme=light] .troidview-node-id{color:#00826eb3!important}:root[data-theme=light] .sensor-node{background:#ffffffeb;border-color:#1677ff47}:root[data-theme=light] .sensor-node-name{color:#000000d1!important}:root[data-theme=light] .sensor-node-id{color:#1677ffa6!important}:root[data-theme=light] .sensor-node-score--unknown,:root[data-theme=light] .sensor-node-score--unsupported{color:#00000075;background:#0000000a;border-color:#0000001a}:root[data-theme=light] .gateway-node{background:#ffffffeb;border-color:#be780059}:root[data-theme=light] .gateway-node-name{color:#000000d6!important}:root[data-theme=light] .gateway-node-sub{color:#be7800a6!important}:root[data-theme=light] .stream-title{color:#000c!important}:root[data-theme=light] .stream-sync-label{color:#0006!important}:root[data-theme=light] .event-card{background:#eef1f7}:root[data-theme=light] .event-card:hover{background:#e5eaf5}:root[data-theme=light] .event-card--error{background:#f5222d1f}:root[data-theme=light] .event-card--warning{background:#faad1424}:root[data-theme=light] .event-card--normal{background:#52c41a1f}:root[data-theme=light] .event-name{color:#000c!important}:root[data-theme=light] .event-location{color:#0006!important}:root[data-theme=light] .event-time{color:#0000004d!important}:root[data-theme=light] .stream-footer{background:#00000008;border-color:#00000014}:root[data-theme=light] .stream-stat-label{color:#00000059!important}:root[data-theme=light] .stream-stat-value{color:#000000bf!important}:root[data-theme=light] .mon-toolbar-btn{background:#0000000d!important;border-color:#0000001f!important;color:#000000a6!important}:root[data-theme=light] .mon-interval-select .ant-select-selector{background:#0000000d!important;border-color:#0000001f!important}:root[data-theme=light] .mon-interval-select .ant-select-selection-item{color:#000000a6!important}:root[data-theme=light] .mon-canvas .react-flow__controls{background:#ffffffe6;border-color:#0000001a}:root[data-theme=light] .mon-canvas .react-flow__controls-button{color:#00000080;fill:#00000080;border-color:#0000000f}:root[data-theme=light] .mon-canvas .react-flow__controls-button:hover{background:#1677ff14;fill:#1677ff}:root[data-theme=light] .stream-tabs .ant-tabs-tab{color:#00000059!important}:root[data-theme=light] .stream-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1677ff!important}:root[data-theme=light] .stream-tabs .ant-tabs-ink-bar{background:#1677ff!important}.dashboard-page--dark{min-height:calc(100vh - 56px);padding:20px;color:#dce7f7;background:radial-gradient(circle at 18% 0%,rgba(61,167,255,.12),transparent 32%),linear-gradient(180deg,#08111f,#0b1220 46%,#09101c)}.dashboard-header{margin-bottom:8px;flex-wrap:wrap}.dashboard-title{margin:0!important;color:#f3f7ff!important;font-size:24px!important;line-height:1.2!important}.dashboard-subtitle,.dashboard-refreshed,.dash-muted{color:#8794aa!important}.dashboard-header-actions{flex-wrap:wrap}.dashboard-tabs,.dashboard-tabs .ant-tabs-nav{margin-bottom:12px}.dashboard-tabs .ant-tabs-tab{color:#93a0b5}.dashboard-tabs .ant-tabs-tab-active .ant-tabs-tab-btn{color:#51d0ff!important}.dashboard-tabs .ant-tabs-ink-bar{background:#51d0ff}.dashboard-page--dark,.dashboard-page--dark *,.sensor-insight-modal,.sensor-insight-modal *,.network-detail-modal,.network-detail-modal *{scrollbar-width:thin;scrollbar-color:rgba(81,208,255,.42) rgba(9,16,28,.5)}.dashboard-page--dark *::-webkit-scrollbar,.sensor-insight-modal *::-webkit-scrollbar,.network-detail-modal *::-webkit-scrollbar{width:8px;height:8px}.dashboard-page--dark *::-webkit-scrollbar-track,.sensor-insight-modal *::-webkit-scrollbar-track,.network-detail-modal *::-webkit-scrollbar-track{border-radius:999px;background:#09101c80}.dashboard-page--dark *::-webkit-scrollbar-thumb,.sensor-insight-modal *::-webkit-scrollbar-thumb,.network-detail-modal *::-webkit-scrollbar-thumb{border:2px solid rgba(9,16,28,.5);border-radius:999px;background:linear-gradient(180deg,#51d0ffb8,#48d59785)}.dashboard-page--dark *::-webkit-scrollbar-thumb:hover,.sensor-insight-modal *::-webkit-scrollbar-thumb:hover,.network-detail-modal *::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#51d0fff2,#48d597c7)}.dashboard-page--dark *::-webkit-scrollbar-corner,.sensor-insight-modal *::-webkit-scrollbar-corner,.network-detail-modal *::-webkit-scrollbar-corner{background:transparent}.dash-top-alert{margin-bottom:12px}.dash-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.dash-kpi-card,.dash-panel{border:1px solid rgba(127,144,173,.16);border-radius:8px;background:#0e1726eb;box-shadow:0 14px 40px #00000038}.dash-kpi-card{min-height:132px;padding:14px;overflow:hidden}.dash-kpi-card--blue{border-top-color:#3da7ffbf}.dash-kpi-card--green{border-top-color:#48d597bf}.dash-kpi-card--cyan{border-top-color:#51d0ffbf}.dash-kpi-card--amber{border-top-color:#f6a93bbf}.dash-kpi-label{display:block;margin-bottom:2px;color:#8b98ad!important;font-size:11px;font-weight:700;text-transform:uppercase}.dash-kpi-value{color:#f7fbff;font-size:30px;font-weight:800;line-height:1.15}.dash-kpi-sub{color:#9aa7ba!important;font-size:12px}.dash-kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(157,168,186,.18);border-radius:8px;color:#51d0ff;background:#51d0ff14;font-size:18px;flex-shrink:0}.network-dot-grid{display:grid;grid-template-columns:repeat(12,8px);gap:6px;max-height:56px;margin-top:12px;overflow:auto}.network-dot-grid--compact{grid-template-columns:repeat(4,9px)}.network-dot{display:inline-flex;align-items:center;justify-content:center;width:8px;height:8px;border-radius:50%;background:#8b95a7}.network-dot--online,.network-dot--ONLINE{background:#48d597;box-shadow:0 0 8px #48d59773}.network-dot--warning{background:#f6a93b}.network-dot--offline,.network-dot--error{background:#ff5d6c}.network-dot-panel{display:flex;flex-direction:column;gap:6px}.network-status-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.network-status-chip{padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#8b95a729;color:#dce7f7}.network-status-chip--online{background:#48d59729;color:#48d597}.network-status-chip--warning{background:#f6a93b29;color:#f6a93b}.network-status-chip--offline{background:#ff5d6c29;color:#ff5d6c}.network-status-chip--unknown{background:#8b95a733;color:#8b95a7}.network-detail-trigger{align-self:flex-start;padding:0;height:auto;font-size:12px}.network-detail-list{max-height:360px;display:flex;flex-direction:column;gap:8px}.network-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:8px;background:#09101c99;border:1px solid rgba(127,144,173,.14)}.network-detail-name{color:#f1f7ff!important;font-weight:600}.network-detail-time{color:#8b95a7!important;font-size:12px}.network-detail-status--online{color:#48d597}.network-detail-status--warning{color:#f6a93b}.network-detail-status--offline,.network-detail-status--error{color:#ff5d6c}.network-detail-status--unknown{color:#8b95a7}.dash-panel{padding:14px}.dash-panel-header{margin-bottom:12px}.dash-panel-title-wrap{min-width:0;color:#51d0ff}.dash-panel-title{color:#edf5ff!important;font-size:14px;font-weight:800}.dash-panel-loading{min-height:180px}.dash-ai-panel{margin-bottom:12px}.severity-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid rgba(157,168,186,.16);border-radius:999px;color:#9da8ba;font-size:10px;font-weight:800}.severity-chip--critical{color:#ff5d6c;border-color:#ff5d6c59}.severity-chip--warning{color:#f6a93b;border-color:#f6a93b59}.severity-chip--normal{color:#48d597;border-color:#48d59759}.ai-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:272px;overflow:auto}.ai-equipment-card,.device-card{width:100%;border:1px solid rgba(127,144,173,.16);border-radius:8px;text-align:left;background:#09101cc7;cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease}.ai-equipment-card{min-height:138px;padding:12px}.ai-equipment-card:hover,.device-card:hover,.device-card--selected{border-color:#51d0ffa6;background:#102034f0;transform:translateY(-1px)}.ai-equipment-card--critical{box-shadow:inset 3px 0 #ff5d6c}.ai-equipment-card--warning{box-shadow:inset 3px 0 #f6a93b}.ai-equipment-card--normal{box-shadow:inset 3px 0 #48d597}.ai-equipment-card--unknown{box-shadow:inset 3px 0 #8b95a7}.ai-equipment-name,.equipment-name{color:#f1f7ff!important;font-weight:800}.ai-equipment-summary,.ai-equipment-action,.ai-equipment-sensors,.equipment-location,.event-log-target,.event-log-message,.maintenance-title,.maintenance-target,.sensor-insight-summary,.sensor-insight-action{display:block}.ai-equipment-summary{height:36px;margin-top:10px;color:#d7e1f0!important;font-size:12px;overflow:hidden}.ai-equipment-action{height:32px;margin-top:8px;color:#f6c979!important;font-size:11px;overflow:hidden}.ai-equipment-sensors{margin-top:8px;color:#8b98ad!important;font-size:11px}.severity-pill,.equipment-status{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;font-size:10px;font-weight:900}.severity-pill--critical,.equipment-status--offline,.equipment-status--error{color:#ffb8bf;background:#ff5d6c24}.severity-pill--warning{color:#ffd89b;background:#f6a93b24}.severity-pill--normal,.equipment-status--online{color:#aaf3cf;background:#48d59724}.severity-pill--unknown,.equipment-status--unknown{color:#c5cedd;background:#8b95a724}.dash-main-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr) minmax(260px,1fr);gap:12px;align-items:stretch;min-height:450px;margin-bottom:12px}.dash-main-grid>.dash-panel{min-width:0}.troidview-section-list{display:flex;flex-direction:column;gap:14px;max-height:390px;overflow:auto}.troidview-section{padding:12px;border:1px solid rgba(127,144,173,.16);border-radius:8px;background:#060c1699}.troidview-section--offline{opacity:.74}.troidview-section-header{margin-bottom:10px}.equipment-metrics--inline{display:flex;gap:10px;margin-top:0;color:#9da8ba;font-size:11px}.device-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.device-card{min-height:90px;padding:10px 12px}.equipment-location{min-height:18px;margin-top:3px;color:#8794aa!important;font-size:11px}.equipment-score-line{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.equipment-score-label{color:#8b98ad!important;font-size:11px}.equipment-score-value{color:#f2f8ff!important;font-size:20px;font-weight:900}.equipment-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px;color:#9da8ba;font-size:10px}.side-panel{min-height:0}.dash-filter-select{min-width:88px}.scroll-list{max-height:456px;padding-right:4px;overflow:auto}.event-log-row,.maintenance-row,.sensor-insight-row{padding:10px 0;border-bottom:1px solid rgba(157,168,186,.12)}.event-log-row:last-child,.maintenance-row:last-child,.sensor-insight-row:last-child{border-bottom:0}.event-log-time,.sensor-insight-time{color:#8794aa!important;font-size:10px;white-space:nowrap}.event-log-target,.maintenance-date{color:#edf5ff!important;font-size:12px;font-weight:800}.event-log-message,.maintenance-target{margin-top:3px;color:#9da8ba!important;font-size:11px}.maintenance-title{margin-top:6px;color:#dce7f7!important;font-size:12px}.maintenance-truncated-note{display:block;margin-bottom:8px;color:#f6a93b!important;font-size:11px}.trend-panel{min-height:440px}.trend-empty{display:flex;align-items:center;justify-content:center;min-height:360px;color:#8b98ad;text-align:center}.trend-chart-stack{display:grid;grid-template-rows:1fr 1fr;gap:10px}.trend-chart{height:190px!important;min-width:0;border:1px solid rgba(157,168,186,.12);border-radius:8px;background:#060d1894}.dashboard-refreshed{display:block;margin-top:10px;text-align:right;font-size:11px}.sensor-insight-modal .ant-modal-content,.sensor-insight-modal .ant-modal-header{color:#dce7f7;background:#0d1727}.sensor-insight-modal .ant-modal-title{color:#edf5ff}.network-detail-modal .ant-modal-content,.network-detail-modal .ant-modal-header{color:#dce7f7;background:#0d1727}.network-detail-modal .ant-modal-title{color:#edf5ff}.sensor-insight-list{max-height:520px;overflow:auto}.sensor-insight-id{color:#edf5ff!important;font-weight:900}.sensor-insight-code{color:#8b98ad!important;font-size:11px}.sensor-insight-summary{margin-top:8px;color:#dce7f7!important}.sensor-insight-action{margin-top:5px;color:#f6c979!important;font-size:12px}.dashboard-monitoring-tab,.dashboard-monitoring-tab .monitoring-page{min-height:calc(100vh - 164px)}@media(max-width:1280px){.dash-kpi-grid,.dash-main-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-main-grid>.dash-panel:first-child{grid-column:1 / -1}.device-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:860px){.dashboard-page--dark{padding:14px}.ai-insight-grid,.device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-main-grid{grid-template-columns:1fr}.dash-main-grid>.dash-panel:first-child{grid-column:auto}}@media(max-width:560px){.dash-kpi-grid,.ai-insight-grid,.device-grid{grid-template-columns:1fr}.dashboard-header-actions{width:100%}.trend-panel{min-height:360px}.trend-empty{min-height:260px}.trend-chart{height:170px!important}}.alerts-page{display:flex;flex-direction:column;min-height:calc(100vh - 56px);background:#131313;padding:0}.alerts-content{flex:1;padding:20px 24px 0;overflow-y:auto}.alerts-breadcrumb{font-size:11px;font-weight:600;letter-spacing:.8px;color:#ffffff59!important;text-transform:uppercase;margin-bottom:8px}.alerts-breadcrumb-sep{color:#fff3;margin:0 6px}.alerts-title{font-size:1.5rem!important;font-weight:700!important;color:#ffffffeb!important;margin:0 0 20px!important;letter-spacing:-.3px}.alerts-excel-btn{background:#1677ff!important;border-color:#1677ff!important;color:#fff!important;font-size:12px;font-weight:600;letter-spacing:.3px}.alerts-excel-btn:hover{background:#4096ff!important;border-color:#4096ff!important}.ai-insight-card{background:#1e2433!important;border:1px solid rgba(175,198,255,.15)!important;border-radius:10px!important;margin-bottom:20px;position:relative;overflow:hidden}.ai-insight-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#528dff,#4ec9b0)}.ai-insight-card .ant-card-body{padding:16px 20px!important}.ai-insight-header{margin-bottom:10px}.ai-insight-icon{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,#528dff,#4ec9b0);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.ai-insight-title{font-size:13px!important;font-weight:700!important;color:#ffffffe6!important;margin:0!important}.ai-live-badge{font-size:9px!important;font-weight:700!important;letter-spacing:.8px!important;background:#4ec9b033!important;color:#4ec9b0!important;border:1px solid rgba(78,201,176,.35)!important;padding:2px 8px!important;border-radius:3px!important;text-transform:uppercase}.ai-generated-time{font-family:JetBrains Mono,Courier New,monospace;font-size:10px;color:#fffc!important;letter-spacing:.3px}.ai-insight-text{font-size:13px;line-height:1.65;color:#ffffffa6!important}.ai-conn-badge{font-size:9px;font-weight:700;letter-spacing:.8px;padding:2px 7px;border-radius:3px;text-transform:uppercase}.ai-conn-badge--connecting{background:#afc6ff1f;color:#afc6ff;border:1px solid rgba(175,198,255,.25)}.ai-conn-badge--waiting{background:#faad141f;color:#faad14;border:1px solid rgba(250,173,20,.25)}.ai-conn-badge--live{background:#4ec9b02e;color:#4ec9b0;border:1px solid rgba(78,201,176,.35)}.ai-conn-badge--stale{background:#8c8c8c1f;color:#8c8c8c;border:1px solid rgba(140,140,140,.25)}.ai-conn-badge--error{background:#f5222d24;color:#f5222d;border:1px solid rgba(245,34,45,.3)}.ai-summary-bar{padding:8px 0 4px}.ai-summary-chip{display:inline-flex;align-items:center;gap:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:3px 10px}.ai-summary-chip--critical{background:#f5222d1a;border-color:#f5222d38}.ai-summary-chip--warning{background:#faad141a;border-color:#faad1438}.ai-summary-chip--normal{background:#4ec9b014;border-color:#4ec9b033}.ai-summary-chip-label{font-size:9px;font-weight:700;letter-spacing:.8px;color:#ffffff59;text-transform:uppercase}.ai-summary-chip-val{font-family:JetBrains Mono,Courier New,monospace;font-size:13px;font-weight:700;color:#ffffffd9}.ai-summary-chip--critical .ai-summary-chip-val{color:#f5222d}.ai-summary-chip--warning .ai-summary-chip-val{color:#faad14}.ai-summary-chip--normal .ai-summary-chip-val{color:#4ec9b0}.ai-severity-collapse{background:transparent!important}.ai-severity-collapse .ant-collapse-item{border-radius:6px!important;overflow:hidden}.ai-severity-collapse .ant-collapse-header{padding:8px 14px!important}.ai-severity-collapse .ant-collapse-content{background:transparent!important}.ai-severity-collapse .ant-collapse-content-box{padding:4px 0 6px!important}.ai-group-label{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.ai-group-count{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:700;color:#ffffff8c;background:#ffffff14;padding:1px 7px;border-radius:10px}.ai-group-items{padding:0 4px}.ai-item-row{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.05)}.ai-item-row:last-child{border-bottom:none}.ai-item-sensor{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:700;color:#afc6ff!important}.ai-item-troidview{font-size:11px;color:#fff6!important}.ai-item-summary{font-size:12px;line-height:1.5;color:#ffffffbf!important;margin-top:2px}.ai-item-recommendation{font-size:11px;color:#4ec9b0cc!important;margin-top:2px}.ai-item-timestamp{font-family:JetBrains Mono,Courier New,monospace;font-size:10px;color:#ffffff40!important;white-space:nowrap;flex-shrink:0}.ai-insight-text--error{color:#f5222dcc!important}.ai-insight-actions{display:flex;align-items:center;gap:2px;margin-left:8px}.ai-insight-action-btn{color:var(--color-text-secondary)}:root[data-theme=light] .ai-insight-actions .ant-btn-text{color:#00000073!important}:root[data-theme=light] .ai-insight-actions .ant-btn-text:hover{color:#1677ff!important;background:#1677ff0f!important}.alerts-filter-bar{background:#1c1c1c;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:14px 18px;margin-bottom:16px;gap:16px;flex-wrap:wrap}.filter-group{gap:4px;flex:1;min-width:140px}.filter-group--compact{flex:0 1 150px;min-width:130px}.filter-group--error{flex:0 1 210px;min-width:180px}.filter-label{font-size:9px!important;font-weight:700!important;letter-spacing:1px!important;color:#ffffff59!important;text-transform:uppercase}.filter-select,.filter-input{background:#ffffff0a!important}.filter-time-group{gap:4px;flex:1 1 520px;min-width:420px}.filter-time-buttons{gap:4px}.filter-range-value{font-family:JetBrains Mono,Courier New,monospace;font-size:10px!important;color:#ffffff8c!important}.filter-custom-range{width:360px;background:#ffffff0a!important}.filter-time-btn{font-size:11px!important;font-weight:600!important;height:30px!important;padding:0 10px!important;border-color:#ffffff1f!important;color:#ffffff80!important;background:transparent!important}.filter-time-btn.active,.filter-time-btn:hover{border-color:#528dff!important;color:#afc6ff!important;background:#528dff1a!important}.filter-apply-btn{background:#1677ff!important;border-color:#1677ff!important;color:#fff!important;font-size:12px;font-weight:600;height:30px!important;letter-spacing:.3px}.filter-apply-btn:hover{background:#4096ff!important;border-color:#4096ff!important}.filter-reset-btn{width:30px!important;height:30px!important;background:#ffffff0a!important;border-color:#ffffff1a!important;color:#fff6!important}.filter-reset-btn:hover{color:#afc6ff!important;border-color:#afc6ff4d!important}.alerts-error{margin-bottom:16px}.alerts-table-card{background:#1c1c1c!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:8px!important;margin-bottom:0}.alerts-table-card .ant-card-body{padding:0!important}.alerts-table .ant-table{background:transparent!important}.alerts-table .ant-table-thead>tr>th{background:#242424!important;border-bottom:1px solid rgba(255,255,255,.06)!important;font-size:10px!important;font-weight:700!important;letter-spacing:.8px!important;color:#fff6!important;text-transform:uppercase;padding:10px 16px!important}.alerts-table .ant-table-tbody>tr>td{background:transparent!important;border-bottom:1px solid rgba(255,255,255,.04)!important;padding:10px 16px!important;color:#ffffffbf!important}.alerts-table .ant-table-tbody>tr:hover>td{background:#ffffff08!important}.alerts-table .ant-table-tbody>tr:last-child>td{border-bottom:none!important}.event-troidview-name{font-size:13px;font-weight:600;color:#ffffffe0!important}.event-seq{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:700;color:#afc6ffb8!important}.event-sensor-name{font-family:JetBrains Mono,Courier New,monospace;font-size:12px;color:#fff9!important}.event-error-code{font-family:JetBrains Mono,Courier New,monospace;font-size:11px!important;font-weight:700!important;padding:2px 8px!important;border:none!important;border-radius:3px!important}.event-error-code--err{background:#f5222d2e!important;color:#f5222d!important}.event-error-code--wrn{background:#faad142e!important;color:#faad14!important}.event-error-code--inf{background:#4ec9b02e!important;color:#4ec9b0!important}.event-message{font-size:12px;color:#fff9!important}.event-timestamp{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;color:#fff6!important;white-space:nowrap}.alerts-table-footer{padding:10px 16px;border-top:1px solid rgba(255,255,255,.06)}.alerts-pagination-info{font-size:11px;font-family:JetBrains Mono,Courier New,monospace;color:#ffffff4d!important;letter-spacing:.3px}.alerts-table .ant-pagination{padding:10px 16px;margin:0!important}.alerts-table .ant-pagination-item{background:transparent!important;border-color:#ffffff1a!important}.alerts-table .ant-pagination-item a{color:#ffffff80!important}.alerts-table .ant-pagination-item-active{border-color:#528dff!important;background:#528dff26!important}.alerts-table .ant-pagination-item-active a{color:#afc6ff!important}.alerts-table .ant-pagination-prev button,.alerts-table .ant-pagination-next button{background:transparent!important;border-color:#ffffff1a!important;color:#ffffff80!important}.alerts-table .ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis,.alerts-table .ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis{color:#ffffff4d!important}.alerts-status-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 24px;background:#0f0f0f;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0;margin-top:auto}.status-bar-left{display:flex;align-items:center;gap:16px}.status-system-dot{width:6px;height:6px;border-radius:50%;background:#52c41a;box-shadow:0 0 6px #52c41a;animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.status-label{font-size:10px!important;font-weight:700!important;letter-spacing:.6px!important;color:#ffffff73!important;text-transform:uppercase}.status-separator{color:#ffffff1f;margin:0 4px}.status-item{display:flex;align-items:center;gap:6px}.status-item-key{font-size:9px!important;font-weight:700!important;letter-spacing:.6px!important;color:#ffffff4d!important;text-transform:uppercase}.status-item-val{font-family:JetBrains Mono,Courier New,monospace;font-size:10px!important;font-weight:700!important;color:#4ec9b0!important}.status-copyright{font-size:10px!important;color:#fff3!important;letter-spacing:.3px}:root[data-theme=light] .alerts-page{background:#f5f7fa}:root[data-theme=light] .alerts-breadcrumb{color:#00000059!important}:root[data-theme=light] .alerts-title{color:#000000e0!important}:root[data-theme=light] .ai-insight-card{background:#eef2ff!important;border-color:#1677ff26!important}:root[data-theme=light] .ai-insight-title{color:#000000d9!important}:root[data-theme=light] .ai-insight-text{color:#0009!important}:root[data-theme=light] .ai-generated-time{color:#00000040!important}:root[data-theme=light] .alerts-filter-bar{background:#fff;border-color:#00000014}:root[data-theme=light] .filter-label{color:#0006!important}:root[data-theme=light] .filter-range-value{color:#0000008c!important}:root[data-theme=light] .filter-time-btn{border-color:#0000001f!important;color:#00000080!important}:root[data-theme=light] .filter-time-btn.active,:root[data-theme=light] .filter-time-btn:hover{border-color:#1677ff!important;color:#1677ff!important;background:#1677ff0f!important}:root[data-theme=light] .filter-reset-btn{background:#00000008!important;border-color:#0000001a!important;color:#0006!important}:root[data-theme=light] .alerts-table-card{background:#fff!important;border-color:#00000014!important}:root[data-theme=light] .alerts-table .ant-table-thead>tr>th{background:#fafafa!important;border-bottom-color:#0000000f!important;color:#0006!important}:root[data-theme=light] .alerts-table .ant-table-tbody>tr>td{border-bottom-color:#0000000a!important;color:#000000bf!important}:root[data-theme=light] .alerts-table .ant-table-tbody>tr:hover>td{background:#00000005!important}:root[data-theme=light] .event-troidview-name{color:#000000e0!important}:root[data-theme=light] .event-seq{color:#1677ff!important}:root[data-theme=light] .event-sensor-name{color:#0000008c!important}:root[data-theme=light] .event-message{color:#0009!important}:root[data-theme=light] .event-timestamp{color:#00000059!important}:root[data-theme=light] .alerts-table-footer{border-top-color:#0000000f}:root[data-theme=light] .alerts-pagination-info{color:#0000004d!important}:root[data-theme=light] .alerts-status-bar{background:#f0f2f5;border-top-color:#00000014}:root[data-theme=light] .status-label{color:#00000080!important}:root[data-theme=light] .status-item-key{color:#0000004d!important}:root[data-theme=light] .status-copyright{color:#00000040!important}.analysis-page{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:100%}.analysis-filter-card{flex-shrink:0}.analysis-main-row{flex:1}.analysis-suffix-card{margin-bottom:12px;width:190px}.analysis-options-card{min-height:120px}.analysis-filter-select{width:160px}.analysis-selection-card>.ant-card-body{padding:12px 16px}.analysis-selection-field{min-width:0}.analysis-selection-select{width:170px}.analysis-session-select{width:min(310px,32vw)}.analysis-selection-arrow{margin-bottom:6px;color:color-mix(in srgb,currentColor 35%,transparent);font-size:10px}.analysis-capture-button{margin-bottom:1px}.analysis-workspace-toolbar{margin-bottom:12px}.analysis-summary-workspace{min-width:0}.capture-context-card>.ant-card-body{max-height:min(48vh,500px);overflow:auto}.capture-session-list-item{padding:0 0 8px;border-block-end:0}.capture-session-button{width:100%;padding:10px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:8px;background:transparent;color:inherit;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.capture-session-button:hover{border-color:#1677ff;background:color-mix(in srgb,#1677ff 5%,transparent)}.capture-session-button--selected{border-color:#1677ff;background:color-mix(in srgb,#1677ff 10%,transparent);box-shadow:inset 3px 0 #1677ff}.capture-session-meta{margin-top:7px;font-size:11px}.analysis-capture-workspace{min-height:560px}.capture-artifact-loading,.capture-artifact-preview{min-height:420px}.capture-artifact-loading,.capture-artifact-preview{display:flex;align-items:center;justify-content:center}.capture-artifact-preview{min-width:0;padding:8px;border:1px solid color-mix(in srgb,currentColor 13%,transparent);border-radius:8px;overflow:hidden;background:color-mix(in srgb,currentColor 2%,transparent)}.capture-artifact-preview>div{width:100%}.capture-artifact-image{display:block;max-width:100%;max-height:560px;object-fit:contain}.capture-artifact-strip{display:flex;gap:8px;padding-bottom:4px;overflow-x:auto;scrollbar-width:thin}.capture-artifact-item{flex:0 0 190px;display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:8px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:11px;text-align:left}.capture-artifact-item:hover,.capture-artifact-item--selected{border-color:#1677ff;background:color-mix(in srgb,#1677ff 10%,transparent)}.capture-v2-workspace{min-width:0}.capture-window-list{max-height:260px;overflow:auto;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:8px;background:color-mix(in srgb,currentColor 2%,transparent)}.capture-window-list-item{padding:0!important}.capture-window-button{width:100%;padding:10px 12px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.capture-window-button:hover,.capture-window-button--selected{background:color-mix(in srgb,#1677ff 10%,transparent)}.capture-window-button--selected{box-shadow:inset 3px 0 #1677ff}.capture-window-ns{font-family:JetBrains Mono,Courier New,monospace;font-size:12px}.capture-v2-toolbar{padding:10px;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:8px;background:color-mix(in srgb,currentColor 4%,transparent)}.capture-v2-select{min-width:140px}.capture-v2-state{min-height:360px}.capture-v2-chart{width:100%;height:460px!important;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:8px;background:color-mix(in srgb,currentColor 2%,transparent)}.analysis-chart-select{width:220px}.analysis-option-select,.analysis-option-number{width:150px}.analysis-chart-card{margin-bottom:12px}.analysis-chart-card:last-child{margin-bottom:0}.analysis-chart-card--side{margin-bottom:12px}.filter-label{font-family:Space Grotesk,Inter,sans-serif;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.6}.chart-title{font-size:13px;font-weight:600}.chart-unit{font-family:JetBrains Mono,Courier New,monospace;font-size:10px;opacity:.5}.suffix-label{font-family:JetBrains Mono,Courier New,monospace;font-size:11px}.analysis-suffix-note{display:block;max-width:160px;font-size:11px;line-height:1.35}.analysis-fixed-suffix{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;opacity:.72}.bearing-chart{min-width:0}.spectrogram-chart{min-width:0;--spectrogram-bg: #101722;--spectrogram-surface: #141d2a;--spectrogram-surface-raised: #182233;--spectrogram-border: rgba(175, 198, 255, .16);--spectrogram-border-strong: rgba(82, 156, 255, .62);--spectrogram-text-muted: rgba(230, 237, 247, .58);--spectrogram-text: rgba(245, 248, 252, .88);--spectrogram-accent-bg: rgba(22, 119, 255, .18);--spectrogram-accent-bg-strong: rgba(22, 119, 255, .24)}.spectrogram-chart-card{min-width:0}.spectrogram-chart-card.ant-card{border-color:var(--spectrogram-border);background:var(--spectrogram-bg)}.spectrogram-chart-card>.ant-card-head{border-bottom-color:var(--spectrogram-border)}.spectrogram-chart-card>.ant-card-body{background:var(--spectrogram-bg)}.spectrogram-slot-summary{font-size:12px}.spectrogram-slot-strip{display:flex;gap:8px;margin-top:6px;padding-bottom:8px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(127,162,216,.55) rgba(255,255,255,.05)}.spectrogram-slot{flex:0 0 168px;min-height:58px;padding:8px 10px;border:1px solid var(--spectrogram-border);border-radius:8px;background:var(--spectrogram-surface);color:var(--spectrogram-text);cursor:pointer;font:inherit;text-align:left;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.spectrogram-slot:hover{border-color:var(--spectrogram-border-strong);background:var(--spectrogram-surface-raised)}.spectrogram-slot--active{border-color:var(--spectrogram-border-strong);background:var(--spectrogram-accent-bg);box-shadow:inset 0 0 0 1px #1677ff29}.spectrogram-slot--empty{display:flex;align-items:center}.spectrogram-slot-time,.spectrogram-slot-status{display:block}.spectrogram-slot-time{font-size:12px;font-weight:800}.spectrogram-slot-status{margin-top:4px;color:var(--spectrogram-text-muted);font-size:12px}.spectrogram-snapshot-row{display:flex;gap:12px;min-width:0;padding:2px 0 12px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(127,162,216,.55) rgba(255,255,255,.05);touch-action:pan-x}.spectrogram-snapshot-card{flex:0 0 clamp(360px,34vw,560px);min-width:0;padding:10px;border:1px solid var(--spectrogram-border);border-radius:8px;background:var(--spectrogram-surface);color:var(--spectrogram-text);cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.spectrogram-snapshot-card:hover{border-color:var(--spectrogram-border-strong);background:var(--spectrogram-surface-raised)}.spectrogram-snapshot-card--active{border-color:var(--spectrogram-border-strong);background:var(--spectrogram-accent-bg-strong);box-shadow:inset 0 0 0 1px #1677ff29}.spectrogram-snapshot-header{min-height:34px;margin-bottom:8px}.spectrogram-snapshot-title{min-width:0}.spectrogram-snapshot-time,.spectrogram-snapshot-meta{display:block;line-height:1.25}.spectrogram-snapshot-time{font-size:12px;font-weight:800}.spectrogram-snapshot-meta{color:var(--spectrogram-text-muted);font-size:11px}.spectrogram-snapshot-body,.spectrogram-snapshot-image-frame{display:flex;align-items:center;justify-content:center;height:clamp(240px,34vh,420px);min-width:0;border:1px solid var(--spectrogram-border);border-radius:8px;background:linear-gradient(180deg,#ffffff09,#ffffff04),#0d131d}.spectrogram-snapshot-body{padding:12px}.spectrogram-snapshot-image{display:block;max-width:100%;max-height:100%;object-fit:contain}.spectrogram-slot-strip::-webkit-scrollbar,.spectrogram-snapshot-row::-webkit-scrollbar{height:8px}.spectrogram-slot-strip::-webkit-scrollbar-track,.spectrogram-snapshot-row::-webkit-scrollbar-track{background:#ffffff0d;border-radius:999px}.spectrogram-slot-strip::-webkit-scrollbar-thumb,.spectrogram-snapshot-row::-webkit-scrollbar-thumb{background:#7fa2d88c;border-radius:999px}.bearing-meta{min-height:24px}.bearing-candidate-table{margin-top:4px}.bearing-candidate-table .ant-table{font-size:12px}.bearing-table-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}@media(max-width:1100px){.bearing-table-grid{grid-template-columns:minmax(0,1fr)}.analysis-selection-arrow{display:none}.analysis-session-select{width:250px}}@media(max-width:700px){.analysis-page{padding:10px}.analysis-selection-flow{align-items:stretch}.analysis-selection-field,.analysis-selection-select,.analysis-session-select,.analysis-capture-button{width:100%}.analysis-summary-workspace{flex-direction:column}.analysis-summary-workspace>.ant-col{width:100%}.analysis-suffix-card{width:100%}.capture-artifact-preview,.capture-artifact-loading{min-height:300px}}.settings-page{max-width:920px;padding:32px 24px;margin:0 auto}.settings-loading{min-height:320px}.settings-card{width:100%}.settings-timeout-input{width:220px}.settings-revisions{margin-top:8px}@media(max-width:640px){.settings-page{padding:24px 16px}.settings-timeout-input{width:100%}}.agent-feature-route-loading{min-height:240px}.demo-shell{min-height:100vh}.demo-header{display:flex;align-items:center;gap:18px;padding-inline:24px}.demo-brand{color:#fff;font-weight:700;letter-spacing:.08em;white-space:nowrap}.demo-nav{flex:1;min-width:0}.demo-content{max-width:1500px;width:100%;margin:0 auto;padding:28px}.demo-stack{display:flex;flex-direction:column;gap:20px}.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.demo-chart{height:320px}.demo-chart-tall{height:420px}.demo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.demo-asset-image{max-width:100%;border-radius:8px}.demo-muted{opacity:.72}@media(max-width:850px){.demo-header{flex-wrap:wrap;height:auto;padding:12px}.demo-nav{width:100%;order:3}.demo-content{padding:16px}}
