.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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{--bg:#f6f7f9;--panel:#fff;--text:#1b1f24;--muted:#667085;--border:#d9dde3;--accent:#2563eb;--failure:#dc2626;--leak:#ea580c;--wear:#ca8a04;--line-1:#2563eb;--line-2:#16a34a;--band:#dc26261a;--status-tripped:#7f1d1d;--status-failure:#dc2626;--status-wear:#ca8a04;--status-warning:#f59e0b;--status-ok:#16a34a;--running:#3b82f6;--tank-fill:#3b82f68c;--truck:#d97706;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1216;--panel:#171b21;--text:#e6e8eb;--muted:#8b95a5;--border:#2a313b;--line-1:#60a5fa;--line-2:#4ade80;--band:#f8717124;--status-tripped:#fca5a5;--status-failure:#f87171;--status-wear:#facc15;--status-warning:#fbbf24;--status-ok:#4ade80;--running:#60a5fa;--tank-fill:#60a5fa80;--truck:#fbbf24}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.app{max-width:1200px;margin:0 auto;padding:16px}header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}header h1{margin:0;font-size:1.25rem}select{font:inherit;padding:4px 8px}.now{color:var(--muted);font-variant-numeric:tabular-nums}main{grid-template-columns:340px 1fr;align-items:start;gap:16px;display:grid}@media (width<=800px){main{grid-template-columns:1fr}}nav,.detail{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px}nav h2{text-transform:uppercase;color:var(--muted);margin:8px 0;font-size:.85rem}ul{margin:0;padding:0;list-style:none}.row{text-align:left;width:100%;font:inherit;color:inherit;border:0;border-left:4px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;grid-template-columns:1fr auto;gap:2px 8px;margin-bottom:4px;padding:6px 8px;display:grid}.row:hover,.row.selected{background:var(--bg)}.row.pump_failure{border-left-color:var(--failure)}.row.pipeline_leak{border-left-color:var(--leak)}.row.pump_degradation{border-left-color:var(--wear)}.row .cat{font-weight:600}.row .asset{color:var(--muted);grid-column:1}.row .when{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:1/2}.detail h2{margin:0 0 4px;font-size:1.1rem}.detail ul{margin:8px 0 12px;padding-left:20px;list-style:outside}.meta,.muted{color:var(--muted)}.action{font-weight:600}.error{color:var(--failure)}.chart{margin:0 0 12px}.chart figcaption{margin-bottom:2px;font-size:.85rem}.chart svg{width:100%;height:auto;display:block}.legend{margin-left:10px}.band{fill:var(--band)}.axis{stroke:var(--border)}.tick{fill:var(--muted);font-size:10px}.reference{stroke:var(--muted);stroke-dasharray:4 3}.reference-legend{color:var(--muted)}.folder-button{cursor:pointer;background:var(--accent);color:#fff;border-radius:6px;padding:6px 12px;font-weight:600;display:inline-block}.folder-button:hover{filter:brightness(1.1)}.dataset-name{font-weight:600}.empty{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:8px;padding:32px 16px}.empty p{color:var(--muted);margin:0 0 16px}.plan{margin:4px 0 12px}.countdown{color:var(--failure);margin:4px 0;font-weight:600}.options{border-collapse:collapse;width:100%;margin-top:8px;font-size:.9rem}.options th,.options td{text-align:left;border-bottom:1px solid var(--border);padding:4px 8px}.options td:last-child,.options th:last-child{text-align:right;font-variant-numeric:tabular-nums}.options tr.chosen td{background:var(--bg);font-weight:600}.countdown-chip{background:var(--failure);color:#fff;font-variant-numeric:tabular-nums;border-radius:10px;grid-column:2;justify-self:end;padding:0 6px;font-size:.8rem;font-weight:600}.countdown-chip.safe{background:var(--muted)}.app.console{grid-template:"header header""left map"minmax(0,1fr)"time time"/270px minmax(0,1fr);max-width:none;height:100vh;padding:0;display:grid;overflow:hidden}.app.console>header{border-bottom:1px solid var(--border);background:var(--panel);grid-area:header;margin:0;padding:10px 16px}.app.console>.error{z-index:30;background:var(--panel);border:1px solid var(--failure);border-radius:6px;margin:0;padding:6px 12px;position:fixed;top:60px;left:50%;transform:translate(-50%)}.panel{background:var(--panel);padding:12px;overflow-y:auto}.panel.left{border-right:1px solid var(--border);border-top:0;border-bottom:0;border-left:0;border-radius:0;grid-area:left}.link-button{font:inherit;color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px}.map-area{flex-direction:column;grid-area:map;min-width:0;min-height:0;display:flex}.map{flex:1;min-height:0;position:relative}.map .react-flow{background:var(--bg)}.center-handle{opacity:0;pointer-events:none;transform:translate(-50%,-50%);background:0 0!important;border:0!important;width:1px!important;min-width:0!important;height:1px!important;min-height:0!important;top:50%!important;left:50%!important}.node-label{white-space:nowrap;color:var(--text);text-shadow:0 0 3px var(--bg), 0 0 3px var(--bg);pointer-events:none;align-items:center;gap:4px;margin-top:2px;font-size:15px;font-weight:700;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%)}.node-chip{background:var(--status-failure);color:#fff;text-shadow:none;font-variant-numeric:tabular-nums;border-radius:8px;padding:0 6px;font-size:13px}.facility-node{cursor:pointer;position:relative}.facility-node svg{display:block;overflow:visible}.facility-node .ring{fill:var(--panel);stroke:var(--status-ok);stroke-width:3px}.facility-node.status-warning .ring{stroke:var(--status-warning)}.facility-node.status-wear .ring{stroke:var(--status-wear);stroke-width:5px}.facility-node.status-failure .ring{stroke:var(--status-failure);stroke-width:3px;opacity:.35}.facility-node.status-tripped .ring{fill:var(--status-tripped);stroke:var(--status-tripped);stroke-width:5px}.facility-node.status-failure,.facility-node.status-tripped{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{filter:drop-shadow(0 0 #0000)}50%{filter:drop-shadow(0 0 10px var(--status-failure))}}.facility-node.selected svg{filter:drop-shadow(0 0 6px var(--accent))}.countdown-ring{fill:none;stroke:var(--status-failure);stroke-width:5px;stroke-linecap:round}.tank-shell{fill:var(--bg);stroke:var(--muted);stroke-width:1.5px}.tank-fill{fill:var(--tank-fill)}.tank-limit{stroke:var(--status-failure);stroke-width:1.5px;stroke-dasharray:3 2}.tank-warning{stroke:var(--status-warning);stroke-width:1px;stroke-dasharray:2 2}.well-node{background:var(--status-ok);border:2px solid var(--panel);border-radius:50%;width:14px;height:14px}.well-node.off{background:var(--muted);opacity:.6}.disposal-node{color:var(--muted);display:flex;position:relative}.yard-node{color:var(--truck);display:flex;position:relative}.yard-node .node-label,.disposal-node .node-label{color:var(--muted);font-size:13px;font-weight:600}.react-flow__node-region{pointer-events:none!important}.region{pointer-events:none;background:color-mix(in srgb, var(--muted) 7%, transparent);border:2px solid color-mix(in srgb, var(--muted) 25%, transparent);border-radius:50%;position:relative}.region.worst-wear,.region.worst-warning{background:color-mix(in srgb, var(--status-wear) 7%, transparent);border-color:color-mix(in srgb, var(--status-wear) 45%, transparent)}.region.worst-leak{background:color-mix(in srgb, var(--leak) 8%, transparent);border-color:color-mix(in srgb, var(--leak) 55%, transparent)}.region.worst-failure,.region.worst-tripped{background:color-mix(in srgb, var(--status-failure) 9%, transparent);border-color:var(--status-failure)}.region-label{pointer-events:auto;cursor:zoom-in;letter-spacing:.04em;color:var(--text);white-space:nowrap;align-items:center;gap:8px;font-size:26px;font-weight:800;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.system-alerts{color:#fff;background:var(--muted);border-radius:10px;padding:1px 8px;font-size:15px;font-weight:700}.worst-failure .system-alerts,.worst-tripped .system-alerts{background:var(--status-failure)}.worst-leak .system-alerts{background:var(--leak)}.worst-wear .system-alerts{background:var(--status-wear)}.react-flow__edge-path.pipe{stroke:var(--border);stroke-width:3px}.react-flow__edge-path.pipe-running{stroke:color-mix(in srgb, var(--running) 35%, transparent)}.react-flow__edge-path.pipe-failed{stroke:var(--muted);stroke-dasharray:6 6}.react-flow__edge-path.pipe-leak{stroke:var(--leak);stroke-width:6px;filter:drop-shadow(0 0 4px var(--leak))}.pipe-flow{fill:none;stroke:var(--running);stroke-width:3px;stroke-dasharray:6 12;pointer-events:none;animation:1s linear infinite flow}.pipe-flow.leak{stroke:#fff;stroke-width:2px}@keyframes flow{to{stroke-dashoffset:-18px}}.react-flow__edge-path.well-link{stroke:var(--border);stroke-width:1.5px}.react-flow__edge-path.well-link.off{stroke-dasharray:2 3}.react-flow__edge-path.truck-route{stroke:var(--truck);stroke-width:2px;stroke-dasharray:8 5;animation:1.5s linear infinite flow}.leak-badge,.route-badge{pointer-events:none;white-space:nowrap;border-radius:10px;align-items:center;gap:3px;padding:1px 7px;font-size:13px;font-weight:700;display:flex;position:absolute}.leak-badge{background:var(--leak);color:#fff}.route-badge{background:var(--panel);color:var(--truck);border:1px solid var(--truck)}.map-legend{z-index:5;background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:4px 10px;max-width:60%;padding:4px 8px;font-size:11px;display:flex;position:absolute;top:10px;left:10px}.lg:before{content:"";vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.lg-failure:before{background:var(--status-failure)}.lg-tripped:before{background:var(--status-tripped)}.lg-wear:before{background:var(--status-wear)}.lg-warning:before{background:var(--status-warning)}.lg-leak:before{background:var(--leak);vertical-align:2px;border-radius:2px;height:4px}.lg-running:before{background:var(--running);vertical-align:2px;border-radius:2px;height:4px}.hover-card{z-index:10;pointer-events:none;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:260px;padding:8px 10px;font-size:12px;position:absolute;box-shadow:0 6px 20px #0000002e}.hc-title{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;font-weight:700;display:flex}.hc-status{color:#fff;background:var(--status-ok);border-radius:8px;padding:0 6px;font-size:10px;font-weight:700}.hc-status.status-failure{background:var(--status-failure)}.hc-status.status-tripped{background:var(--status-tripped)}.hc-status.status-wear{background:var(--status-wear)}.hc-status.status-warning{background:var(--status-warning)}.hc-row{justify-content:space-between;gap:8px;padding:1px 0;display:flex}.hc-row span:first-child{color:var(--muted)}.hc-row span:last-child{text-align:right;font-variant-numeric:tabular-nums}.hc-plan{margin-top:4px;font-weight:600}.hc-note,.hc-spark-label,.spark-empty{color:var(--muted);margin-top:4px;font-size:11px}.spark{display:block}.spark polyline{fill:none;stroke:var(--line-1);stroke-width:1.5px}.spark-ref{stroke:var(--muted);stroke-dasharray:3 2}.timeline{background:var(--panel);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none;grid-area:time;padding:6px 16px 10px}.timeline-controls{align-items:center;gap:6px;margin-bottom:6px;display:flex}.timeline-controls button{font:inherit;border:1px solid var(--border);background:var(--bg);min-width:34px;color:var(--text);cursor:pointer;border-radius:6px;padding:3px 8px;font-size:12px}.timeline-controls button:disabled{opacity:.4;cursor:default}.timeline-now{font-variant-numeric:tabular-nums;margin:0 8px;font-weight:700}.busy{color:var(--muted);font-weight:400}.timeline-body{grid-template-columns:36px 1fr;display:grid}.lane-labels{padding-top:16px}.lane-label{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;align-items:center;width:100%;padding:0;font-size:11px;font-weight:700;display:flex}.lane-label.active{color:var(--accent)}.lane.active{background:color-mix(in srgb, var(--accent) 9%, transparent)}.track{cursor:ew-resize;touch-action:none;outline:none;padding-top:16px;position:relative}.track:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:4px}.lane{border-bottom:1px solid var(--border);position:relative}.day-tick{border-left:1px solid var(--border);pointer-events:none;position:absolute;top:0;bottom:0}.day-tick span{color:var(--muted);white-space:nowrap;font-size:10px;position:absolute;top:0;left:4px}.bar{cursor:pointer;border-radius:3px;height:5px;position:absolute}.bar.pump_failure{background:var(--status-failure)}.bar.pipeline_leak{background:var(--leak)}.bar.pump_degradation{background:repeating-linear-gradient(-45deg, var(--status-wear) 0 4px, color-mix(in srgb, var(--status-wear) 45%, transparent) 4px 7px)}.warn-lane{background:color-mix(in srgb, var(--status-wear) 6%, transparent)}.warn-label{color:var(--status-wear);justify-content:center;font-size:13px}.warn-span{box-sizing:border-box;cursor:pointer;white-space:nowrap;height:12px;color:var(--text);background:linear-gradient(90deg, color-mix(in srgb, var(--status-wear) 25%, transparent), color-mix(in srgb, var(--status-failure) 35%, transparent));border-left:2px solid var(--status-wear);border-right:3px solid var(--status-failure);border-radius:3px 0 0 3px;align-items:center;padding:0 6px;font-size:10px;font-weight:700;line-height:12px;display:flex;position:absolute;overflow:hidden}.warn-span.miss{background:color-mix(in srgb, var(--status-wear) 14%, transparent);border-right:1px dashed var(--status-wear);color:var(--muted);font-weight:600}.warn-span.open{border-right:0}.warn-span.selected{outline:2px solid var(--accent);outline-offset:1px}.warn-span span{text-overflow:ellipsis;overflow:hidden}.suspect-ring{box-sizing:border-box;border:2px solid var(--leak);background:var(--panel);pointer-events:none;z-index:1;border-radius:50%;width:7px;height:7px;margin-left:-4px;position:absolute}.suspect-ring.pump_degradation{border-color:var(--status-wear)}.bar.selected{outline:2px solid var(--accent);outline-offset:1px}.future{background:color-mix(in srgb, var(--panel) 60%, transparent);pointer-events:none;position:absolute;top:16px;bottom:0;right:0}.playhead{background:var(--accent);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:12px;bottom:-4px}.playhead:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-4px}.back-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0 0 8px;font-size:13px}.panel.left .row{padding:5px 8px;font-size:13px}.panel.left .row .when{white-space:nowrap;font-size:12px}.row .stage-note{color:var(--muted);grid-column:1/-1;font-size:12px}.row.pipeline_leak .stage-note{color:var(--leak)}.row .early-note{color:var(--status-wear);grid-column:1/-1;font-size:12px;font-weight:700}.row.pump_failure .early-note{color:var(--status-failure)}.early-section{border:1px solid color-mix(in srgb, var(--status-wear) 55%, transparent);background:color-mix(in srgb, var(--status-wear) 9%, transparent);border-radius:8px;margin:4px -6px 10px;padding:6px}.early-section h2{color:var(--status-wear);margin-top:0}.early-section>.muted{margin:0 0 6px;font-size:12px}.panel.left h2{font-size:.75rem}.tabs{background:var(--panel);border-bottom:1px solid var(--border);gap:4px;padding:6px 8px 0;display:flex;overflow-x:auto}.tab{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:5px 12px 6px;font-size:13px;font-weight:700;display:flex;position:relative;top:1px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);background:var(--bg);border-color:var(--border)}.tab-count{color:#fff;background:var(--muted);border-radius:9px;padding:0 7px;font-size:12px}.tab.worst-failure .tab-count,.tab.worst-tripped .tab-count{background:var(--status-failure)}.tab.worst-leak .tab-count{background:var(--leak)}.tab.worst-wear .tab-count,.tab.worst-warning .tab-count{background:var(--status-wear)}.tab-countdown{color:var(--status-failure);font-variant-numeric:tabular-nums;font-size:12px}.tab.flash{animation:.8s ease-in-out 5 tab-flash}@keyframes tab-flash{50%{background:color-mix(in srgb, var(--status-failure) 30%, transparent);color:var(--text)}}.off-band{fill:color-mix(in srgb, var(--muted) 12%, transparent)}.fault-band{fill:color-mix(in srgb, var(--status-failure) 14%, transparent)}.ev-band{fill:var(--band)}.ev-band.pipeline_leak{fill:color-mix(in srgb, var(--leak) 14%, transparent)}.ev-band.pump_degradation{fill:color-mix(in srgb, var(--status-wear) 16%, transparent)}.alarm-marker{stroke:var(--status-failure);stroke-width:1.5px;stroke-dasharray:2 2}.alarm-marker.pipeline_leak{stroke:var(--leak)}.alarm-marker.pump_degradation{stroke:var(--status-wear)}.confirm-marker{stroke:var(--status-failure);stroke-width:1.5px}.confirm-marker.pipeline_leak{stroke:var(--leak)}.confirm-marker.pump_degradation{stroke:var(--status-wear)}.cursor{stroke:var(--text);stroke-width:1px;opacity:.5;pointer-events:none}.cursor-time{color:var(--muted);font-variant-numeric:tabular-nums}.chart .legend{font-variant-numeric:tabular-nums}.chart-empty{color:var(--muted);margin:0 0 12px;font-size:.85rem}.facility-page{background:var(--bg);flex-direction:column;flex:1;min-height:0;padding:10px 16px 16px;display:flex;overflow-y:auto}.facility-page>*{flex-shrink:0}.fp-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fp-head .back-button{padding:0}.fp-head h2{margin:0;font-size:1.15rem}.fp-head .hc-status{padding:1px 8px;font-size:12px}.fp-countdown{color:var(--status-failure);font-variant-numeric:tabular-nums;font-weight:700}.process{align-items:center;margin:14px 0 10px;padding:4px 2px;display:flex;overflow-x:auto}.pf-col{flex-direction:column;gap:6px;display:flex}.pf-card{min-width:112px;font:inherit;color:var(--text);background:var(--panel);border:2px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;display:flex}.pf-card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}.pf-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.pf-name{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:700}.pf-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.pf-sub{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.pf-well{border-left:5px solid var(--status-ok);min-width:96px;padding:5px 8px}.pf-well.off{border-left-color:var(--muted);opacity:.75}.pf-tank.status-warning{border-color:var(--status-warning)}.pf-tank.status-failure,.pf-tank.status-tripped{border-color:var(--status-failure)}.pf-pump.running{border-top:5px solid var(--running)}.pf-pump.idle{border-top:5px solid var(--border)}.pf-pump.fault,.pf-pump.pump_failure{border-color:var(--status-failure);background:color-mix(in srgb, var(--status-failure) 10%, var(--panel))}.pf-pump.pump_degradation{border-color:var(--status-wear);background:color-mix(in srgb, var(--status-wear) 10%, var(--panel))}.pf-pipeline.running{border-top:5px solid var(--running)}.pf-pipeline.idle{border-top:5px solid var(--border)}.pf-pipeline.pipeline_leak{border-color:var(--leak);background:color-mix(in srgb, var(--leak) 10%, var(--panel))}.pf-disposal{cursor:default;border-style:dashed}.pf-disposal:hover{border-color:var(--border)}.pf-badge{color:#fff;white-space:nowrap;border-radius:8px;margin-top:3px;padding:0 6px;font-size:11px;font-weight:700}.pf-badge.pump_failure{background:var(--status-failure)}.pf-badge.pump_degradation{background:var(--status-wear)}.pf-badge.pipeline_leak{background:var(--leak)}.pf-link{background:var(--border);flex:1 0 24px;max-width:70px;height:4px;position:relative}.pf-link:after{content:"";border:6px solid #0000;border-left-color:var(--border);border-right:0;position:absolute;top:-4px;right:-2px}.pf-link.flowing{background:repeating-linear-gradient(90deg, var(--running) 0 6px, transparent 6px 12px);background-size:12px 4px;animation:.8s linear infinite pf-flow}.pf-link.flowing:after{border-left-color:var(--running)}.pf-link.leak{background:var(--leak);animation:none}.pf-link.leak:after{border-left-color:var(--leak)}@keyframes pf-flow{to{background-position:12px 0}}.fp-charts-head{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 8px;display:flex}.fp-charts-head h3{margin:0;font-size:1rem}.link-button.small{padding:2px 8px;font-size:12px}.fp-legend{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.fp-legend .sw{border-radius:2px;width:12px;height:10px;margin-left:6px;display:inline-block}.fp-legend .sw.off-band{background:color-mix(in srgb, var(--muted) 25%, transparent)}.fp-legend .sw.fault-band{background:color-mix(in srgb, var(--status-failure) 25%, transparent)}.fp-legend .sw.ev-band{background:color-mix(in srgb, var(--status-failure) 18%, transparent)}.fp-windows{gap:4px;margin-left:auto;display:flex}.fp-windows button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:2px 9px;font-size:12px}.fp-windows button.active{border-color:var(--accent);color:var(--accent);font-weight:700}.fp-charts{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:4px 16px;display:grid}.fp-charts .chart{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin:0 0 8px;padding:8px 10px 4px}.fp-charts .chart svg{cursor:crosshair}.action-bar{background:var(--panel);border-bottom:1px solid var(--border);border-left:4px solid var(--status-failure);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 20px;padding:8px 14px;display:flex}.action-bar.pump_degradation{border-left-color:var(--status-wear)}.action-bar.pipeline_leak{border-left-color:var(--leak)}.action-bar.resolved{border-left-color:var(--muted)}.action-bar .countdown{margin:0;font-size:13px}.action-what,.action-do{flex-direction:column;gap:1px;min-width:0;display:flex}.action-do{flex:1}.action-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:700}.action-bar .action{font-size:1rem;font-weight:600}.stage-chip{vertical-align:1px;white-space:nowrap;border-radius:9px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:700}.stage-chip.suspected{color:var(--leak);border:1.5px dashed}.action-bar.pump_degradation .stage-chip.suspected{color:var(--status-wear)}.stage-chip.confirmed{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.action-close{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;line-height:1}.action-close:hover{color:var(--text)}.event-info{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--status-failure);border-radius:8px;margin:0 0 10px;padding:8px 12px}.event-info h3{margin:0 0 2px;font-size:1rem}.event-info .meta{margin:0;font-size:13px}.event-info ul{margin:6px 0;padding-left:20px;font-size:14px;list-style:outside}.event-info .options{max-width:760px}.stack-head{z-index:1;box-sizing:border-box;color:var(--muted);white-space:nowrap;cursor:pointer;border-bottom:1px solid var(--border);border-left:3px solid #0000;align-items:center;padding-left:4px;font-size:10px;font-weight:700;display:flex;position:relative}.stack-head.early_fix{border-top:2px solid var(--border)}.stack-head.active{color:var(--accent);border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent)}.scenario-toggle{margin-left:auto;display:inline-flex}.timeline-controls .scenario-toggle button{border-radius:0}.timeline-controls .scenario-toggle button:first-child{border-radius:6px 0 0 6px}.timeline-controls .scenario-toggle button:last-child{border-left:0;border-radius:0 6px 6px 0}.timeline-controls .scenario-toggle button.active{background:var(--accent);border-color:var(--accent);color:#fff}.bar.ghost{border:1px dashed var(--status-failure);box-sizing:border-box;opacity:.6;cursor:default;background:0 0}.whatif{border:1px solid color-mix(in srgb, var(--accent) 50%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:8px;margin:0 -6px 10px;padding:6px;font-size:13px}.whatif h2{color:var(--accent);margin-top:0}.whatif>.muted{margin:0 0 6px;font-size:12px}.whatif dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 6px;display:grid}.whatif dt{color:var(--muted)}.whatif dd{font-variant-numeric:tabular-nums;margin:0}.whatif ul{margin:0;padding-left:18px}.incidents{background:var(--bg);flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 16px 16px;display:flex;overflow-y:auto}.incidents>*{flex-shrink:0}.inc-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.inc-head h2{margin:0;font-size:1.15rem}.inc-head .link-button{margin-left:auto}.link-button:disabled{opacity:.4;cursor:default}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.kpi{background:var(--panel);border:1px solid var(--border);border-top:4px solid var(--muted);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.kpi.early{border-top-color:var(--leak)}.kpi.confirmed{border-top-color:var(--accent)}.kpi.saved{border-top-color:var(--status-ok)}.kpi.warn{border-top-color:var(--status-wear)}.kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:700}.kpi-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.kpi.saved .kpi-value{color:var(--status-ok)}.kpi-sub{color:var(--muted);font-size:12px}.inc-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px;display:grid}.inc-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:0;padding:10px 12px}.inc-card h3{margin:0 0 6px;font-size:.95rem}.inc-card .note{margin:8px 0 0;font-size:12px}.inc-card .options td,.inc-card .options th{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}.dot{background:var(--muted);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.pump_failure{background:var(--status-failure)}.dot.pipeline_leak{background:var(--leak)}.dot.pump_degradation{background:var(--status-wear)}.saved-bars{max-height:260px;overflow-y:auto}.saved-bars button{width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:120px 1fr 70px;align-items:center;gap:8px;padding:3px 2px;font-size:12px;display:grid}.saved-bars button:hover{background:var(--bg)}.sb-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sb-track{background:var(--bg);border-radius:5px;height:10px;overflow:hidden}.sb-bar{background:var(--status-ok);border-radius:5px;height:100%;display:block}.sb-bar.pipeline_leak{background:var(--leak)}.sb-bar.pump_degradation{background:var(--status-wear)}.sb-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.inc-log-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;display:flex}.inc-log-head h3{margin:0}.inc-table-wrap{overflow-x:auto}.inc-table{font-size:13px}.inc-row{cursor:pointer}.inc-row:hover td{background:var(--bg)}.inc-row td.ongoing{color:var(--status-failure);font-weight:600}.stage-tag{white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:11px;font-weight:700}.stage-tag.suspected{border:1.5px dashed var(--leak);color:var(--leak)}.stage-tag.early{background:color-mix(in srgb, var(--status-ok) 15%, transparent);color:var(--status-ok)}.stage-tag.confirmed{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.incidents-tab{margin-left:auto}.incidents-tab.active{color:var(--accent)}.verify-tag{white-space:nowrap;color:var(--muted);border:1px solid var(--border);border-radius:9px;padding:1px 7px;font-size:11px;font-weight:700}.verify-tag.verified{color:var(--status-ok);border-color:color-mix(in srgb, var(--status-ok) 50%, transparent);background:color-mix(in srgb, var(--status-ok) 12%, transparent)}.verify-tag.not_verified{color:var(--status-failure);border-color:color-mix(in srgb, var(--status-failure) 50%, transparent)}.verify-tag.pending{color:var(--status-wear);border-style:dashed}.verify{border-left:3px solid var(--border);background:var(--bg);border-radius:6px;margin:6px 0;padding:6px 10px;font-size:13px}.verify.verified{border-left-color:var(--status-ok)}.verify.verified strong{color:var(--status-ok)}.verify.not_verified{border-left-color:var(--status-failure)}.verify.pending{border-left-color:var(--status-wear)}.verify .options{max-width:460px;margin:4px 0}.verify .meta{margin:2px 0 0;font-size:12px}.timeline-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 6px;font-size:11px;display:flex}.lgd{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.lgd i{border-radius:3px;width:16px;height:6px;display:inline-block}.sw-fail{background:var(--status-failure)}.sw-leak{background:var(--leak)}.sw-wear{background:repeating-linear-gradient(-45deg, var(--status-wear) 0 4px, color-mix(in srgb, var(--status-wear) 45%, transparent) 4px 7px)}.lgd i.sw-ring{border:2px solid var(--leak);background:var(--panel);border-radius:50%;width:9px;height:9px}.sw-warn{background:linear-gradient(90deg, color-mix(in srgb, var(--status-wear) 40%, transparent), color-mix(in srgb, var(--status-failure) 55%, transparent));border-right:3px solid var(--status-failure)}.lgd i.sw-now{background:var(--accent);border-radius:0;width:2px;height:12px}.timeline-results{flex-wrap:wrap;gap:14px;margin-left:auto;display:flex}.res-warn{color:var(--status-wear)}.res-leak{color:var(--leak)}.timeline-body{grid-template-columns:78px 1fr}.warn-label{font-size:12px}.warn-span{height:18px;font-size:11px;line-height:18px}.bar{height:7px}.suspect-ring{width:10px;height:10px;margin-left:-5px;top:0}.map-area{position:relative}.toasts{z-index:20;pointer-events:none;flex-direction:column;gap:8px;width:330px;display:flex;position:absolute;top:44px;right:12px}.toast{pointer-events:auto;text-align:left;font:inherit;color:var(--text);cursor:pointer;background:var(--panel);border:1px solid var(--border);border-left:6px solid var(--leak);border-radius:8px;flex-direction:column;gap:3px;padding:8px 12px;display:flex;box-shadow:0 6px 20px #0003}.toast.pump_degradation{border-left-color:var(--status-wear)}.toast.suspected{border-style:dashed solid;border-color:var(--leak);border-left-style:solid;animation:1.2s ease-in-out infinite toast-pulse}.toast.pump_degradation.suspected{border-color:var(--status-wear)}.toast.fresh{animation:.35s ease-out toast-in,1.2s ease-in-out .35s infinite toast-pulse}.toast.confirmed.fresh{animation:.35s ease-out toast-in}.toast-title{font-size:14px;font-weight:800}.toast.suspected .toast-title{color:var(--leak)}.toast.pump_degradation.suspected .toast-title{color:var(--status-wear)}.toast.confirmed .toast-title{color:var(--accent)}.toast-steps{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:12px;display:flex}.step{background:var(--bg);white-space:nowrap;border-radius:9px;padding:1px 7px}.step.done{font-weight:700}.step.waiting{border:1px dashed var(--muted);color:var(--muted)}.toast-steps .arrow{color:var(--muted)}.toast-lead{color:var(--status-ok);font-size:12px;font-weight:700}.toast.suspected .toast-lead{color:var(--leak)}@keyframes toast-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}@keyframes toast-pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--leak) 35%, transparent), 0 6px 20px #0003}}.alert-label{color:var(--leak);justify-content:center;font-size:12px}.alert-lane{background:color-mix(in srgb, var(--leak) 5%, transparent)}.alert-pin{white-space:nowrap;cursor:pointer;z-index:2;font-variant-numeric:tabular-nums;height:17px;color:var(--text);background:var(--panel);border:1px solid var(--leak);border-left:3px solid var(--leak);border-radius:0 9px 9px 0;padding:0 7px 0 5px;font-size:11px;line-height:15px;animation:.3s ease-out toast-in;position:absolute}.alert-pin.pump_degradation{border-color:var(--status-wear)}.alert-pin.suspected{color:var(--leak);border-style:dashed dashed dashed solid;font-weight:700}.alert-pin.pump_degradation.suspected{color:var(--status-wear)}.alert-pin b{font-weight:800}.alert-pin .pin-confirm{color:var(--accent);font-weight:600}.alert-pin .pin-wait{color:var(--muted);font-style:italic}.alert-pin.selected{outline:2px solid var(--accent);outline-offset:1px}.alert-pin:hover{z-index:3;box-shadow:0 2px 8px #0003}.alert-line{border-left:1.5px dashed var(--leak);opacity:.7;pointer-events:none;z-index:1;width:0;position:absolute;bottom:0}.alert-line.pump_degradation{border-left-color:var(--status-wear)}.alert-pin.flip{border-left-width:1px;border-right:3px solid var(--leak);border-radius:9px 0 0 9px;padding:0 5px 0 7px;animation:none;transform:translate(-100%)}.alert-pin.pump_degradation.flip{border-right-color:var(--status-wear)}.row .stage-note{font-variant-numeric:tabular-nums;font-weight:600}.mode-toggle{margin-left:auto;display:inline-flex}.mode-toggle button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;padding:5px 12px;font-size:13px;font-weight:700}.mode-toggle button:first-child{border-radius:6px 0 0 6px}.mode-toggle button:last-child{border-left:0;border-radius:0 6px 6px 0}.mode-toggle.on button.active{background:var(--leak);border-color:var(--leak);color:#fff}.mode-toggle.off button.active{background:var(--muted);border-color:var(--muted);color:#fff}.mode-banner{border-radius:6px;margin:0 0 8px;padding:5px 8px;font-size:12px;font-weight:700}.mode-banner.on{color:var(--leak);background:color-mix(in srgb, var(--leak) 12%, transparent)}.mode-banner.off{color:var(--muted);background:color-mix(in srgb, var(--muted) 14%, transparent)}.std-label{color:var(--muted);justify-content:center;font-size:12px}.lane-label.mode-active{color:var(--text);background:color-mix(in srgb, var(--accent) 12%, transparent)}.lane.mode-active{box-shadow:inset 3px 0 0 var(--accent)}.std-lane{background:color-mix(in srgb, var(--muted) 6%, transparent)}.std-empty{color:var(--muted);font-size:11px;font-style:italic;position:absolute;top:3px;left:6px}.alert-pin.std{border-color:var(--muted);color:var(--text)}.alert-pin.std.flip{border-right-color:var(--muted)}.alert-pin .pin-late{color:var(--status-failure);font-weight:700}.toast.pump_failure{border-left-color:var(--status-failure)}.toast.pump_failure .toast-title{color:var(--status-failure)}.toast.pump_failure.predicted .toast-lead{color:var(--status-ok)}.toast.pump_failure.unwarned .toast-lead{color:var(--status-failure)}.toast.standard{border-left-color:var(--muted)}.toast.standard .toast-lead{color:var(--muted);font-weight:600}.home{flex-direction:column;gap:36px;padding-bottom:48px;display:flex}.home-hero{background:var(--panel);border:1px solid var(--border);border-radius:14px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:32px;padding:28px;display:grid}@media (width<=860px){.home-hero{grid-template-columns:1fr;padding:20px}}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--leak);margin:0 0 6px;font-size:12px;font-weight:800}.home-hero h2{margin:0 0 12px;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.15}.lede{color:var(--muted);margin:0 0 20px;font-size:1.05rem;line-height:1.5}.hero-cta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-cta .muted{font-size:13px}.home .folder-button{border-radius:8px;padding:10px 18px;font-size:1rem}.home-illus{width:100%;height:auto}.il-head{fill:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.il-axis{stroke:var(--border);stroke-width:2px}.il-leak{fill:var(--leak);opacity:.85}.il-wear{fill:var(--status-wear);opacity:.75}.il-fail{fill:var(--status-failure)}.il-ours{fill:var(--panel);stroke:var(--leak);stroke-width:3px}.il-std{fill:var(--panel);stroke:var(--muted);stroke-width:2px}.il-ours-t{fill:var(--leak);font-size:12px;font-weight:800}.il-std-t{fill:var(--muted);font-size:11px;font-weight:600}.il-tick{fill:var(--muted);font-size:11px}.il-span{stroke:var(--status-wear);stroke-width:2px;fill:none}.il-arrowhead{fill:var(--status-wear)}.il-span-t{fill:var(--status-wear);font-size:12px;font-weight:800}.home-h{margin:0 0 12px;font-size:1.1rem}.home-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.home-stat{background:var(--panel);border:1px solid var(--border);border-top:4px solid var(--status-ok);border-radius:10px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.home-stat.leak{border-top-color:var(--leak)}.home-stat.wear{border-top-color:var(--status-wear)}.hs-value{font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800}.hs-label{font-weight:700}.hs-sub{color:var(--muted);font-size:13px}.home-note{margin:8px 0 0;font-size:12px}.home-steps{counter-reset:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.home-step{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--leak);border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.home-step.accent{border-left-color:var(--accent)}.home-step.ok{border-left-color:var(--status-ok)}.home-step.wear{border-left-color:var(--status-wear)}.step-num{color:var(--muted);font-size:12px;font-weight:800;position:absolute;top:10px;right:12px}.step-icon{font-size:1.4rem;line-height:1}.step-when{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.home-step p{color:var(--muted);margin:4px 0 0;font-size:14px;line-height:1.45}.home-compare{border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;font-size:14px;overflow:hidden}.home-compare th,.home-compare td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 14px}.home-compare tbody tr:last-child th,.home-compare tbody tr:last-child td{border-bottom:0}.home-compare thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px}.home-compare thead th:last-child{color:var(--leak)}.home-compare td.without{color:var(--muted)}.home-compare td.with{background:color-mix(in srgb, var(--leak) 6%, transparent);font-weight:600}@media (width<=640px){.home-compare th,.home-compare td{padding:8px;font-size:13px}}.home-features{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.home-features>div{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.home-features p{color:var(--muted);margin:4px 0 0;font-size:14px;line-height:1.45}.home-final{text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:12px;padding:28px 16px;display:flex}.home-final p{margin:0;font-size:1.1rem;font-weight:600}.home-achieve{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=1000px){.home-achieve{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.home-achieve{grid-template-columns:1fr}}.home-card{background:var(--panel);border:1px solid var(--border);border-top:4px solid var(--leak);border-radius:10px;flex-direction:column;gap:6px;padding:16px;display:flex}.home-card.wear{border-top-color:var(--status-wear)}.home-card.ok{border-top-color:var(--status-ok)}.home-card.accent{border-top-color:var(--accent)}.card-icon{font-size:1.5rem;line-height:1}.home-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.home-journey{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 24px;margin:0;padding:0;list-style:none;display:grid}.home-journey li{align-items:flex-start;gap:12px;display:flex}.jr-num{color:#fff;background:var(--accent);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:grid}.home-journey p{color:var(--muted);margin:2px 0 0;font-size:14px;line-height:1.45}.brand{align-items:center;gap:8px;display:inline-flex}.logo{flex:none;display:block}.hero-brand{flex-wrap:wrap;align-items:center;gap:14px 28px;margin-bottom:18px;display:flex}.brand-name{letter-spacing:-.01em;align-items:center;gap:12px;font-size:1.6rem;font-weight:800;display:flex}.header-sponsors{border-left:1px solid var(--border);align-items:center;gap:12px;padding-left:16px;display:flex}.sponsored-by{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap;font-size:10px;font-weight:800}.sponsor-row{align-items:flex-start;gap:10px;display:flex}.sponsor{flex-direction:column;align-items:center;gap:3px;width:92px;margin:0;display:flex}.sponsor-plate{box-sizing:border-box;background:var(--panel);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;width:92px;height:34px;padding:5px 8px;display:flex;overflow:hidden}.sponsor-plate img{object-fit:contain;width:100%;height:100%;display:block}.sponsor-mono{color:#fff;background:linear-gradient(135deg,#3a3f47,#0b0d10);border:1.5px solid #ea580c;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.55rem;font-weight:800;display:grid}.sponsor figcaption{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:700;line-height:1.2}@media (width<=760px){.sponsored-by{display:none}.header-sponsors{padding-left:10px}.sponsor,.sponsor-plate{width:72px}}.report-button{font:inherit;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:700}.report-button:hover,.report-button.active{background:var(--accent);color:#fff}.app.report{max-width:1280px}.report-page{flex-direction:column;gap:8px;display:flex}.report-page .incidents{background:0 0;padding:0;overflow:visible}.replay-done{z-index:25;white-space:nowrap;background:var(--panel);border:1px solid var(--status-ok);border-left:6px solid var(--status-ok);border-radius:10px;align-items:center;gap:14px;padding:10px 12px 10px 16px;font-weight:700;animation:.35s ease-out toast-in;display:flex;position:absolute;top:52px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000040}.replay-done>span{color:var(--status-ok)}.replay-done .folder-button{font:inherit;border:0;font-size:14px}@media (width<=700px){.replay-done{white-space:normal;flex-wrap:wrap;left:12px;right:12px;transform:none}}.decisions{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.decision{border:1px solid var(--border);border-left:4px solid var(--status-failure);background:var(--bg);border-radius:8px;padding:8px 12px}.decision.pipeline_leak{border-left-color:var(--leak)}.decision.pump_degradation{border-left-color:var(--status-wear)}.dec-head{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.dec-time{font-variant-numeric:tabular-nums;font-weight:800}.dec-what{color:var(--muted)}.dec-cost{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:800}.dec-action{margin:4px 0 2px;font-weight:700}.dec-why{color:var(--muted);margin:0;padding-left:20px;font-size:13px;list-style:outside}.dec-options{margin-top:4px;font-size:13px}.dec-options summary{cursor:pointer;color:var(--accent)}.dec-options .options{margin-top:4px}.brand-link{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.brand-link:disabled{cursor:default}.brand-link:not(:disabled):hover{opacity:.85}.home-button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:700}.home-button:hover{border-color:var(--accent);color:var(--accent)}.notify{border:1px solid var(--accent);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;margin-top:8px;padding:10px 12px;font-size:13px;display:flex}.notify-head{align-items:center;gap:8px;display:flex}.placeholder-tag{border:1px dashed var(--muted);color:var(--muted);border-radius:9px;padding:1px 7px;font-size:11px;font-weight:700}.notify-recipients{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 10px;display:grid}.notify-recipients label{cursor:pointer;border-radius:6px;grid-template-columns:auto 1fr;align-items:center;gap:0 6px;padding:4px 6px;display:grid}.notify-recipients label.on{background:color-mix(in srgb, var(--accent) 10%, transparent)}.notify-recipients input{grid-row:span 2}.nr-name{font-weight:700}.nr-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.notify textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:6px;padding:6px 8px;font-size:13px}.notify-actions{align-items:center;gap:10px;display:flex}.notify-actions .folder-button{font:inherit;border:0;font-size:13px}.notify-actions .folder-button:disabled{opacity:.5;cursor:default}.notify.sent{border-color:var(--status-ok)}.notify.sent>strong{color:var(--status-ok)}.notify.sent ul{margin:0;padding-left:18px;list-style:outside}.auto-toggle{border:1px solid var(--border);cursor:pointer;color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.auto-toggle.on{color:var(--status-ok);border-color:color-mix(in srgb, var(--status-ok) 60%, transparent);background:color-mix(in srgb, var(--status-ok) 10%, transparent)}.notify-feed{z-index:20;pointer-events:none;flex-direction:column-reverse;gap:6px;width:320px;display:flex;position:absolute;bottom:12px;left:12px}.feed-item{background:var(--panel);border:1px solid var(--border);border-left:5px solid var(--status-ok);border-radius:8px;flex-direction:column;gap:1px;padding:7px 10px;font-size:12px;animation:.3s ease-out toast-in;display:flex;box-shadow:0 4px 14px #0000002e}.feed-title{color:var(--status-ok);font-weight:800}.feed-to{color:var(--text)}.feed-note{color:var(--muted);font-size:11px;font-style:italic}.dec-sent{color:var(--status-ok);margin:2px 0;font-size:13px;font-weight:600}.feed-head{text-transform:uppercase;letter-spacing:.06em;color:var(--status-ok);background:var(--panel);border-radius:6px;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:800}.notify-feed{width:360px}.feed-item.alert{border-left-color:var(--leak)}.feed-item.alert .feed-title{color:var(--leak)}.feed-item.failure{border-left-color:var(--status-failure)}.feed-item.failure .feed-title{color:var(--status-failure)}.feed-item.dispatch,.feed-item.shut_in{border-left-color:var(--accent)}.feed-item.dispatch .feed-title,.feed-item.shut_in .feed-title{color:var(--accent)}.feed-msg{color:var(--text)}.feed-to{color:var(--muted);font-size:11px}.notify-feed .feed-note{color:var(--muted);background:var(--panel);border-radius:6px;align-self:flex-start;padding:1px 6px;font-size:10px;font-style:italic}.dec-notices{background:var(--panel);border-radius:6px;flex-direction:column;gap:3px;margin:6px 0 2px;padding:6px 8px;font-size:12px;list-style:none;display:flex}.dec-notices li{grid-template-columns:92px minmax(160px,auto) 1fr auto;align-items:baseline;gap:8px;display:grid}@media (width<=760px){.dec-notices li{grid-template-columns:1fr;gap:0}}.dn-time{font-variant-numeric:tabular-nums;font-weight:700}.dn-title{font-weight:700}.dn-to{color:var(--muted)}.dn-status{color:var(--muted);white-space:nowrap;font-size:11px;font-style:italic}.dec-notices li.sent .dn-status{color:var(--status-ok);font-style:normal;font-weight:700}.live{flex-direction:column;gap:12px;max-width:720px;margin:0 auto;padding:0 16px 32px;display:flex}.live-head{z-index:10;background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin:0 -16px;padding:10px 16px;display:flex;position:sticky;top:0}.live-head .brand{font-size:1.1rem;font-weight:800}.live-pill{color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:800}.live-pill.on{color:#fff;background:var(--status-failure);border-color:var(--status-failure);animation:2s ease-in-out infinite tab-flash}.live-msg{margin:0}.live-wait{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;display:flex}.live-wait p{margin:0}.live-status{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ls-row{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.ls-mode{border-radius:9px;padding:1px 8px;font-size:12px;font-weight:700}.ls-mode.on{color:var(--leak);background:color-mix(in srgb, var(--leak) 12%, transparent)}.ls-mode.off{color:var(--muted);background:color-mix(in srgb, var(--muted) 14%, transparent)}.ls-bar{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.ls-bar span{background:var(--accent);height:100%;transition:width .4s linear;display:block}.live-tabs{gap:6px;display:flex}.live-tabs button{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:8px;flex:1;padding:8px;font-weight:700}.live-tabs button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.live .notify-feed{pointer-events:auto;flex-direction:column;width:auto;position:static}.live-alerts{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.live-alerts h2{text-transform:uppercase;color:var(--muted);margin:8px 0;font-size:.8rem}.live-alerts .row{cursor:default}.live .incidents{background:0 0;padding:0;overflow:visible}.live .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.live .inc-grid{grid-template-columns:1fr}.home-sub{margin:-6px 0 12px;font-size:14px}.home-why{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=760px){.home-why{grid-template-columns:1fr}}.why-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:16px;display:flex}.why-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.why-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:8px;margin-right:8px;padding:0 7px;font-size:11px;font-weight:800;display:inline-block}.why-tag.cost{color:var(--status-failure);background:color-mix(in srgb, var(--status-failure) 12%, transparent)}.why-tag.value{color:var(--status-ok);background:color-mix(in srgb, var(--status-ok) 12%, transparent)}.home-tiers{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=860px){.home-tiers{grid-template-columns:1fr}}.tier{background:var(--panel);border:1px solid var(--border);border-top:4px solid var(--status-ok);border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.tier.wear{border-top-color:var(--status-wear)}.tier.leak{border-top-color:var(--status-failure)}.tier-ex{color:var(--muted);font-size:12px;font-weight:600}.tier p{margin:4px 0 0;font-size:14px;line-height:1.45}.report-page .timeline{z-index:5;border:1px solid var(--border);border-radius:10px 10px 0 0;margin:0 -16px;position:sticky;bottom:0;box-shadow:0 -6px 18px #0000001f}
