.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))}:root{color:#1c2430;background:#f4f7f9;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}.shell{min-height:100vh;background:linear-gradient(90deg,rgba(26,100,111,.08),transparent 35%),#f4f7f9}.topbar{display:grid;grid-template-columns:minmax(260px,420px) 1fr auto;gap:18px;align-items:end;padding:18px;border-bottom:1px solid #d9e1e7;background:#fff}.admin-bar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:18px;border-bottom:1px solid #d9e1e7;background:#fff}.admin-bar h1{margin:0;font-size:28px}.admin-subtitle{margin:8px 0 0;color:#596674}.admin-home-user{margin:6px 0 0;color:#596674;font-size:14px;font-weight:700}.landing-panel,.search-panel,.hub-panel{width:min(100% - 32px,960px);margin:28px auto;padding:24px;border:1px solid #d9e1e7;border-radius:8px;background:#fff}.landing-panel{display:grid;gap:16px}.landing-panel h2,.search-panel h2{margin:0;font-size:26px}.landing-panel p{margin:0;max-width:620px;color:#596674;line-height:1.5}.landing-panel button,.hub-panel button,.client-results button{min-height:52px;border:0;border-radius:8px;cursor:pointer}.landing-panel button{width:min(100%,280px);background:#177f6b;color:#fff}.admin-home-actions{display:flex;flex-wrap:wrap;gap:12px}.landing-panel .secondary-admin-button{background:#246a8a}.landing-panel .secondary-admin-button:disabled{background:#93a3af;cursor:not-allowed}.search-panel{display:grid;gap:14px}.search-panel label{color:#596674;font-size:14px}.search-panel input{min-width:0;height:48px;padding:0 12px;border:1px solid #b8c4ce;border-radius:6px;background:#fff}.client-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.client-results button,.hub-panel button{display:grid;gap:6px;padding:14px;text-align:left;border:1px solid #d9e1e7;background:#fff;color:#1c2430}.client-results button:hover,.hub-panel button:hover{border-color:#177f6b}.client-results span,.client-results small,.hub-panel span{color:#596674}.hub-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.hub-panel .mqtt-hub-card{grid-column:3}.hub-panel .secondary-button{grid-column:1 / -1;text-align:center}.mqtt-panel{display:grid;flex:1 1 auto;grid-template-rows:auto auto auto minmax(0,1fr);min-height:0;width:min(100% - 32px,1200px);margin:24px auto 16px;padding:16px;gap:12px;border:1px solid #d9e1e7;border-radius:8px;background:#fff}.mqtt-shell{display:flex;overflow:hidden;flex-direction:column;height:100vh;min-height:100vh}.mqtt-shell .admin-bar{flex:0 0 auto}.mqtt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mqtt-toolbar div:first-child{display:grid;min-width:0;gap:4px}.mqtt-toolbar span{overflow:hidden;color:#596674;font-family:Consolas,Courier New,monospace;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.mqtt-actions{display:inline-flex;align-items:end;flex-wrap:wrap;gap:8px}.mqtt-actions button{min-height:34px;padding:0 12px;border:1px solid #a9bdcb;border-radius:6px;background:#eef3f7;color:#102033;font-weight:700;cursor:pointer}.mqtt-tail-toggle{display:inline-flex;align-items:center;align-self:start;gap:6px;min-height:34px;padding:0 10px;border:1px solid #a9bdcb;border-radius:6px;background:#f6f9fb;color:#102033;font-size:13px;font-weight:700}.mqtt-tail-toggle input{width:16px;height:16px;margin:0}.mqtt-filter-panel{display:grid;gap:4px}.mqtt-filter-field{display:inline-grid;grid-template-columns:auto 160px;align-items:center;gap:6px;color:#2f4658;font-size:13px;font-weight:700}.mqtt-filter-field input,.mqtt-filter-field select{width:160px;height:34px;padding:0 8px;border:1px solid #b8c8d4;border-radius:6px;background:#fff;color:#102033;font:inherit}.mqtt-filter-field span{overflow:visible;color:#2f4658;font-family:inherit;font-size:13px;white-space:nowrap}.mqtt-device-filters{display:flex;flex-wrap:wrap;gap:8px}.mqtt-device-filters label{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:2px 6px;padding:7px 9px;border:1px solid #c9d7e2;border-radius:6px;background:#f7fafc}.mqtt-device-filters input{width:16px;height:16px;margin:0}.mqtt-device-filters span{font-weight:700}.mqtt-device-filters small{grid-column:2;color:#596674;font-family:Consolas,Courier New,monospace}.mqtt-status{padding:8px 10px;border:1px solid #c9d7e2;border-radius:6px;background:#f4f8fb;color:#1d3346;font-weight:700}.mqtt-client-contact{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mqtt-client-contact span{padding:4px 7px;border:1px solid #d4e0e8;border-radius:6px;background:#f5f8fa;color:#1d3346;font-size:13px;font-weight:700}.mqtt-terminal{overflow:auto;min-height:0;margin:0;padding:14px;border:1px solid #1b2b38;border-radius:6px;background:#07131d;color:#d8f7e9;font-family:Consolas,Courier New,monospace;font-size:13px;line-height:1.45;white-space:pre-wrap}.account-admin-shell{overflow-x:hidden;width:100%;background:linear-gradient(90deg,rgba(26,100,111,.08),transparent 35%),#f4f7f9}.account-admin-bar{align-items:start;width:100%}.account-admin-bar .session-box{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.account-admin-bar .session-box span{margin-right:8px}.account-admin-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:16px}.account-admin-status-inline{margin-left:auto;align-self:end}.account-admin-filters label{display:grid;gap:5px;color:#596674;font-size:13px;font-weight:700}.account-admin-ged-actions{display:flex;align-items:flex-end}.account-admin-ged-actions .mini-admin-button{min-height:38px;white-space:nowrap}.account-admin-filters input[type=text],.account-admin-filters input:not([type]){width:min(220px,62vw)}.account-admin-filters input{min-height:38px;padding:0 10px;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#1c2430}.account-admin-check{display:inline-grid;grid-auto-flow:column;align-items:center;min-height:38px;padding:0 10px;border:1px solid #d9e1e7;border-radius:6px;background:#f7fafc}.account-admin-check input{min-height:auto}.account-admin-check strong{display:inline-grid;min-width:22px;min-height:22px;place-items:center;padding:0 6px;border-radius:999px;background:#2f4658;color:#fff;font-size:12px}.account-matrix-section{width:calc(100vw - 20px);max-width:none;margin:22px auto 0;padding:0 10px 16px;box-sizing:border-box;background:linear-gradient(90deg,rgba(26,100,111,.08),transparent 35%),#f4f7f9}.account-preset-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.account-preset-actions span{color:#596674;font-size:13px;font-weight:700}.account-matrix-header{display:flex;flex-wrap:wrap;gap:12px;align-items:end;justify-content:space-between;margin-bottom:12px}.account-matrix-header h2,.account-matrix-header p{margin:0}.account-matrix-header p,.account-matrix-header span{color:#596674;font-size:13px}.account-admin-status{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid #d9e1e7;border-radius:6px;background:#f7fafc;color:#2f4658;font-weight:700}.account-admin-status.loading{color:#596674}.user-management-shell{min-height:100vh}.user-management-panel,.user-management-editor{width:calc(100vw - 40px);margin:12px auto 0;padding:14px;box-sizing:border-box;border:1px solid #d6e0e7;border-radius:8px;background:#fff}.user-management-panel{display:grid;grid-template-columns:minmax(300px,360px) 1fr;align-items:start;gap:14px}.user-management-search-head{display:block}.user-management-search-box{display:grid;gap:10px;grid-template-columns:minmax(0,250px) 68px 38px;align-items:end}.user-management-search-head label{display:grid;gap:6px;color:#2f4658;font-size:13px;font-weight:700}.user-management-search-head input,.user-management-identity input,.user-management-identity select{min-height:38px;padding:0 10px;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#102033;font:inherit}.user-management-create-toggle{position:static;flex:0 0 38px;justify-self:start}.user-management-panel .account-create-toggle.user-management-create-toggle{position:static;right:auto;bottom:auto;width:38px;height:38px;min-height:38px;align-self:end;justify-self:start}.user-management-show-all-button{width:68px;height:38px;min-height:38px;align-self:end;justify-self:start;border:1px solid #8fa5b6;border-radius:6px;background:#8fa3b2;color:#fff;cursor:pointer;font-size:13px;font-weight:800}.user-management-show-all-button:hover{background:#7d95a7;border-color:#7d95a7}.user-management-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:0}.user-management-results p{margin:0;color:#596674;font-weight:700}.user-management-results button{display:grid;gap:4px;padding:10px 12px;border:1px solid #d6e0e7;border-radius:8px;background:#f8fbfd;color:#102033;text-align:left;cursor:pointer}.user-management-results button:hover,.user-management-results button.selected{border-color:#1b8a73;background:#e9f6f2}.user-management-results span,.user-management-results small,.user-management-identity span{color:#2f4658}.user-management-results .user-management-account-type,.user-management-identity .user-management-account-type{font-weight:800}.user-management-results .account-type-user,.user-management-identity .account-type-user{color:#0c6f42}.user-management-results .account-type-admin,.user-management-identity .account-type-admin,.user-management-results .account-type-owner,.user-management-identity .account-type-owner{color:#7a1020}.user-management-type-selector{display:grid;gap:2px;min-width:170px;align-self:end;color:#2f4658;font-size:12px;font-weight:800}.user-management-type-selector select{height:26px;min-height:26px;min-width:170px;padding:0 8px;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#102033;font-size:12px;font-weight:800}.user-management-editor{display:grid;gap:14px}.user-management-identity{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,max-content));align-items:end;gap:8px 18px}.user-management-identity label{display:grid;gap:6px;color:#2f4658;font-size:13px;font-weight:700}.user-management-identity h2{grid-column:1 / -1;margin:0 0 4px}.user-management-identity strong{font-size:18px}.user-management-scope-row{display:flex;flex-wrap:wrap;gap:10px}.user-management-scope-row-compact{gap:6px}.user-management-scope-row-compact .account-admin-check{min-height:26px;padding:0 7px;gap:5px;font-size:12px}.user-management-scope-row-compact .account-admin-check input{width:13px;height:13px;min-height:0}.user-management-actions{display:flex;justify-content:flex-end;gap:6px}.user-management-actions .mini-admin-button{height:26px;min-height:26px;padding:0 10px;font-size:12px}.user-management-rights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.user-management-empty-rights{margin:0;padding:12px;border:1px solid #d6e0e7;border-radius:8px;background:#f8fbfd;color:#596674;font-weight:700}.user-management-rights-block{border:1px solid #d6e0e7;border-radius:8px;overflow:hidden;background:#f8fbfd}.user-management-rights-block h3{margin:0;padding:10px 12px;background:#2f4658;color:#fff;font-size:16px}.user-management-rights-table{width:100%;border-collapse:collapse}.user-management-rights-table th,.user-management-rights-table td{padding:9px 10px;border-top:1px solid #d6e0e7;background:#fff;text-align:left;vertical-align:middle}.user-management-rights-table th:last-child,.user-management-rights-table td:last-child{width:96px;text-align:center}.user-management-rights-table td .permission-description{display:block;margin-top:3px;color:#596674;font-size:12px}.user-card-context-menu{position:fixed;z-index:1200;display:grid;gap:3px;width:150px;padding:6px;border:1px solid #9fb2c1;border-radius:6px;background:#fff;box-shadow:0 10px 24px #1022322e}.user-card-context-menu strong{overflow:hidden;padding:2px 4px 4px;color:#1d3346;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.user-card-context-menu button{min-height:24px;padding:0 7px;border:1px solid #a9bdcb;border-radius:5px;background:#f7fafc;color:#1d3346;font-size:12px;font-weight:700;text-align:left;cursor:pointer}.user-card-context-menu button:hover{background:#e5eef4}.user-card-context-menu button:disabled{background:#eef2f6;color:#8a97a3;cursor:not-allowed;opacity:.76}.user-card-context-menu button.danger{border-color:#f0aeb8;color:#b21d35}.user-card-context-menu button.danger:disabled{border-color:#d3dce4;color:#8a97a3}.user-management-modal-overlay{position:fixed;z-index:1250;inset:0;display:flex;align-items:center;justify-content:center;background:#1424346b}.user-management-modal{display:grid;gap:10px;width:min(420px,calc(100vw - 32px));padding:12px;border:1px solid #9fb2c1;border-radius:8px;background:#fff;box-shadow:0 16px 32px #10223238}.user-management-modal header,.user-management-modal footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-management-modal header button{width:26px;height:26px;border:1px solid #a9bdcb;border-radius:5px;background:#f7fafc;font-weight:800;cursor:pointer}.user-management-modal label{display:grid;gap:4px;color:#2f4658;font-size:13px;font-weight:700}.user-management-modal input,.user-management-modal select{min-height:34px;padding:0 9px;border:1px solid #b8c4ce;border-radius:6px;background:#fff}.user-management-modal-summary{display:grid;gap:3px;padding:8px;border:1px solid #d6e0e7;border-radius:6px;background:#f7fafc}.account-matrix-scroll{width:100%;display:flex;justify-content:center;align-items:flex-start;overflow:auto;max-height:calc(100vh - 210px);border:1px solid #d9e1e7;border-radius:8px;background:linear-gradient(90deg,rgba(26,100,111,.08),transparent 35%),#f4f7f9;box-shadow:0 10px 24px #1a2a3a14}.account-matrix-scroll::-webkit-scrollbar-track{background:#f4f7f9}.account-matrix-table{width:max-content;min-width:0;border-collapse:separate;border-spacing:0}.account-matrix-table th,.account-matrix-table td{min-width:108px;padding:8px;border-right:1px solid #e3e9ee;border-bottom:1px solid #e3e9ee;background:#fff;text-align:center;vertical-align:middle;font-size:13px}.account-matrix-table thead th{position:sticky;top:0;z-index:3;background:#2f4658;color:#fff;font-size:12px;line-height:1.25}.account-matrix-table thead th.permission-header-cell{min-width:38px;width:38px;max-width:38px;height:164px;padding:0;vertical-align:bottom;text-align:center}.account-matrix-table td.permission-cell,.account-matrix-table td.permission-empty-cell{min-width:38px;width:38px;max-width:38px;padding:6px 2px}.account-matrix-table thead th.state-header-cell{min-width:38px;width:38px;max-width:38px}.account-matrix-table td.state-cell{min-width:38px;width:38px;max-width:38px;padding:6px 2px}.permission-header-label{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);text-orientation:mixed;font-size:13px;font-weight:700;line-height:1.1;letter-spacing:0;margin-bottom:6px;max-height:150px;white-space:nowrap}.account-matrix-table thead th.device-permission-header{background:#d98abd;color:#4d2140}.account-matrix-table thead th.graph-permission-header{background:#177f6b;color:#fff}.account-matrix-table thead th.ged-permission-header{background:#b7dfcd;color:#1f4d3f}.account-matrix-table .sticky-account{position:sticky;left:0;z-index:2;min-width:210px;max-width:210px;text-align:left;box-shadow:1px 0 #d9e1e7}.sticky-account-header{position:sticky}.sticky-account-header-label{display:inline-block;padding-right:54px}.account-create-toggle{position:absolute;right:4px;bottom:4px;width:42px;height:42px;border:1px solid #d21f78;border-radius:8px;background:#ec2a87;box-shadow:inset 0 -4px #c7186a;color:#fff;font-size:34px;line-height:1;font-weight:700;cursor:pointer}.account-create-toggle.open{background:#c7186a;box-shadow:inset 0 -4px #8f0f4b}.user-management-search-box>.account-create-toggle.user-management-create-toggle{position:static;right:auto;bottom:auto;align-self:end;justify-self:start}.account-matrix-table thead .sticky-account{z-index:4}.account-matrix-table thead .sticky-account,.account-matrix-table thead .sticky-account span,.account-matrix-table thead .sticky-account strong,.account-matrix-table thead .sticky-account .sticky-account-header-label{color:#fff}.account-matrix-table tbody .sticky-account{background:#f7fafc}.account-matrix-table th.status-column-header,.account-matrix-table td.status-column-cell{min-width:72px;width:72px}.account-matrix-table tbody tr:hover td,.account-matrix-table tbody tr:hover .sticky-account,.account-row-selected td,.account-row-selected .sticky-account{background:#eef6f3}.account-row-disabled td,.account-row-disabled .sticky-account{background:#fbecef}.account-row-disabled:hover td,.account-row-disabled:hover .sticky-account{background:#f8e2e7}.account-matrix-table .sticky-account strong,.account-matrix-table .sticky-account span{display:block;overflow-wrap:anywhere}.account-matrix-table .sticky-account strong{font-size:13px}.account-matrix-table .sticky-account span{margin-top:4px;color:#596674;font-size:12px;font-weight:500}.client-scope-detail{display:block;margin-top:4px;color:#596674;font-size:12px}.account-profile-chip{display:inline-grid;min-height:28px;align-items:center;padding:0 9px;border-radius:6px;background:#edf2f6;color:#243241;font-size:12px;font-weight:800}.account-profile-chip.admin_owner{background:#e7f4ef;color:#177f6b}.account-profile-chip.technician{background:#e6f0f5;color:#246a8a}.account-profile-chip.client_user{background:#f4eef5;color:#7b426f}.account-profile-chip.readonly_support{background:#f5f2e8;color:#766224}.account-status-chip{display:inline-grid;min-height:28px;align-items:center;padding:0 10px;border-radius:6px;background:#eef3f7;color:#2f4658;font-size:12px;font-weight:800}.account-status-chip.disabled{background:#f8ecee;color:#b44456}.account-row-row-actions{display:grid;grid-template-columns:repeat(4,max-content);gap:0;align-items:center;justify-content:flex-start;min-width:0}.account-row-editor-actions{display:grid;gap:6px;min-width:250px}.account-row-row-actions input[type=password]{width:100%;min-width:0;min-height:34px;padding:0 8px;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#1c2430}.account-row-editor-meta{display:grid;gap:6px;width:100%}.account-row-editor-meta input[type=text],.account-row-editor-meta input:not([type]),.account-row-editor-meta textarea{width:100%}.account-row-editor-meta textarea{min-height:74px;resize:vertical;font-family:inherit;line-height:1.25}.account-row-editor-scope{display:block;color:#596674;font-size:12px;line-height:1.35;text-align:left}.account-editor-row .sticky-account strong{display:block;margin-bottom:8px}.account-editor-row td,.account-editor-row .sticky-account{background:#f9fbfc}.account-editor-row input,.account-editor-row select{width:100%;min-height:34px;padding:0 8px;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#1c2430;font:inherit}.approval-chip{display:inline-grid;min-height:28px;align-items:center;padding:0 10px;border-radius:6px;font-size:12px;font-weight:800}.approval-chip.pending{background:#f5f1df;color:#7a641f}.approval-chip.approved{background:#e7f4ef;color:#177f6b}.approval-chip.rejected{background:#f8ecee;color:#b44456}.password-flag{display:inline-block;margin-top:6px;color:#b44456;font-size:11px;font-weight:800}.password-flag.reset-pending{color:#7a641f}.password-flag.reset-approved{color:#177f6b}.password-flag.reset-rejected{color:#b44456}.inline-check{justify-content:flex-start;min-height:30px;padding:4px 8px;white-space:nowrap}.compact-check{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;white-space:normal;text-align:left}.compact-check input[type=checkbox]{width:15px;height:15px;margin:0;flex:0 0 15px}.compact-check span,.compact-check{font-size:12px;line-height:1.25}.permission-empty-cell{color:#8b99a5;font-weight:700}.mini-admin-button{min-height:20px;height:20px;min-width:0;padding:0 5px;border:1px solid #b8c4ce;border-radius:2px;background:#fff;color:#2f4658;font:inherit;font-size:10px;line-height:1;font-weight:700;cursor:pointer;white-space:nowrap;margin:0}.mini-admin-button:hover:not(:disabled){border-color:#246a8a;color:#246a8a}.mini-admin-button.danger{border-color:#b4445657;color:#b44456}.mini-admin-button.reactivate{border-color:#177f6b57;color:#177f6b}.mini-admin-button:disabled{opacity:.56;cursor:not-allowed}.permission-toggle{display:inline-grid;place-items:center;width:34px;height:26px;line-height:1;cursor:pointer}.permission-toggle-all{display:inline-flex;width:auto;height:26px;align-items:center;gap:6px}.permission-toggle-all-label{color:#0f2030;font-style:normal;font-weight:700;font-size:13px}.permission-toggle input{position:absolute;opacity:0;pointer-events:none}.permission-toggle>span{display:grid;width:34px;height:26px;place-items:center;border:1px solid #b8c4ce;border-radius:6px;background:#fff;margin:0;color:inherit;font-size:0;box-sizing:border-box}.permission-toggle:hover>span{border-color:#6f8291;background:#e3ebf0}.permission-toggle>span:before{content:"";display:block;width:13px;height:7px;border-left:3px solid transparent;border-bottom:3px solid transparent;transform:translateY(-1px) rotate(-45deg);box-sizing:border-box}.permission-toggle input:checked+span{border-color:#177f6b;background:#177f6b}.permission-tone-device input:checked+span{border-color:#d98abd;background:#d98abd}.permission-tone-graph input:checked+span{border-color:#177f6b;background:#177f6b}.permission-tone-default input:checked+span{border-color:#2f4658;background:#2f4658}.permission-tone-ged input:checked+span{border-color:#b7dfcd;background:#b7dfcd}.permission-toggle input:checked+span:before{border-left-color:#fff;border-bottom-color:#fff}.permission-toggle>span.saving{border-color:#246a8a;background:#e6f0f5}.permission-toggle input:disabled+span{opacity:.78;cursor:not-allowed}.state-pill{display:inline-grid;width:34px;height:26px;align-items:center;justify-items:center;border:1px solid #b8c4ce;border-radius:6px;background:#fff;color:#2f4658;font-size:11px;font-weight:800}.state-pill.ok{border-color:#177f6b;background:#177f6b;color:#fff}.state-pill.off{border-color:#b44456;background:#b44456;color:#fff}.empty-matrix{height:90px;color:#596674;font-weight:700}.login-shell{display:grid;min-height:100vh;place-items:center;padding:18px;background:linear-gradient(90deg,rgba(26,100,111,.08),transparent 38%),#f4f7f9}.login-panel{width:min(100%,410px);padding:28px;border:1px solid #d9e1e7;border-radius:8px;background:#fff;box-shadow:0 14px 34px #1a2a3a1f}.login-kicker{margin:0 0 8px;color:#596674}.login-panel h1{margin:0 0 22px;font-size:28px}.login-form{display:grid;gap:10px}.login-form label{color:#596674;font-size:14px}.login-form input{min-width:0;height:44px;padding:0 12px;border:1px solid #b8c4ce;border-radius:6px;background:#fff}.login-form button,.secondary-button,.session-box button{display:inline-grid;place-items:center;height:44px;border:0;border-radius:6px;cursor:pointer;text-decoration:none}.login-form button{margin-top:8px;background:#177f6b;color:#fff}.secondary-button{width:100%;margin-top:12px;background:#e8eef2;color:#1c2430}.login-form button:disabled,.session-box button:disabled{background:#7a8c96;cursor:not-allowed}.login-note,.login-message{margin:12px 0 0;color:#596674}.login-message{font-weight:700}.client-form label,.client-summary span{display:block;margin-bottom:8px;color:#596674;font-size:14px}.client-entry{display:grid;grid-template-columns:1fr auto;gap:10px}.client-entry input{min-width:0;height:44px;padding:0 12px;border:1px solid #b8c4ce;border-radius:6px;background:#fff}.client-entry button,.context-menu button{height:44px;border:0;border-radius:6px;background:#177f6b;color:#fff;cursor:pointer}.client-entry button{padding:0 18px}.client-entry button:disabled{background:#7a8c96;cursor:wait}.client-summary strong{display:block;color:#243241}.session-box{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.session-box span{flex-basis:100%;color:#596674;font-size:14px;text-align:right}.session-box small{max-width:220px;color:#596674;font-size:12px;text-align:right}.session-box button{padding:0 14px;background:#2f4658;color:#fff}.workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:0;height:calc(100vh - 90px)}.device-list,.device-side{overflow:auto;padding:18px;background:#fff}.device-list{border-right:1px solid #d9e1e7}.device-side{display:grid;grid-template-rows:auto minmax(0,1fr);gap:0;border-left:1px solid #d9e1e7}.device-list h1,.device-panel-body h2{margin:0 0 16px;font-size:22px}.list-device{display:grid;width:100%;min-height:68px;margin-bottom:10px;padding:10px;text-align:left;border:1px solid #d9e1e7;border-left-width:6px;border-radius:8px;background:#fff;color:#202b36;cursor:pointer}.list-device.online{border-left-color:#177f6b}.list-device.offline{border-left-color:#b94040}.list-device span{font-weight:700}.list-device small{color:#657383}.flow-area{min-width:0;min-height:420px}.device-node{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:4px 10px;width:245px;min-height:86px;padding:12px;border:2px solid #9baab5;border-radius:8px;background:#fff;box-shadow:0 8px 18px #1a2a3a21;color:#182430;text-align:left;cursor:pointer}.device-node.online{border-color:#177f6b}.device-node.offline{border-color:#b94040}.device-icon{display:grid;grid-row:span 2;width:42px;height:42px;place-items:center;border-radius:8px;background:#e5f1ed;color:#177f6b;font-weight:800}.device-copy{min-width:0}.device-copy strong,.device-copy small,.device-status{display:block;overflow-wrap:anywhere}.device-copy small{color:#607080}.device-status{color:#425160;font-size:13px}.device-identity{display:grid;align-content:center;min-height:96px;padding-bottom:16px;border-bottom:1px solid #d9e1e7}.device-identity.empty{color:#657383}.device-identity p,.device-identity strong{margin:0;overflow-wrap:anywhere}.device-identity p{color:#182430;font-size:22px;font-weight:800}.device-identity strong{margin-top:7px;color:#566678;font-size:16px}.device-panel-body{min-height:0;overflow:auto;padding-top:16px}.device-panel-section{display:grid;gap:10px}.compact-device-facts{display:grid;gap:6px}.compact-device-facts dt{color:#657383;font-size:13px}.compact-device-facts dd{margin:0 0 12px;font-weight:700;overflow-wrap:anywhere}.panel-note{margin:0;color:#596674;font-size:13px;line-height:1.45}.link-quality{display:inline-grid;min-height:28px;align-items:center;padding:0 10px;border-radius:6px;color:#fff;font-weight:800}.link-quality.excellent{background:#177f6b}.link-quality.strong{background:#246a8a}.link-quality.medium{background:#8a6a24}.link-quality.poor{background:#b94040}.link-quality.unknown{background:#596674}.logs-section{min-height:0}.device-log-list{display:grid;gap:8px;max-height:calc(100vh - 300px);overflow:auto;margin:0;padding:0;list-style:none}.device-log-list li{display:grid;gap:4px;padding:9px;border:1px solid #d9e1e7;border-radius:8px;background:#f7fafc}.device-log-list time{color:#657383;font-size:12px}.device-log-list strong,.device-log-list span{overflow-wrap:anywhere}.device-log-list strong{color:#1c4f69;font-size:13px}.device-log-list span{color:#202b36;font-size:13px}.device-actions{display:grid;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid #d9e1e7}.danger-button{display:inline-grid;place-items:center;min-height:44px;border:0;border-radius:6px;background:#b94040;color:#fff;font-weight:800;cursor:pointer}.secondary-action-button{display:inline-grid;min-height:42px;align-items:center;justify-content:center;border:0;border-radius:6px;background:#246a8a;color:#fff;font-weight:800;cursor:pointer}.secondary-action-button.danger-soft-action{margin-top:8px;background:#b94040}.device-action-message{margin:0;color:#596674;font-size:13px;font-weight:700;overflow-wrap:anywhere}.context-menu{position:fixed;z-index:20;display:grid;width:220px;gap:6px;padding:10px;border:1px solid #bcc8d2;border-radius:8px;background:#fff;box-shadow:0 16px 32px #141e2838}.context-menu strong{padding:4px 4px 8px;color:#2b3846;overflow-wrap:anywhere}.context-menu button{width:100%;text-align:left;padding:0 10px;background:#246a8a}.context-menu button.active{background:#177f6b}.context-menu .danger-menu-button{background:#b94040}.react-flow__minimap{border-radius:8px}.data-shell{min-height:100vh;background:#9cbfff}.data-bar{position:sticky;top:0;z-index:5;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:9px 16px 10px;background:#ffffffc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.data-heading{display:grid;min-width:0;gap:5px}.data-update{overflow:hidden;margin:0;padding-left:7px;color:#42606f;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.client-admin-summary{display:flex;min-width:0;flex-wrap:wrap;gap:5px 6px}.readonly-admin-field{display:inline-flex;min-width:0;max-width:260px;align-items:baseline;gap:5px;padding:3px 7px;border:1px solid rgba(123,143,160,.26);border-radius:6px;background:#ffffff94}.readonly-admin-field span{color:#596674;font-size:11px;white-space:nowrap}.readonly-admin-field strong{overflow:hidden;color:#1c2430;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.data-bar .session-box{display:flex;align-items:center;justify-content:flex-end;gap:6px}.data-bar .session-box span{max-width:180px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.data-bar .session-box button{height:36px;padding:0 11px}.gauge-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,333px));justify-content:center;align-items:stretch;gap:28px;width:100%;max-width:1810px;margin:0 auto;padding:34px 20px 38px}.gauge-board-message{display:flex;justify-content:flex-start;max-width:900px;color:#27445a;font-weight:700}.gauge-card,.legacy-gauge-card,.tank-card{position:relative;min-height:238px}.legacy-gauge-card{--legacy-scale: .74;display:grid;width:calc(450px * var(--legacy-scale));height:calc(450px * var(--legacy-scale));max-width:none;place-items:center;justify-self:center;overflow:visible}.legacy-gauge-frame{position:relative;width:450px;height:450px;border:10px solid #eeeeee;border-radius:250px;background:khaki;box-shadow:0 0 25px gray;overflow:hidden;transform:scale(var(--legacy-scale));transform-origin:center}.legacy-gauge-card.dark .legacy-gauge-frame{background:gray}.legacy-gauge-frame canvas{position:absolute;left:0;top:0;width:450px;height:360px}.legacy-gauge-icon{position:absolute;left:150px;top:115px;width:150px;height:150px;max-width:none;object-fit:contain;border-radius:50%}.legacy-gauge-value{position:absolute;left:0;top:318px;width:100%;color:#4b54e6;font-size:30px;line-height:1.26;text-align:center;white-space:nowrap}.legacy-gauge-card.dark .legacy-gauge-value{top:318px}.modern-gauge-card{position:relative;display:grid;gap:8px;width:100%;max-width:333px;min-height:333px;padding:16px 16px 14px;border:1px solid rgba(109,129,151,.3);border-radius:8px;background:linear-gradient(150deg,#ffffffdb,#ffffff9e),#edf4f8;box-shadow:0 14px 26px #2f4a692e;overflow:hidden}.modern-gauge-card:before{content:"";position:absolute;inset:0;border-top:4px solid var(--gauge-accent);pointer-events:none}.modern-gauge-heading{display:flex;gap:10px;align-items:baseline;justify-content:space-between;color:#1c2430}.modern-gauge-heading span{font-size:17px;font-weight:800}.modern-gauge-heading strong{color:var(--gauge-accent);font-size:20px;white-space:nowrap}.modern-gauge-svg{display:block;width:100%;height:auto;margin-top:2px}.modern-gauge-track,.modern-gauge-progress{fill:none;stroke-width:16;stroke-linecap:round}.modern-gauge-track{stroke:#38475821}.modern-gauge-progress{transition:d .25s ease}.modern-gauge-tick{stroke:#38475857;stroke-width:2;stroke-linecap:round}.modern-gauge-center{fill:#fffffff0}.modern-gauge-icon{opacity:.95}.modern-gauge-icon-text{fill:#4267c7;font-size:19px;font-weight:900;text-anchor:middle;dominant-baseline:middle}.modern-gauge-needle{stroke:#273241;stroke-width:3;stroke-linecap:round}.modern-gauge-pin{fill:var(--gauge-accent);stroke:#273241;stroke-width:2}.modern-gauge-value{fill:#2731c7;font-size:14px;font-weight:800;text-anchor:middle}.modern-gauge-unit{fill:#2731c7;font-size:11px;font-weight:700;text-anchor:middle}.modern-gauge-scale{display:flex;justify-content:space-between;padding:0 18px;color:#596674;font-size:13px}.modern-gauge-more{position:absolute;right:16px;bottom:14px;display:grid;width:44px;height:34px;place-items:center;border:1px solid rgba(39,50,65,.24);border-radius:8px;background:var(--gauge-accent-soft);color:#1c2430;font-size:18px;font-weight:800;cursor:pointer}.modern-gauge-more:hover{border-color:#1c2430;background:#1c2430;color:#fff}.gauge-card{display:grid;justify-items:center;align-content:center;width:100%;max-width:330px;aspect-ratio:1.26;border:7px solid rgba(255,255,255,.88);border-radius:50%;background:#eee788;box-shadow:0 10px 20px #2a45683d;overflow:visible}.gauge-card.dark{background:radial-gradient(circle at center,#8d8d8a 0 52%,transparent 53%),conic-gradient(from 220deg,#2d35d4,#3d31c8 72deg,#59d54b 112deg,#f2df4f 150deg,#e95e6a 205deg,#777 206deg 360deg);color:#f5f5f5}.gauge-face{position:relative;width:76%;aspect-ratio:1;border-radius:50%}.gauge-scale{position:absolute;inset:13%;border:3px solid rgba(80,84,95,.48);border-right-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-45deg)}.gauge-needle{position:absolute;left:50%;bottom:50%;width:36%;height:3px;transform-origin:left center;background:#767676;clip-path:polygon(0 50%,100% 0,86% 50%,100% 100%)}.gauge-card.dark .gauge-needle{background:#f11c1c}.gauge-center{position:absolute;inset:31%;display:grid;place-items:center;align-content:center;border-radius:50%;background:#fffff5e6;color:#e3a109;text-align:center}.gauge-center:before{content:"";width:48px;height:31px;margin-bottom:2px;border-radius:999px 999px 18px 18px;background:radial-gradient(circle at 50% 55%,#ffc300 0 34%,transparent 35%),repeating-linear-gradient(90deg,transparent 0 10px,#0aa7c4 11px 15px,transparent 16px 22px)}.gauge-card.dark .gauge-center:before{width:40px;height:32px;background:linear-gradient(90deg,transparent 0 18%,#777 19% 23%,transparent 24% 39%,#777 40% 44%,transparent 45% 100%),radial-gradient(circle at 50% 72%,#f19d21 0 14%,#777 15% 19%,transparent 20%)}.gauge-center strong{color:#2631c7;font-size:18px}.gauge-center span{color:#2631c7;font-size:12px}.gauge-card h3{margin:-16px 0 2px;color:#4b54e6;font-size:22px;text-align:center}.gauge-card p{margin:0;color:#4b54e6;font-size:20px;font-weight:800}.gauge-more{position:absolute;right:36px;bottom:4px;display:grid;width:42px;height:42px;place-items:center;border:3px solid #333;border-radius:50%;background:#eee788;color:#2631c7;font-size:20px;cursor:pointer}.gauge-more:hover{background:#1c2430;color:#dfe8ff}.tank-card{position:relative;display:grid;width:100%;max-width:333px;min-height:333px;padding:16px 16px 14px;border:1px solid rgba(109,129,151,.3);border-radius:8px;background:linear-gradient(150deg,#ffffffdb,#ffffff9e),#edf4f8;box-shadow:0 14px 26px #2f4a692e;overflow:hidden}.tank-card:before{content:"";position:absolute;inset:0;border-top:4px solid #2e83c6;pointer-events:none}.tank-panel{display:grid;gap:8px}.tank-title{display:flex;justify-content:space-between;align-items:baseline;color:#1c2430}.tank-title span{font-size:17px;font-weight:800}.tank-title strong{color:#206da8;font-size:20px}.tank-rect{position:relative;width:min(100%,270px);aspect-ratio:3.85 / 1.9;margin:28px auto 8px;border:2px solid #6f8298;background:linear-gradient(180deg,#ffffffdb,#f4f9ff9e),#f8fcffb8;box-shadow:0 12px 20px #2f4a6924}.tank-water{position:absolute;left:0;right:0;bottom:0;min-height:2px;background:linear-gradient(180deg,#6ebeffdb,#1c76d6b8);border-top:2px solid rgba(15,90,180,.48)}.tank-water-line{position:absolute;left:0;right:0;border-top:1px dashed rgba(32,109,168,.62)}.tank-level-label{position:absolute;left:50%;transform:translate(-50%);padding:4px 8px;border-radius:8px;background:#ffffffc2;color:#206da8;font-size:14px;font-weight:800}.tank-dimensions{display:flex;justify-content:space-between;gap:6px;color:#596674;font-size:12px}.tank-info{margin:2px 58px 0 0;color:#206da8;font-size:13px;font-weight:800}.tank-more{--gauge-accent-soft: #dff1ff;right:16px;bottom:14px}.data-shell.phone-layout .data-bar{position:static;grid-template-columns:1fr;gap:8px;padding:9px 12px}.data-shell.phone-layout .client-admin-summary{gap:5px}.data-shell.phone-layout .readonly-admin-field{max-width:100%;padding:3px 6px}.data-shell.phone-layout .readonly-admin-field strong{font-size:12px}.data-shell.phone-layout .data-update{white-space:normal}.data-shell.phone-layout .session-box{flex-wrap:wrap;justify-content:flex-start}.data-shell.phone-layout .session-box span{max-width:100%;flex-basis:100%}.data-shell.phone-layout .session-box button{height:34px;padding:0 10px}.data-shell.phone-layout .gauge-board{grid-template-columns:1fr;width:min(100%,390px);gap:22px;padding:18px 12px 30px}.data-shell.phone-layout .gauge-card,.data-shell.phone-layout .tank-card{width:min(100%,310px);max-width:310px;min-height:224px;justify-self:center}.data-shell.phone-layout .legacy-gauge-card{--legacy-scale: .67;width:calc(450px * var(--legacy-scale));height:calc(450px * var(--legacy-scale));max-width:none;min-height:auto;justify-self:center}.data-shell.phone-layout .legacy-gauge-frame{border-width:10px}.data-shell.phone-layout .legacy-gauge-value{font-size:30px}.data-shell.phone-layout .modern-gauge-card{width:min(100%,330px);max-width:330px;min-height:314px;padding:14px;justify-self:center}.data-shell.phone-layout .modern-gauge-heading{align-items:start;flex-direction:column;gap:3px}.data-shell.phone-layout .modern-gauge-scale{padding-inline:16px}.data-shell.phone-layout .modern-gauge-more{right:14px;bottom:12px}.data-shell.phone-layout .gauge-card{border-width:6px;box-shadow:0 8px 16px #2a456838}.data-shell.phone-layout .gauge-face{width:72%}.data-shell.phone-layout .gauge-center:before{width:42px;height:27px}.data-shell.phone-layout .gauge-card.dark .gauge-center:before{width:36px;height:29px}.data-shell.phone-layout .gauge-card h3{margin-top:-12px;font-size:20px}.data-shell.phone-layout .gauge-card p{font-size:18px}.data-shell.phone-layout .gauge-more{right:28px;bottom:2px;width:46px;height:46px;font-size:22px}.data-shell.phone-layout .tank-rect{width:min(100%,252px);margin-top:22px}.data-shell.phone-layout .tank-info{margin-right:50px;font-size:12px}@media(max-width:920px){.topbar,.admin-bar{grid-template-columns:1fr}.client-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-panel{grid-template-columns:1fr}.hub-panel .mqtt-hub-card{grid-column:auto}.gauge-board{grid-template-columns:1fr;gap:28px;padding-top:26px}.gauge-card,.tank-card{width:min(100%,330px);justify-self:center}.session-box{justify-items:start}.session-box small{text-align:left}.workspace{grid-template-columns:1fr;height:auto}.device-list,.device-side{border:0}.device-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;border-bottom:1px solid #d9e1e7}.device-list h1,.device-list p{grid-column:1 / -1}.list-device{margin-bottom:0}.flow-area{height:54vh;min-height:360px}.device-side{border-top:1px solid #d9e1e7}}@media(max-width:560px){.topbar{padding:14px}.client-entry{grid-template-columns:1fr}.client-entry button{width:100%}.client-admin-summary{grid-template-columns:1fr}.device-list,.device-side{padding:14px}.flow-area{height:46vh}.gauge-board{padding-inline:14px}.gauge-card{min-height:224px}.gauge-card h3{font-size:20px}.context-menu{left:12px!important;right:12px;top:auto!important;bottom:12px;width:auto}}@media(max-width:760px){.context-menu{left:max(8px,env(safe-area-inset-left))!important;right:max(8px,env(safe-area-inset-right));top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(2,minmax(0,1fr));width:auto;max-height:min(42dvh,260px);gap:6px;padding:8px;overflow-y:auto}.context-menu strong{grid-column:1 / -1;padding:2px 4px 4px;font-size:13px}.context-menu button{min-height:36px;height:auto;padding:8px 6px;font-size:clamp(12px,3.2vw,14px);line-height:1.08;text-align:center;white-space:normal}}.profile-admin-tabs{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.profile-admin-tabs button{background:#e8eef2;border:1px solid #b8c6d0;border-radius:6px;color:#24384a;cursor:pointer;font-weight:700;padding:9px 14px}.profile-admin-tabs button.active{background:#1b8a73;border-color:#1b8a73;color:#fff}.profile-admin-tab-static{align-items:center;background:#1b8a73;border:1px solid #1b8a73;border-radius:6px;color:#fff;display:inline-grid;font-weight:700;min-height:38px;padding:0 14px}.profile-admin-ged-inline{display:inline-flex;align-items:center;gap:6px}.profile-admin-ged-inline input{min-height:36px;width:92px;padding:0 8px;border:1px solid #b8c6d0;border-radius:6px;background:#fff;color:#24384a;font-weight:700;text-transform:uppercase}.profile-admin-ged-inline .profile-admin-ged-name{width:210px;text-transform:none;font-weight:600}.profile-admin-ged-inline select{min-height:36px;padding:0 8px;border:1px solid #b8c6d0;border-radius:6px;background:#fff;color:#24384a;font-weight:700}.ged-clients-panel{width:calc(100vw - 40px);margin:10px auto 0;padding:10px 14px;background:#fff;border:1px solid #d6e0e7;border-radius:8px;box-sizing:border-box}.ged-clients-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.ged-clients-panel-head h2{margin:0;font-size:22px}.ged-clients-panel-head span{color:#596674;font-size:12px;font-weight:700}.ged-clients-error{margin:8px 0 0;color:#b3264b;font-weight:700}.ged-clients-table-wrap{margin-top:10px;overflow-x:auto}.ged-clients-table{width:100%;min-width:760px;border-collapse:collapse}.ged-clients-table th,.ged-clients-table td{border:1px solid #d6e0e7;padding:6px 8px;font-size:13px;text-align:left;vertical-align:middle}.ged-clients-table th{background:#314b61;color:#fff;font-weight:700}.ged-tree-shell{display:flex;flex-direction:column;height:100vh;min-height:100vh;overflow:hidden}.ged-page-title{font-size:18px;line-height:1.2}.ged-admin-heading{align-items:end;display:flex;flex-wrap:wrap;gap:8px}.ged-admin-heading .ged-page-title{margin-right:14px}.ged-client-search-field{color:#102033;display:grid;font-size:13px;font-weight:500;gap:2px}.ged-client-search-field input{border:1px solid #b6c6d3;border-radius:6px;color:#102033;font:inherit;height:32px;min-width:172px;padding:0 8px}.ged-tree-panel{display:flex;flex:1 1 auto;flex-direction:column;width:calc(100vw - 40px);margin:12px auto 0;min-height:0;padding:12px 14px;border:1px solid #d6e0e7;border-radius:8px;background:#fff;box-sizing:border-box;overflow:hidden}.ged-tree-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.ged-tree-toolbar label{display:grid;gap:4px;color:#2b3f52;font-size:13px;font-weight:700}.ged-tree-toolbar select{min-height:38px;min-width:320px;border:1px solid #b6c6d3;border-radius:6px;padding:0 10px;font-size:14px;color:#24384a;background:#fff}.ged-secondary-client-row{display:inline-flex;align-items:center;gap:6px}.ged-secondary-client-row select{min-width:320px}.ged-tree-container{margin-top:0;min-height:360px;border:1px solid #d8e2e9;border-radius:8px;background:#f7fafc;padding:10px;overflow:auto;display:inline-block;width:fit-content;max-width:100%}.ged-tree-workspace{flex:1 1 auto;margin-top:10px;min-height:360px;border:1px solid #d8e2e9;border-radius:8px;background:#f7fafc;padding:10px;display:grid;grid-template-columns:var(--ged-tree-pane-width, 390px) 18px minmax(0,1fr);gap:0;justify-content:start;align-items:stretch;overflow:hidden}.ged-tree-pane{min-height:0}.ged-tree-pane-left{display:flex;justify-content:flex-start;min-width:0;overflow:hidden}.ged-tree-pane-left .ged-tree-container{display:block;width:100%;min-width:0;max-height:100%;overflow:auto}.ged-tree-pane-left .ged-tree-root{min-width:max-content}.ged-tree-folder summary,.ged-tree-node-hitbox{white-space:nowrap}.ged-tree-resize-handle{align-self:stretch;border-radius:6px;cursor:col-resize;min-width:18px;position:relative;-webkit-user-select:none;user-select:none}.ged-tree-resize-handle:before{background:#c8d5df;border-radius:999px;bottom:0;content:"";left:8px;position:absolute;top:0;width:2px}.ged-tree-resize-handle:hover,.ged-tree-resize-handle:focus-visible{background:#e9f0f5;outline:none}.ged-tree-resize-handle:hover:before,.ged-tree-resize-handle:focus-visible:before{background:#314b61}.ged-tree-pane-right{display:flex;min-width:0;overflow:hidden}.ged-preview-container{height:100%;width:100%;min-height:0;border:1px solid #d8e2e9;border-radius:8px;background:#fff;padding:10px;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.ged-preview-head{flex:0 0 auto;display:flex;align-items:center;gap:8px;min-height:28px}.ged-preview-content{flex:1 1 auto;min-height:0;overflow:auto}.ged-preview-content>.ged-pdf-preview,.ged-preview-content>.ged-text-preview,.ged-preview-content>.ged-url-preview,.ged-preview-content>.ged-preview-office{min-height:100%;overflow:visible}.ged-preview-title{color:#24384a;font-size:14px;font-weight:700;overflow-wrap:anywhere;flex:1 1 160px;min-width:0}.ged-preview-search-controls{align-items:center;display:inline-flex;flex:0 1 360px;gap:6px;min-width:220px}.ged-preview-search-controls input{border:1px solid #cbd8e3;border-radius:6px;color:#122438;flex:1 1 170px;font-size:13px;min-height:28px;min-width:150px;padding:5px 9px}.ged-preview-search-controls .mini-admin-button{min-height:28px;padding:0 9px}.ged-preview-search-status{color:#4b5b6b;flex:0 0 auto;font-size:12px;font-weight:800;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ged-preview-zoom-controls{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.ged-preview-zoom-controls .mini-admin-button{min-height:28px;min-width:28px;padding:0 8px}.ged-preview-zoom-controls span{color:#24384a;font-size:12px;font-weight:800;min-width:42px;text-align:center}.ged-preview-onlyoffice-button{margin-left:auto;flex-shrink:0;min-width:28px;width:28px;height:28px;min-height:28px;padding:0;border-radius:6px;display:inline-grid;place-items:center}.ged-edit-icon{width:14px;height:14px;display:inline-block;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='m2.695 14.762-1.262 3.155a.5.5 0 0 0 .65.65l3.155-1.262a4 4 0 0 0 1.343-.886L17.5 5.501a2.121 2.121 0 0 0-3-3L3.58 13.419a4 4 0 0 0-.885 1.343Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='m2.695 14.762-1.262 3.155a.5.5 0 0 0 .65.65l3.155-1.262a4 4 0 0 0 1.343-.886L17.5 5.501a2.121 2.121 0 0 0-3-3L3.58 13.419a4 4 0 0 0-.885 1.343Z'/%3E%3C/svg%3E") center / contain no-repeat}.ged-preview-actions{display:flex;flex-wrap:wrap;gap:8px}.ged-preview-frame{width:100%;min-height:840px;border:1px solid #d6e0e7;border-radius:6px;background:#fff}.ged-preview-onlyoffice-frame{min-height:1040px}.ged-pdf-preview{width:100%;min-height:840px;border:1px solid #d6e0e7;border-radius:6px;background:#2f2f2f;padding:12px;box-sizing:border-box;display:grid;gap:14px;align-content:start;overflow:auto;-webkit-user-select:none;user-select:none}.ged-pdf-preview-page{display:grid;justify-items:center;gap:6px}.ged-pdf-preview-page-inner{display:inline-block;line-height:0;position:relative}.ged-pdf-preview-page-label{justify-self:center;color:#fff;background:#0000004d;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:800}.ged-pdf-preview-canvas{max-width:none;height:auto;background:#fff;box-shadow:0 2px 12px #00000047}.ged-pdf-search-highlight{background:#cf0;border-radius:2px;box-shadow:0 0 0 1px #78aa0059;mix-blend-mode:multiply;opacity:.82;pointer-events:none;position:absolute}.ged-text-preview{width:100%;min-height:840px;border:1px solid #d6e0e7;border-radius:6px;background:#fff;box-sizing:border-box;overflow:auto;-webkit-user-select:text;user-select:text}.ged-text-preview-content{margin:0;padding:14px;color:#122438;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;font-family:Consolas,Liberation Mono,monospace}.ged-url-preview{width:100%;min-height:840px;height:100%;border:1px solid #d6e0e7;border-radius:6px;background:#fff;box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;overflow:hidden}.ged-url-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;border-bottom:1px solid #e6edf3;padding:8px 10px}.ged-url-preview-address{min-width:0;color:#24384a;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ged-url-preview-open{flex:0 0 auto}.ged-url-preview-frame{width:100%;height:100%;min-height:760px;border:0;background:#fff}.ged-url-preview-note{margin:0;padding:0 10px 10px;color:#5c6b78;font-size:12px;font-weight:700}.ged-preview-search-hit{background:#cf0;border-radius:2px;box-shadow:0 0 0 1px #78aa0059;color:inherit;padding:0 1px}@media(max-width:1180px){.ged-preview-head{align-items:flex-start;flex-wrap:wrap}.ged-preview-search-controls{flex:1 1 100%;order:2}.ged-preview-search-status{flex:1 1 auto;order:3}.ged-preview-zoom-controls{margin-left:auto}}.ged-preview-image{max-width:100%;max-height:1040px;border:1px solid #d6e0e7;border-radius:6px;object-fit:contain;background:#fff}.ged-preview-office{border:1px solid #d6e0e7;border-radius:6px;background:#fff;min-height:840px;overflow:auto;padding:12px}.ged-preview-office-content{color:#24384a;font-size:14px;line-height:1.45}.ged-preview-office-content table{border-collapse:collapse;width:100%}.ged-preview-office-content th,.ged-preview-office-content td{border:1px solid #d6e0e7;padding:4px 6px;text-align:left;vertical-align:top}.ged-tree-message{margin:0;color:#4b5b6b;font-weight:600}.ged-hidden-input{display:none}.ged-tree-root,.ged-tree-root ul{list-style:none;margin:0;padding-left:36px}.ged-tree-root{padding-left:0}.ged-tree-folder details{margin:2px 0}.ged-tree-folder summary{cursor:pointer;color:#21364a;font-weight:700;-webkit-user-select:none;user-select:none;outline:none}.ged-tree-folder summary.drag-over,.ged-tree-node-hitbox.drag-over{background:#dfe9f3;border-radius:4px}.ged-tree-folder summary.selected{background:#dfe9f3;border-radius:4px}.ged-tree-node-hitbox{background:transparent;border:0;color:inherit;cursor:default;display:inline-flex;align-items:center;gap:10px;font:inherit;margin:0;padding:0;position:relative;text-align:left}.ged-tree-node-hitbox.selected{background:#dfe9f3;border-radius:4px}.ged-doc-icon{display:inline-block;min-width:30px;padding:1px 6px;margin-right:6px;border:1px solid #a9bac9;border-radius:4px;color:#30495f;font-size:10px;font-weight:800;text-align:center;vertical-align:middle;background:#ecf3f8}.ged-doc-icon.is-preview{min-width:34px;font-size:11px}.ged-doc-icon-image{border:0;background:transparent;box-shadow:none;min-width:24px;width:24px;height:24px;padding:0;margin-right:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.ged-doc-icon-image svg{width:100%;height:100%;display:block}.ged-doc-icon-image.is-preview{min-width:34px;width:34px;height:34px}.ged-doc-icon-link{border:0;background:transparent;box-shadow:none;min-width:24px;width:24px;height:24px;padding:0;margin-right:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.ged-doc-icon-link svg{width:100%;height:100%;display:block}.ged-doc-icon-link.is-preview{min-width:34px;width:34px;height:34px}.ged-doc-icon-office{border:0;color:#fff;font-weight:800;min-width:24px;width:24px;height:18px;line-height:1;border-radius:4px;padding:0;margin-right:0;display:inline-grid;place-items:center;box-shadow:inset 0 0 0 1px #0000001f}.ged-doc-icon-office.is-preview{min-width:28px;width:28px;height:22px;border-radius:5px}.ged-doc-icon-office-letter{font-size:10px;font-weight:900;color:#fff}.ged-doc-icon-office.is-preview .ged-doc-icon-office-letter{font-size:12px}.ged-doc-icon-office-word{background:linear-gradient(135deg,#2b579a,#23508f)}.ged-doc-icon-office-excel{background:linear-gradient(135deg,#217346,#195e38)}.ged-doc-icon-office-powerpoint{background:linear-gradient(135deg,#b7472a,#a13d24)}.ged-tree-folder summary::marker{color:#38526a}.ged-tree-node-label{font-size:13px}.ged-urbanisme-panel{color:#21364a;display:flex;flex-direction:column;gap:14px;padding:18px}.ged-urbanisme-panel-head{border-bottom:1px solid #d6e1eb;padding-bottom:12px}.ged-urbanisme-kicker{color:#587084;display:block;font-size:11px;font-weight:800;letter-spacing:0;margin-bottom:6px;text-transform:uppercase}.ged-urbanisme-panel h2{font-size:21px;margin:0 0 8px}.ged-urbanisme-panel h3{font-size:14px;margin:0 0 8px}.ged-urbanisme-panel p{color:#526577;font-size:13px;line-height:1.45;margin:0}.ged-urbanisme-notice{background:#eaf5f1;border:1px solid #c9e2d9;border-radius:6px;display:grid;gap:5px;padding:12px}.ged-urbanisme-notice strong{color:#224537;font-size:13px}.ged-urbanisme-notice span{color:#345546;font-size:13px;line-height:1.4}.ged-urbanisme-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.ged-urbanisme-block{border:1px solid #d6e1eb;border-radius:6px;padding:12px}.ged-urbanisme-block ul{display:grid;gap:7px;list-style:none;margin:0;padding:0}.ged-urbanisme-block li{color:#33495d;font-size:13px;line-height:1.35;padding-left:14px;position:relative}.ged-urbanisme-block li:before{background:#68a48f;border-radius:50%;content:"";height:5px;left:0;position:absolute;top:7px;width:5px}.ged-urbanisme-path{border-top:1px solid #d6e1eb;color:#66798b;font-size:12px;padding-top:10px}@media(max-width:900px){.ged-urbanisme-grid{grid-template-columns:1fr}}.ged-tree-leaf{padding:2px 0;position:relative}.ged-tree-leaf:before{content:""}.ged-tree-leaf .ged-tree-node-hitbox{display:inline-block;line-height:20px;min-height:20px;padding-left:40px}.ged-tree-leaf .ged-doc-icon{left:0;line-height:16px;margin-right:0;min-width:24px;padding:0 4px;position:absolute;top:1px}.ged-tree-leaf .ged-doc-icon-image,.ged-tree-leaf .ged-doc-icon-link{left:0;min-width:24px;width:24px;height:24px;padding:0;position:absolute;top:-1px}.ged-tree-empty{color:#68798a;font-size:12px;font-style:italic;margin:3px 0 3px 14px}.ged-node-context-menu{position:fixed;z-index:70;min-width:150px;background:#fff;border:1px solid #b9c9d6;border-radius:6px;box-shadow:0 10px 24px #0e1e302e;padding:4px;display:grid;gap:2px}.ged-node-context-menu strong{color:#1d3348;font-size:12px;font-weight:800;line-height:1.1;padding:2px 4px 3px}.ged-node-context-menu button{min-height:22px;border:1px solid #9eb2c3;border-radius:4px;background:#f7fafc;color:#1f354a;cursor:pointer;font-size:12px;font-weight:700;line-height:1;padding:2px 8px;text-align:left}.ged-node-context-menu button:hover{background:#e9f0f6}.ged-context-submenu{position:relative}.ged-context-submenu>.ged-context-parent-button{width:100%}.ged-context-parent-button:after{content:"›";float:right}.ged-context-submenu-panel{background:#fff;border:1px solid #b9c9d6;border-radius:4px;box-shadow:0 10px 24px #0e1e302e;display:none;gap:2px;left:calc(100% + 3px);min-width:110px;padding:4px;position:absolute;top:0;z-index:72}.ged-context-submenu:hover .ged-context-submenu-panel,.ged-context-submenu:focus-within .ged-context-submenu-panel,.ged-context-submenu.is-open .ged-context-submenu-panel{display:grid}.ged-node-context-menu button:disabled{background:#eef2f6;color:#8a97a3;cursor:not-allowed}.ged-node-context-menu button.danger{border-color:#d59ca5;color:#b1253f}.ged-node-context-menu button.danger:hover{background:#f9ecef}.ged-camera-modal-overlay{align-items:center;background:#142434b8;display:flex;inset:0;justify-content:center;position:fixed;z-index:85}.ged-camera-modal{background:#f7fafc;border:1px solid #b8c9d6;border-radius:8px;box-shadow:0 16px 30px #0f203040;display:grid;gap:10px;max-height:calc(100vh - 24px);max-width:calc(100vw - 24px);padding:12px;width:min(1200px,calc(100vw - 24px))}.ged-camera-modal-head{align-items:center;color:#21364a;display:flex;font-size:15px}.ged-camera-modal-body{align-items:center;background:#0e1218;border:1px solid #9fb2c1;border-radius:8px;display:grid;justify-items:center;min-height:320px;overflow:hidden;padding:8px}.ged-camera-video{background:#000;border-radius:6px;max-height:calc(100vh - 280px);max-width:100%}.ged-camera-modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.ged-camera-modal-actions button.secondary{background:#e8edf2;color:#24384a}.ged-pdf-editor-overlay{align-items:center;background:#0f1e2dbd;display:flex;inset:0;justify-content:center;position:fixed;z-index:95}.ged-pdf-editor-modal{background:#f4f8fb;border:1px solid #b8c9d6;border-radius:8px;box-shadow:0 18px 34px #0a182647;display:grid;grid-template-rows:auto auto 1fr;max-height:calc(100vh - 24px);max-width:calc(100vw - 24px);min-height:520px;overflow:hidden;width:min(1240px,calc(100vw - 24px))}.ged-office-editor-overlay{background:#0f1e2dbd;inset:0;position:fixed;z-index:1300}.ged-office-editor-modal{background:#f3f6f9;display:grid;grid-template-rows:42px 1fr;height:100vh;width:100vw}.ged-office-editor-modal header{align-items:center;background:#fff;border-bottom:1px solid #c8d4dd;display:flex;gap:10px;justify-content:space-between;padding:6px 10px}.ged-office-editor-modal header span{color:#40566a;font-size:13px;font-weight:700}.ged-office-editor-modal header button{background:#f7fafc;border:1px solid #a9bdcb;border-radius:5px;cursor:pointer;font-weight:800;height:30px;padding:0 12px}.ged-office-editor-modal iframe{background:#fff;border:0;height:100%;width:100%}.ged-pdf-editor-head,.ged-pdf-editor-toolbar{align-items:center;background:#fff;border-bottom:1px solid #d2dee7;display:flex;gap:8px;padding:8px 10px}.ged-pdf-editor-head strong{color:#1f3347;font-size:14px;margin-right:auto;overflow-wrap:anywhere}.ged-pdf-editor-toolbar{background:#edf3f7}.ged-pdf-editor-toolbar button{min-height:28px;border:1px solid #9eb2c3;border-radius:6px;background:#fff;color:#1f354a;cursor:pointer;font-size:12px;font-weight:800;padding:0 10px}.ged-pdf-editor-toolbar button.active{background:#1b8a72;border-color:#1b8a72;color:#fff}.ged-pdf-editor-toolbar button:disabled{background:#e8eef3;color:#7c8a96;cursor:not-allowed}.ged-pdf-editor-toolbar span{color:#25394b;font-size:12px;font-weight:800}.ged-pdf-editor-body{overflow:auto;padding:14px}.ged-pdf-editor-canvas-wrap{background:#fff;border:1px solid #c8d6e0;box-shadow:0 10px 24px #182a3b29;margin:0 auto;position:relative}.ged-pdf-editor-canvas-wrap.tool-text{cursor:text}.ged-pdf-editor-canvas-wrap.tool-image{cursor:crosshair}.ged-pdf-editor-canvas{display:block;height:auto;width:100%}.ged-pdf-annotation-marker{background:#fff7c4db;border:1px solid #d7b84e;border-radius:4px;color:#1f2f44;cursor:move;font-size:12px;font-weight:800;line-height:1.2;max-width:280px;min-height:22px;overflow:visible;padding:3px 6px;position:absolute;text-align:left;transform:translate(0);touch-action:none;white-space:nowrap;z-index:2}.ged-pdf-annotation-marker.selected{border-color:#1b8a72;box-shadow:0 0 0 2px #1b8a7247;z-index:3}.ged-pdf-annotation-marker.image{background:#d7ebff59;border-color:#4f91c4;max-width:none;min-height:0;padding:2px}.ged-pdf-annotation-image-preview{display:block;height:auto;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.ged-pdf-annotation-remove{align-items:center;background:#fff;border:1px solid #bb3b4d;border-radius:50%;color:#bb263f;cursor:pointer;display:none;font-size:10px;font-weight:900;height:18px;justify-content:center;line-height:1;padding:0;position:absolute;right:-9px;top:-9px;width:18px}.ged-pdf-annotation-marker.selected .ged-pdf-annotation-remove{display:flex}.ged-pdf-annotation-resize{background:#fff;border:2px solid #1b8a72;border-radius:3px;bottom:-7px;cursor:nwse-resize;display:none;height:12px;position:absolute;right:-7px;width:12px}.ged-pdf-annotation-marker.selected .ged-pdf-annotation-resize{display:block}@media(max-width:900px){.ged-tree-toolbar select{min-width:220px}.ged-tree-workspace{grid-template-columns:1fr}.ged-tree-resize-handle{display:none}.ged-tree-pane-left{justify-content:stretch}.ged-tree-pane-left .ged-tree-container{width:100%}}.profile-matrix-section{margin-top:10px}.pending-approvals-panel{align-items:center;background:#fff;border:1px solid #d6e0e7;border-radius:8px;box-sizing:border-box;display:flex;gap:16px;justify-content:space-between;margin:12px auto 0;padding:12px 16px;width:calc(100vw - 40px)}.pending-approvals-panel h2,.pending-approvals-panel p{margin:0}.pending-approvals-panel p{color:#596674;font-size:13px;margin-top:4px}.pending-approval-list{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.pending-approval-item{align-items:center;background:#f7fafc;border:1px solid #d8e2e9;border-radius:8px;display:flex;gap:8px;padding:8px}.pending-approval-item strong,.pending-approval-item span{display:block}.pending-approval-item span{color:#596674;font-size:12px}.pending-approval-empty{color:#596674;font-weight:700}.profile-name-header,.profile-name-cell{min-width:260px;width:260px}.profile-name-cell small,.profile-name-cell span{display:block;margin-top:4px}.profile-name-cell small{color:#526273;font-size:12px;line-height:1.25}.profile-matrix-table .account-profile-chip{white-space:nowrap}.session-box-row{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;flex-wrap:nowrap;gap:0}.session-box-row span{flex-basis:auto}.session-box-row button{border-radius:0;min-height:30px;height:30px;padding:0 9px}.session-box-row button:first-of-type{border-radius:6px 0 0 6px}.session-box-row button:last-of-type{border-radius:0 6px 6px 0}.profile-admin-shell .session-box-row .account-admin-status-inline{margin-left:0;margin-right:8px;align-self:center}.ged-tree-shell .session-box-row .account-admin-status-inline{margin-left:0;margin-right:8px;align-self:center;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-editor-row textarea,.profile-editor-row input{border:1px solid #b8c6d0;border-radius:6px;color:#102033;font:inherit;margin-top:6px;padding:8px 9px;width:100%}.profile-editor-row textarea{min-height:54px;resize:vertical}.profile-row-actions{align-items:center;display:grid;grid-template-columns:repeat(4,max-content);gap:0;justify-content:flex-start;min-width:0}.profile-matrix-table th:nth-child(3),.profile-matrix-table td:nth-child(3){min-width:180px;width:180px;max-width:180px}.profile-matrix-table .permission-empty-cell{color:#6a7782;text-align:center}.profile-matrix-table thead th.permission-header-cell,.profile-matrix-table td.permission-cell,.profile-matrix-table td.permission-empty-cell{min-width:38px;width:38px;max-width:38px}
