button,select{font:inherit}.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))}@media (width<=700px){.kb{gap:16px;padding:14px}.kb-head h3{font-size:1.22rem}.kb-rules{grid-template-columns:1fr}}.app{background:var(--ground);flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;border-bottom:1px solid var(--rule);min-height:60px;box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.tb-brand{font-family:var(--cond);letter-spacing:.02em;color:var(--live);align-items:center;gap:8px;font-size:1.25rem;font-weight:700;display:flex}.tb-brand b{color:var(--live-bright);font-weight:700}.tb-registry{background:var(--mint);border:1px solid #064e3b33;border-left:3px solid var(--live);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:4px 12px;display:flex}.tb-registry.is-cached{border-color:#d9770633;border-left-color:var(--warn);background:#fef3c7}.tb-registry .lbl{color:var(--live);font-size:.68rem}.tb-registry.is-cached .lbl{color:var(--warn)}.tb-registry .n{color:var(--ink);font-size:.82rem;font-weight:600}.tb-registry em{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--live);background:#fff;border-radius:4px;padding:1px 6px;font-size:.66rem;font-style:normal;font-weight:600}.tb-registry.is-cached em{color:var(--warn)}.tb-gap{flex:1}.tb-profile{margin-right:4px}.tb-profile select{border-color:var(--rule);background-color:#fff}.ribbon{z-index:35;border-bottom:1px solid var(--rule);box-shadow:var(--shadow-sm);background:#fff;flex-wrap:wrap;align-items:center;gap:24px;padding:10px 24px;display:flex;position:sticky;top:60px}.rb-batch{font-family:var(--mono);color:var(--ink-3);letter-spacing:.02em;background:var(--panel-2);border-radius:var(--radius-sm);border:1px solid var(--rule);padding:4px 10px;font-size:.76rem;font-weight:500}.rb-stats{flex-wrap:wrap;gap:20px;margin-left:auto;display:flex}.rb{background:var(--panel-2);border-radius:var(--radius-sm);border:1px solid var(--rule);align-items:center;gap:8px;padding:4px 12px;display:flex}.rb span{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}.rb b{font-family:var(--mono);color:var(--ink);font-size:.95rem;font-weight:600}.rb-gilt{background:#ecfdf5;border-color:#064e3b33}.rb-gilt b{color:var(--gilt)}.rb-live{background:#ecfdf5;border-color:#05966933}.rb-live b{color:var(--live-bright)}.rb-crit{background:#fef2f2;border-color:#dc262633}.rb-crit b{color:var(--crit)}.app-body{flex:1;grid-template-columns:240px minmax(0,1fr);align-items:start;display:grid}.rail{border-right:1px solid var(--rule);background:#fff;align-self:stretch;min-height:calc(100vh - 60px);padding:20px 12px;position:sticky;top:60px}.rail-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.rail-item button{border-radius:var(--radius-sm);text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;align-items:flex-start;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.rail-item button:hover:not(:disabled){background:var(--panel-2)}.rail-mark{font-family:var(--mono);color:var(--ink-3);min-width:20px;padding-top:2px;font-size:.72rem;font-weight:600}.rail-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.rail-copy strong{font-family:var(--cond);letter-spacing:.01em;color:var(--ink-2);font-size:.98rem;font-weight:600}.rail-copy span{color:var(--ink-3);font-size:.74rem;line-height:1.35}.rail-item.is-current button{background:var(--mint);border:1px solid #064e3b26}.rail-item.is-current .rail-copy strong{color:var(--live);font-weight:700}.rail-item.is-current .rail-mark{color:var(--live)}.rail-item.is-done .rail-mark{color:var(--live-bright)}.rail-item.is-locked button{cursor:not-allowed;opacity:.45}.rail-aside{border-top:1px solid var(--rule);margin:16px 0 0;padding:16px 0 0;list-style:none}.app-main{width:100%;min-width:0;max-width:1520px;padding:32px 36px 80px}.section{flex-direction:column;gap:24px;display:flex}.section-head{border-bottom:1px solid var(--rule);padding-bottom:20px}.section-head h1{font-family:var(--cond);letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;font-size:2.1rem;font-weight:700;line-height:1.15}.section-head p{max-width:72ch;color:var(--ink-3);margin:0;font-size:.95rem;line-height:1.55}.headline{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;display:grid}.hl{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;min-width:0;padding:18px 20px;transition:transform .15s,box-shadow .15s}.hl:hover{box-shadow:var(--shadow)}.hl dt{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-weight:600}.hl dd{font-family:var(--mono);letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere;margin:6px 0 0;font-size:1.55rem;font-weight:700;line-height:1.1}.hl p{color:var(--ink-3);margin:6px 0 0;font-size:.78rem;line-height:1.4}.hl-live dd{color:var(--live)}.hl-warn dd{color:var(--warn)}.hl-crit dd{color:var(--crit)}.hl-gilt dd{color:var(--gilt)}.split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.detail{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.detail>summary{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;align-items:center;gap:10px;padding:14px 18px;list-style:none;transition:background .14s;display:flex}.detail>summary::-webkit-details-marker{display:none}.detail>summary:before{content:"";border-left:5px solid var(--ink-3);border-top:4px solid #0000;border-bottom:4px solid #0000;width:0;height:0;transition:transform .14s}.detail[open]>summary:before{transform:rotate(90deg)}.detail>summary:hover{background:var(--panel-2)}.detail-label{font-family:var(--cond);letter-spacing:.01em;color:var(--ink);font-size:1rem;font-weight:600}.detail-note{color:var(--ink-3);margin-left:auto;font-size:.78rem}.detail-body{border-top:1px solid var(--rule);background:var(--panel);padding:20px}.detail-body>.block,.detail-body>.view-panel{border:0;padding:0}.locked-note{border:1px dashed var(--rule);border-radius:var(--radius);background:#fff;flex-direction:column;align-items:flex-start;gap:10px;padding:28px 24px;display:flex}.locked-note p{color:var(--ink-3);margin:0}.glossary{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.glossary li{border-left:3px solid var(--rule);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--panel-2);padding:8px 12px}.glossary strong{color:var(--ink);font-size:.9rem;font-weight:600;display:block}.glossary span{font-family:var(--mono);color:var(--ink-3);margin:2px 0 5px;font-size:.72rem;display:block}.glossary p{color:var(--ink-3);margin:0;font-size:.79rem;line-height:1.45}.sample-routing{border:1px solid #d977064d;border-left:4px solid var(--warn);border-radius:var(--radius);background:#fef3c7;padding:14px 16px}.sample-routing p{color:var(--ink-2);margin:0 0 6px;font-size:.88rem;line-height:1.5}.sample-routing p:last-child{margin-bottom:0}.loc{border:1px solid var(--rule);border-left:4px solid var(--live);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;padding:18px 20px}.loc-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.loc-clear,.loc-gps{font:inherit;color:var(--live);border:1px solid var(--rule);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:6px 12px;font-size:.8rem;font-weight:500;transition:all .14s}.loc-clear{border:0;padding:0;text-decoration:underline}.loc-gps:hover:not(:disabled){border-color:var(--live);background:var(--mint)}.loc-gps:disabled{color:var(--ink-3);cursor:not-allowed}.loc-current{flex-direction:column;gap:2px;margin:0 0 14px;display:flex}.loc-current strong{font-family:var(--mono);color:var(--ink);font-size:1rem;font-weight:600}.loc-current span,.loc-empty{color:var(--ink-3);font-size:.78rem}.loc-empty{margin:0 0 14px}.loc-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.loc-field{flex-direction:column;flex:220px;gap:4px;min-width:0;display:flex;position:relative}.loc-radius{flex:0 180px}.loc-field label{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}.loc-field input,.loc-field select{font:inherit;background:var(--panel-2);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-sm);min-width:0;padding:8px 12px;font-size:.88rem;transition:border-color .14s}.loc-field input:focus-visible,.loc-field select:focus-visible{border-color:var(--live);outline:none}.loc-busy{color:var(--ink-3);font-size:.72rem;position:absolute;bottom:9px;right:10px}.loc-error{color:var(--warn);margin:10px 0 0;font-size:.8rem}.loc-results{border:1px solid var(--rule);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin:10px 0 0;padding:0;list-style:none;overflow:hidden}.loc-results li+li{border-top:1px solid var(--rule)}.loc-results button{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:#fff;border:0;flex-direction:column;gap:2px;padding:9px 12px;transition:background .14s;display:flex}.loc-results button:hover{background:var(--mint)}.loc-results strong{color:var(--ink);font-size:.88rem;font-weight:600}.loc-results span{color:var(--ink-3);font-size:.74rem}.loc-attrib{color:var(--ink-3);margin:10px 0 0;font-size:.68rem}.rank-basis{border-left:3px solid var(--rule);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--panel-2);color:var(--ink-3);margin:0;padding:10px 14px;font-size:.82rem}.rank-basis strong{color:var(--ink-2)}.out-of-range{border:1px solid #d977064d;border-left:4px solid var(--warn);border-radius:var(--radius);background:#fef3c7;padding:14px 16px}.out-of-range p{color:var(--ink-2);margin:0 0 8px;font-size:.88rem;line-height:1.5}.out-of-range strong{color:var(--ink)}@media (width<=1180px){.split{grid-template-columns:1fr}}@media (width<=900px){.app-body{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--rule);min-height:0;padding:0;position:static;overflow-x:auto}.rail-list{flex-direction:row;padding:8px 12px;display:flex}.rail-aside{border-top:0;border-left:1px solid var(--rule);margin:0;padding:8px 12px}.rail-item button{border-radius:var(--radius-sm);white-space:nowrap;padding:8px 12px}.rail-copy span{display:none}.app-main{padding:20px 16px 56px}.ribbon{position:static}.rb-stats{gap:12px;margin-left:0}}@media (width<=620px){.loc-controls{flex-direction:column;align-items:stretch}.loc-radius{flex:auto}}@media (prefers-reduced-motion:reduce){.detail>summary:before{transition:none}}.view-panel{min-width:0;font-family:var(--body);color:var(--ink-2);flex-direction:column;gap:20px;display:flex}.view-panel :where(h2){font-family:var(--cond);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.45rem;font-weight:700;line-height:1.2}.view-panel :where(h3){font-family:var(--cond);letter-spacing:0;color:var(--ink);margin:0;font-size:1.15rem;font-weight:600}.view-panel :where(h4){font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:.8rem;font-weight:600}.view-panel :where(p){color:var(--ink-2);margin:0;font-size:.9rem;line-height:1.55}.view-panel :where(section){border-top:1px solid var(--rule);flex-direction:column;gap:14px;padding-top:18px;display:flex}.panel{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);font-family:var(--body);color:var(--ink-2);background:#fff;flex-direction:column;gap:16px;padding:20px;display:flex}.lede{font-family:var(--body);color:var(--ink-2);margin:0;font-size:.94rem;line-height:1.6}.subhead{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.85rem;font-weight:600}.footnote{color:var(--ink-3);margin:0;font-size:.78rem;line-height:1.5}.meta-grid{border:1px solid var(--rule);border-radius:var(--radius);background:var(--rule);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.meta-grid.dense{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.meta-grid div{background:#fff;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.meta-grid dt{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600}.meta-grid dd{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);margin:0;font-size:.95rem;font-weight:600;line-height:1.25}.table-wrap{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:420px;font-family:var(--body);font-size:.85rem}.table-wrap th{border-bottom:1px solid var(--rule);background:var(--panel-2);font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;text-align:left;white-space:nowrap;color:var(--ink-3);padding:10px 14px;font-size:.72rem;font-weight:600}.table-wrap td{border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums;color:var(--ink-2);padding:10px 14px}.table-wrap tbody tr:last-child td{border-bottom:0}.plain-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.plain-list :where(li){color:var(--ink-2);padding-left:18px;font-size:.88rem;line-height:1.5;position:relative}.plain-list li:before{content:"";background:var(--live-bright);border-radius:50%;width:6px;height:6px;position:absolute;top:.65em;left:0}.chip-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chip-list li{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);padding:4px 10px;font-size:.78rem;font-weight:500}.chip-list li.critical{color:var(--crit);background:#fef2f2;border-color:#dc26264d}.stat-row{border:1px solid var(--rule);border-radius:var(--radius);background:var(--rule);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:1px;display:flex;overflow:hidden}.stat-row div{background:#fff;flex-direction:column;flex:120px;gap:4px;padding:12px 14px;display:flex}.stat-row span{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600}.stat-row strong{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:1.2rem;font-weight:700;line-height:1.1}.stat-row.compact div{padding:9px 12px}.stat-row.compact strong{font-size:1.02rem}.compact{gap:1px}.linkish{font-family:var(--cond);letter-spacing:.04em;color:var(--live);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.84rem;font-weight:600}.linkish:hover{color:var(--live-bright);text-underline-offset:3px;text-decoration:underline}.cta{border:1px solid var(--live);border-radius:var(--radius-sm);background:var(--live);width:100%;font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;text-align:center;color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);padding:12px 18px;font-size:.92rem;font-weight:700;transition:all .14s;display:block}.cta:hover:not(:disabled){box-shadow:var(--shadow);background:#047857;border-color:#047857}.cta:disabled{border-color:var(--rule);background:var(--panel-3);color:var(--ink-3);cursor:not-allowed;box-shadow:none}.cta-inline{letter-spacing:.04em;width:auto;padding:8px 16px;font-size:.84rem;display:inline-block}.field{min-width:0;font-family:var(--body);flex-direction:column;gap:6px;display:flex}.field span{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}.field select,.field input{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);width:100%;font-family:var(--body);color:var(--ink);padding:9px 12px;font-size:.88rem;transition:border-color .14s}.field select:focus-visible,.field input:focus-visible{border-color:var(--live);outline:none}.field select{font-family:var(--mono);font-variant-numeric:tabular-nums;cursor:pointer}.field input::placeholder{color:var(--ink-3)}.field select:disabled,.field input:disabled{color:var(--ink-3);cursor:not-allowed;background:var(--panel-3)}.field input[type=file]{font-family:var(--mono);color:var(--ink-2);cursor:pointer;padding:8px;font-size:.78rem}.bar-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.bar-list li{flex-direction:column;gap:6px;display:flex}.bar-label{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.bar-label strong{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);font-size:.86rem;font-weight:600}.bar-label span{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:.84rem;font-weight:500}.bar-track{background:var(--panel-3);border-radius:4px;width:100%;height:8px;overflow:hidden}.bar-fill{background:var(--live-bright);border-radius:4px;max-width:100%;height:100%;display:block}.bar-fill.bar-muted{background:var(--ink-3);opacity:.4}.bar-list p{color:var(--ink-3);margin:0;font-size:.78rem;line-height:1.45}.sensor-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sensor-list :where(li){border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:12px;padding:10px 14px;display:flex}.sensor-list strong{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);flex:auto;font-size:.86rem;font-weight:600}.sensor-list span{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:.85rem}.sensor-list em{min-width:54px;font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;text-align:right;color:var(--ink-3);flex:none;font-size:.72rem;font-style:normal;font-weight:700}.sensor-good{border-left-color:var(--live-bright);background:#f0fdf4}.sensor-good em{color:var(--live-bright)}.sensor-watch{border-left-color:var(--warn);background:#fef3c7}.sensor-watch em{color:var(--warn)}.sensor-poor{border-left-color:var(--crit);background:#fef2f2}.sensor-poor em{color:var(--crit)}.risk-list,.rec-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.risk-list :where(li),.rec-list :where(li){border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.risk-list strong,.rec-list strong{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);font-size:.92rem;font-weight:600}.risk-list :where(span){font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);align-self:flex-start;font-size:.72rem;font-weight:700}.risk-list p,.rec-list p{color:var(--ink-2);margin:0;font-size:.86rem;line-height:1.55}.rec-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.rec-top span{font-family:var(--mono);font-variant-numeric:tabular-nums;text-transform:uppercase;color:var(--ink-3);flex:none;font-size:.76rem}.rec-list em{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-style:normal;font-weight:600}.prio-critical{border-left-color:var(--crit);background:#fef2f2}.prio-critical span,.prio-critical .rec-top span{color:var(--crit)}.prio-high{border-left-color:var(--crit);background:#fff5f5}.prio-high span,.prio-high .rec-top span{color:var(--crit)}.prio-medium{border-left-color:var(--warn);background:#fef3c7}.prio-medium span,.prio-medium .rec-top span{color:var(--warn)}.prio-low{border-left-color:var(--live);background:#ecfdf5}.prio-low span,.prio-low .rec-top span{color:var(--live)}.workforce-card{border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--panel-2);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.workforce-card strong{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);font-size:.9rem;font-weight:600}.workforce-card span{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:.8rem;line-height:1.45}.workforce-card span+span{color:var(--ink-3)}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.analytics-grid section{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:14px;padding:18px;display:flex}.incentive-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.incentive-list :where(li){border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.incentive-list li div{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.incentive-list strong{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);font-size:.94rem;font-weight:600}.incentive-list span{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-weight:600}.incentive-list em{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--gilt);font-size:1.08rem;font-style:normal;font-weight:700}.incentive-list :where(p){color:var(--ink-2);margin:0;font-size:.85rem;line-height:1.5}.condition{border-left:3px solid var(--warn);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#92400e;background:#fef3c7;padding:8px 12px;font-size:.8rem;line-height:1.45}.status-available{border-left:4px solid var(--live);background:#ecfdf5}.status-conditional{border-left:4px solid var(--warn);background:#fef3c7}.status-unavailable{border-left:4px solid var(--crit);background:#fef2f2}.factor-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.factor-grid :where(li){border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.factor-grid strong{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:.84rem;font-weight:600}.factor-grid span{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:.98rem;font-weight:600}.factor-grid p{color:var(--ink-3);margin:0;font-size:.8rem;line-height:1.5}.factor-good{border-left-color:var(--live-bright)}.factor-watch{border-left-color:var(--warn)}.factor-risk{border-left-color:var(--crit)}.factor-info{border-left-color:var(--idle)}.unit-name{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin:0;font-size:1.1rem;font-weight:700}.passport{border-radius:var(--radius-sm);background:var(--mint);font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--live);overflow-wrap:anywhere;border:1px solid #064e3b33;padding:10px 14px;font-size:.88rem;font-weight:600;display:block}.score-hero{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:24px;display:grid}.score-hero>div:last-child{flex-direction:column;gap:10px;min-width:0;display:flex}.score-ring{background:conic-gradient(var(--live-bright) calc(var(--score,0) * 1%), var(--panel-3) 0);width:132px;height:132px;box-shadow:var(--shadow);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.score-ring:before{content:"";border:1px solid var(--rule);background:#fff;border-radius:50%;position:absolute;inset:12px}.score-ring strong{z-index:1;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:2.2rem;font-weight:700;line-height:1;position:relative}.score-ring span{z-index:1;font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600;position:relative}.step-n{border:1px solid var(--rule);background:var(--panel-2);width:26px;height:26px;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.78rem;font-weight:600;display:flex}.step-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.step-copy strong{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:.86rem;font-weight:600}.step-copy span{font-family:var(--body);color:var(--ink-3);font-size:.78rem;line-height:1.45}.tab{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:3px solid #0000;flex-direction:column;gap:3px;padding:10px 14px;transition:all .14s;display:flex}.tab:hover:not(:disabled){background:var(--panel-2)}.tab strong{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-size:.82rem;font-weight:600}.tab span{font-family:var(--body);color:var(--ink-3);font-size:.72rem;line-height:1.35}.tab.active{border-bottom-color:var(--live);background:var(--mint)}.tab.active strong{color:var(--live)}.tab.locked{opacity:.45;cursor:not-allowed}.image-intake{gap:18px}.image-controls{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.image-controls .field{flex:220px}.upload-field{border:2px dashed var(--rule-2);border-radius:var(--radius);background:var(--panel-2);padding:12px}.waste-preview{border:1px solid var(--rule);border-radius:var(--radius);max-width:100%;box-shadow:var(--shadow-sm);display:block}.sample-card{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;background:#fff;flex-direction:column;gap:6px;padding:10px;transition:all .14s;display:flex}.sample-card:hover:not(:disabled){border-color:var(--live-bright);box-shadow:var(--shadow)}.sample-card img{border:1px solid var(--rule);border-radius:var(--radius-sm);object-fit:cover;width:100%;height:96px;display:block}.sample-card strong{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:.82rem;font-weight:600}.sample-card span{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:.72rem}.sample-card.active{border-color:var(--live);background:var(--mint);box-shadow:0 0 0 2px #064e3b26}.sample-card:disabled{opacity:.45;cursor:not-allowed}.vision-result-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.dot{background:var(--rule-2);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.dot.idle{background:var(--rule-2)}.dot.running{background:var(--warn)}.dot.done{background:var(--live-bright)}.gloss-running{border-left-color:var(--warn)}.gloss-done{border-left-color:var(--live-bright)}.flow-shell{border:1px solid var(--rule);border-radius:var(--radius);background:var(--ground);height:420px;box-shadow:var(--shadow-sm);overflow:hidden}.flow-shell .react-flow__controls button{border:1px solid var(--rule);border-radius:var(--radius-sm);color:var(--ink);background:#fff}.flow-shell .react-flow__controls button:hover{background:var(--panel-2)}.flow-shell .react-flow__controls button svg{fill:currentColor}.flow-shell .react-flow__minimap{border:1px solid var(--rule);border-radius:var(--radius-sm);background:#fff}.agent-node{border:1px solid var(--rule);border-radius:var(--radius);width:210px;box-shadow:var(--shadow-sm);font-family:var(--body);background:#fff;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.agent-node-top{align-items:center;gap:7px;display:flex}.agent-pulse{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.agent-status{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.68rem;font-weight:700}.agent-node h3{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.92rem;font-weight:600}.agent-role{color:var(--ink-3);margin:0;font-size:.74rem;line-height:1.4}.agent-msg{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2);overflow-wrap:anywhere;margin:0;font-size:.7rem;line-height:1.4}.agent-node.status-idle{border-color:var(--rule)}.agent-node.status-running{border-color:var(--warn);background:#fef3c7}.status-running .agent-status{color:var(--warn)}.status-running .agent-pulse{background:var(--warn);animation:1.4s ease-in-out infinite agent-pulse}.agent-node.status-done{background:#f0fdf4;border-color:#0596694d}.status-done .agent-status{color:var(--live-bright)}.status-done .agent-pulse{background:var(--live-bright)}.agent-node.status-error{border-color:var(--crit);background:#fef2f2}.status-error .agent-status{color:var(--crit)}.status-error .agent-pulse{background:var(--crit)}.handle{background:var(--rule-2);border:0;border-radius:50%;width:8px;height:8px}@keyframes agent-pulse{0%,to{box-shadow:0 0 #d9770680}50%{box-shadow:0 0 0 5px #d9770600}}.app-footer{border-top:1px solid var(--rule);font-family:var(--body);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 4px 4px;font-size:.78rem;display:flex}.app-footer strong{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-weight:700}@media (prefers-reduced-motion:reduce){.status-running .agent-pulse{animation:none}}@media (width<=900px){.analytics-grid,.vision-result-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.score-hero{grid-template-columns:minmax(0,1fr);justify-items:start;gap:16px}}@media (width<=620px){.meta-grid,.meta-grid.dense,.factor-grid,.sample-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-shell{height:340px}.cta-inline{width:100%}}.center-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.center-list>li{min-width:0}.center-empty{border:1px dashed var(--rule);border-radius:var(--radius);color:var(--ink-3);background:#fff;margin:0;padding:24px 20px;font-size:.88rem;line-height:1.55}.center-card{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:14px;min-width:0;padding:18px 20px;transition:transform .14s,box-shadow .14s;display:flex}.center-card:hover{box-shadow:var(--shadow)}.center-off{background:var(--panel-2);opacity:.75}.center-off .center-verified{color:var(--ink-3);background:var(--panel-3);border-color:var(--rule)}.center-top{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.center-rank{font-family:var(--mono);color:var(--ink-3);flex:none;font-size:.84rem;font-weight:600}.center-id{flex:260px;min-width:0}.center-name{font-family:var(--cond);letter-spacing:.01em;color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:1.15rem;font-weight:700;line-height:1.25}.center-where{color:var(--ink-3);overflow-wrap:anywhere;flex-wrap:wrap;gap:0 6px;margin:4px 0 0;font-size:.82rem;line-height:1.4;display:flex}.center-dot{color:var(--rule-2)}.center-verified{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--live);background:var(--mint);border-radius:var(--radius-sm);white-space:nowrap;cursor:help;border:1px solid #064e3b33;flex:none;padding:3px 8px;font-size:.7rem;font-weight:700}.center-dist{color:var(--ink-2);margin:0;font-size:.83rem}.center-dist b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.center-muted{color:var(--ink-3)}.center-reject{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--crit);margin:0;font-size:.74rem;font-weight:700}.center-classes{color:var(--ink-3);flex-wrap:wrap;gap:6px;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.center-chip{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius-sm);white-space:nowrap;cursor:help;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-block}.center-facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;display:grid}.center-facts>div{background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius-sm);flex-direction:column;gap:2px;min-width:0;padding:8px 12px;display:flex}.center-facts dt,.center-lbl{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600}.center-facts dd{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:.88rem;font-weight:600}.center-money{border-left:4px solid var(--gilt);border-radius:0 var(--radius-sm) var(--radius-sm) 0;border:1px solid #ca8a0433;border-left:4px solid var(--gilt);background:#fefce8;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;display:flex}.center-net{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.center-net b{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--gilt);overflow-wrap:anywhere;font-size:1.35rem;font-weight:700;line-height:1.1}.center-minus{color:var(--ink-3);justify-content:space-between;align-items:baseline;gap:14px;margin:0;font-size:.79rem;display:flex}.center-minus .n{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-2)}.center-caveat{border-top:1px solid var(--rule);color:var(--ink-3);margin:4px 0 0;padding-top:6px;font-size:.74rem;line-height:1.45}.center-caveat b{color:var(--ink-2);font-weight:600}.center-contact{flex-direction:column;gap:4px;min-width:0;display:flex}.center-person{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.88rem;font-weight:500}.center-lines{overflow-wrap:anywhere;flex-wrap:wrap;gap:4px 18px;margin:0;font-size:.82rem;display:flex}.center-lines a,.dir-lines a{color:var(--live);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.center-lines a:hover,.dir-lines a:hover{color:var(--live-bright)}.dir{border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:16px;min-width:0;padding:20px;display:flex}.dir-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.dir-title{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin:0;font-size:1.1rem;font-weight:700}.dir-count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:.78rem}.dir-controls{flex-wrap:wrap;gap:12px;display:flex}.dir-field{flex-direction:column;flex:200px;gap:4px;min-width:0;display:flex}.dir-lbl{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.7rem;font-weight:600}.dir-input{width:100%;min-width:0;font-family:var(--body);color:var(--ink);background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:8px 12px;font-size:.88rem;transition:border-color .14s}.dir-input::placeholder{color:var(--ink-3)}.dir-input:focus-visible{border-color:var(--live);outline:none}.dir-error{border-left:4px solid var(--crit);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--crit);background:#fef2f2;margin:0;padding:10px 14px;font-size:.84rem}.dir-scroll{border:1px solid var(--rule);border-radius:var(--radius-sm);max-height:58vh;overflow:auto}.dir-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.84rem}.dir-table th{z-index:1;text-align:left;font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--panel-2);border-bottom:1px solid var(--rule);white-space:nowrap;padding:10px 12px;font-size:.72rem;font-weight:600;position:sticky;top:0}.dir-table td{border-bottom:1px solid var(--rule);color:var(--ink-2);vertical-align:top;font-variant-numeric:tabular-nums;padding:10px 12px}.dir-table tr:last-child td{border-bottom:0}.dir-table td.n,.dir-table td .n{font-family:var(--mono)}.dir-r{text-align:right}.dir-k{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.dir-addr,.dir-state,.dir-person,.dir-lines{overflow-wrap:anywhere;display:block}.dir-state{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-weight:600}.dir-classes{flex-wrap:wrap;gap:4px;display:inline-flex}.dir-lines{flex-direction:column;gap:2px;font-size:.78rem;display:flex}.dir-blank{color:var(--ink-3);padding:20px 12px}.dir-prov,.dir-note{color:var(--ink-3);margin:0;font-size:.76rem;line-height:1.5}.dir-fresh{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--live);font-weight:700}.dir-stale{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--warn);font-weight:700}@media (width<=820px){.center-card{padding:14px}.center-verified{order:3}.dir{padding:14px}.dir-scroll{max-height:none}}.kb{border:1px solid var(--rule);background:var(--panel);flex-direction:column;gap:20px;min-width:0;padding:18px;display:flex}.kb-head{border-bottom:1px solid var(--rule);flex-direction:column;gap:7px;padding-bottom:14px;display:flex}.kb-head h3{font-family:var(--cond);letter-spacing:.005em;color:var(--ink);margin:0;font-size:1.36rem;font-weight:600;line-height:1.15}.kb-lede{max-width:74ch;color:var(--ink-3);margin:0;font-size:.88rem;line-height:1.55}.kb-label{font-family:var(--cond);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}.kb-block{flex-direction:column;gap:12px;min-width:0;display:flex}.kb-block h4{font-family:var(--cond);letter-spacing:.01em;color:var(--ink-2);margin:0;font-size:1.1rem;font-weight:600}.kb-block>p{max-width:74ch;color:var(--ink-3);margin:0;font-size:.85rem;line-height:1.55}.kb-where{border-left:2px solid var(--rule);padding-left:11px}.kb-table-wrap{border:1px solid var(--rule);max-width:100%;overflow-x:auto}.kb-table{border-collapse:collapse;width:100%;min-width:480px;font-size:.83rem}.kb-table caption.kb-cap{caption-side:top;text-align:left;background:var(--panel-2);border-bottom:1px solid var(--rule-2);padding:9px 12px}.kb-table th{text-align:left;white-space:nowrap;background:var(--panel-2);border-bottom:1px solid var(--rule);font-family:var(--cond);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);padding:9px 12px;font-size:.71rem;font-weight:600;position:sticky;top:0}.kb-table td{vertical-align:top;border-bottom:1px solid var(--rule-2);color:var(--ink-2);padding:10px 12px;line-height:1.5}.kb-table tbody tr:last-child td{border-bottom:0}.kb-table .kb-num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;color:var(--ink)}.kb-table .kb-cmp{color:var(--ink);min-width:190px}.kb-table tr.kb-sub .kb-cmp{color:var(--ink-2);padding-left:22px}.kb-table .kb-why{color:var(--ink-3);min-width:260px;font-size:.79rem}.kb-tag{border:1px solid var(--rule);font-family:var(--cond);letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;color:var(--ink-3);border-left-width:2px;padding:2px 7px;font-size:.69rem;display:inline-block}.kb-tag.is-recovered{border-left-color:var(--live);color:var(--live)}.kb-tag.is-partial{border-left-color:var(--warn);color:var(--warn)}.kb-tag.is-residual{border-left-color:var(--idle);color:var(--idle)}.kb-facts{border-top:1px solid var(--rule-2);margin:0;padding:0;list-style:none}.kb-facts>li{border-bottom:1px solid var(--rule-2);border-left:2px solid var(--rule);min-width:0;padding:12px 0 12px 14px}.kb-facts>li:last-child{border-bottom:0}.kb-fact{max-width:82ch;color:var(--ink-2);margin:0;font-size:.88rem;line-height:1.6}.kb-cite{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);margin-top:6px;font-size:.71rem;line-height:1.4;display:block}.kb-cite a{color:var(--ink-3);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule)}.kb-cite a:hover{color:var(--live);-webkit-text-decoration-color:var(--live);text-decoration-color:var(--live)}.kb-rules{border-top:1px solid var(--rule-2);border-left:1px solid var(--rule-2);grid-template-columns:repeat(auto-fit,minmax(292px,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.kb-rules>li{border-right:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);min-width:0;padding:14px 15px}.kb-rule{color:var(--ink);margin:0;font-size:.91rem;font-weight:600;line-height:1.45}.kb-why-text{color:var(--ink-3);margin:6px 0 0;font-size:.82rem;line-height:1.55}.kb-danger{border:1px solid var(--crit);border-left-width:3px;flex-direction:column;gap:12px;padding:15px 16px;display:flex}.kb-danger>.kb-label{color:var(--crit)}.kb-danger .kb-rules{border-left-color:var(--rule);border-top-color:var(--rule)}.kb-danger .kb-rules>li{border-right-color:var(--rule);border-bottom-color:var(--rule)}.kb-caveat{border:1px dashed var(--rule);max-width:86ch;color:var(--ink-3);margin:0;padding:11px 13px;font-size:.79rem;line-height:1.55}.kb-notice{border:1px dashed var(--rule);max-width:78ch;color:var(--ink-3);margin:0;padding:20px;font-size:.88rem;line-height:1.6}.kb-notice strong{font-family:var(--cond);letter-spacing:.01em;color:var(--ink-2);margin-bottom:6px;font-size:1.02rem;display:block}.kb-refs{border-top:1px solid var(--rule);flex-direction:column;gap:9px;padding-top:14px;display:flex}.kb-refs-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.kb-refs-list>li{color:var(--ink-3);min-width:0;font-size:.78rem;line-height:1.5}.kb-refs-list cite{color:var(--ink-2);font-style:normal}.kb-refs-list a{color:var(--ink-3);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);overflow-wrap:anywhere}.kb-refs-list a:hover{color:var(--live);-webkit-text-decoration-color:var(--live);text-decoration-color:var(--live)}.kb-refs-pub{font-family:var(--mono);letter-spacing:.02em;font-size:.71rem}@media (width<=700px){.kb{gap:16px;padding:14px}.kb-head h3{font-size:1.22rem}.kb-rules{grid-template-columns:1fr}}:root{--ground:#f8fafc;--panel:#fff;--panel-2:#f1f5f9;--panel-3:#e2e8f0;--rule:#e2e8f0;--rule-2:#cbd5e1;--ink:#0f172a;--ink-2:#334155;--ink-3:#64748b;--live:#064e3b;--live-bright:#059669;--mint:#ecfdf5;--warn:#d97706;--crit:#dc2626;--idle:#0284c7;--gilt:#047857;--radius:.5rem;--radius-sm:.375rem;--radius-lg:.75rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 20px #064e3b14;--cond:"DM Sans", system-ui, sans-serif;--body:"Inter", system-ui, sans-serif;--mono:"Inter", ui-monospace, "SFMono-Regular", monospace;--line:var(--rule);--ink-soft:var(--ink-3);--forest:var(--live);--forest-deep:#0d2f22;--danger:var(--crit);--font-display:var(--cond)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--ground);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}:focus-visible{outline:2px solid var(--live);outline-offset:2px}.lbl{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.76rem;font-weight:600}.n{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.v-live{color:var(--live)}.v-warn{color:var(--warn)}.v-crit{color:var(--crit)}.v-gilt{color:var(--gilt)}.v-grade-a{color:var(--live)}.v-grade-b{color:var(--idle)}.v-grade-c{color:var(--warn)}.v-grade-d{color:var(--crit)}.beacon{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:inline-flex}.beacon i{border-radius:50%;flex:none;width:8px;height:8px}.link-live{color:var(--live-bright)}.link-live i{background:var(--live-bright);animation:1.9s ease-in-out infinite beat}.link-wait{color:var(--idle)}.link-wait i{background:var(--idle)}.link-down{color:var(--crit)}.link-down i{background:var(--crit)}@keyframes beat{0%,to{box-shadow:0 0 #05966966}70%{box-shadow:0 0 0 8px #05966900}}.btn-run{font-family:var(--cond);letter-spacing:.04em;color:#fff;background:var(--live);border:1px solid var(--live);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);align-items:center;gap:9px;padding:8px 18px;font-size:.88rem;font-weight:600;transition:all .14s;display:inline-flex}.btn-run:hover:not(:disabled){box-shadow:var(--shadow);background:#047857;border-color:#047857}.btn-run:disabled{background:var(--panel-3);border-color:var(--rule);color:var(--ink-3);cursor:not-allowed;box-shadow:none}.btn-spin{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:11px;height:11px;animation:.72s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.connection-banner{border:1px solid #dc26264d;border-left:4px solid var(--crit);border-radius:var(--radius);background:#fef2f2;flex-direction:column;gap:5px;margin:14px 18px 0;padding:13px 16px;display:flex}.connection-banner strong{font-family:var(--cond);letter-spacing:.04em;text-transform:uppercase;color:var(--crit);font-size:.95rem;font-weight:700}.connection-banner p{color:var(--ink-2);margin:0;font-size:.87rem}.connection-banner code{font-family:var(--mono);color:var(--ink);background:#fee2e2;border-radius:4px;padding:1px 5px;font-size:.82rem}.track{gap:8px;margin:0;padding:4px 2px 8px;list-style:none;display:flex;overflow-x:auto}.node{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;flex:1 0 136px;gap:6px;min-width:0;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.node-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.node-n{font-family:var(--mono);color:var(--ink-3);font-size:.68rem;font-weight:600}.node-dot{background:var(--rule-2);border-radius:50%;flex:none;width:8px;height:8px}.node-name{font-family:var(--cond);letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3);font-size:.95rem;font-weight:600;line-height:1.25}.node-role{color:var(--ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.73rem;line-height:1.35;display:-webkit-box;overflow:hidden}.node-ms{font-family:var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:auto;font-size:.68rem}.n-done{background:#f0fdf4;border-color:#0596694d}.n-done .node-dot{background:var(--live-bright)}.n-done .node-name{color:var(--live)}.n-done .node-ms{color:var(--live-bright)}.n-run{background:var(--mint);border-color:var(--warn);box-shadow:0 0 0 2px #d9770626}.n-run .node-dot{background:var(--warn);animation:1.4s ease-in-out infinite beat-warn}.n-run .node-name,.n-run .node-ms{color:var(--warn)}@keyframes beat-warn{0%,to{box-shadow:0 0 #d9770680}70%{box-shadow:0 0 0 7px #d9770600}}.n-err{border-color:var(--crit);background:#fef2f2}.n-err .node-dot{background:var(--crit)}.n-err .node-name,.n-err .node-ms{color:var(--crit)}.block{border-bottom:1px solid var(--rule);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.block-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.block-head h3{margin:0}.block-head .n{color:var(--ink-3);font-size:.76rem}.block .lbl.sub{border-top:1px solid var(--rule-2);padding-top:4px}.t-wrap{border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm);overflow-x:auto}.t-wrap table{border-collapse:collapse;width:100%;min-width:560px;font-size:.85rem}.t-wrap th{text-align:left;font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:var(--panel-2);border-bottom:1px solid var(--rule);white-space:nowrap;padding:10px 12px;font-size:.74rem;font-weight:600}.t-wrap td{border-bottom:1px solid var(--rule);color:var(--ink-2);font-variant-numeric:tabular-nums;padding:10px 12px}.t-wrap tr:last-child td{border-bottom:0}.t-wrap td.r,.t-wrap th.r{text-align:right}.t-wrap td.k{color:var(--ink);font-weight:500}.t-wrap td .n{color:var(--ink)}.row-active td{background:var(--mint)}.row-pick{font:inherit;color:var(--live);cursor:pointer;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:500;-webkit-text-decoration:underline #064e3b4d;text-decoration:underline #064e3b4d}.row-pick:hover:not(:disabled){color:var(--live-bright);-webkit-text-decoration-color:var(--live-bright);text-decoration-color:var(--live-bright)}.row-pick:disabled{cursor:not-allowed;color:var(--ink-3);text-decoration:none}.chip{font-family:var(--cond);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);white-space:nowrap;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-block}.c-run{color:var(--warn);background:#fef3c7;border:1px solid #d9770633}.c-done{color:var(--live);background:#ecfdf5;border:1px solid #064e3b33}.c-queue{color:var(--idle);background:#e0f2fe;border:1px solid #0284c733}.c-hold{color:var(--crit);background:#fef2f2;border:1px solid #dc262633}.grade{font-family:var(--cond);letter-spacing:.02em;font-size:1.08rem;font-weight:700}.g-a{color:var(--live)}.g-b{color:var(--idle)}.g-c{color:var(--warn)}.g-d{color:var(--crit)}.facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 22px;margin:0;display:grid}.facts>div{border-bottom:1px solid var(--rule);flex-direction:column;gap:2px;min-width:0;padding:8px 0;display:flex}.facts dt{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem;font-weight:600}.facts dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.9rem}.facts dd.n{font-size:.86rem}.facts.dense{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.facts.dense dd{font-size:.85rem}.units{flex-direction:column;gap:13px;margin:0;padding:0;list-style:none;display:flex}.unit{flex-direction:column;gap:5px;display:flex}.unit-routed{background:var(--mint);border-left:4px solid var(--live);border-radius:var(--radius-sm);margin:0 -18px;padding:10px 18px}.unit-head{justify-content:space-between;align-items:baseline;gap:12px;font-size:.84rem;display:flex}.unit-head b{color:var(--ink);align-items:baseline;gap:8px;min-width:0;font-weight:600;display:flex}.unit-tag{font-family:var(--cond);letter-spacing:.08em;text-transform:uppercase;color:var(--live);white-space:nowrap;font-size:.68rem;font-weight:600}.unit-head .n{color:var(--ink-3);white-space:nowrap;font-size:.75rem}.meter{background:var(--panel-3);border-radius:4px;height:8px;display:flex;overflow:hidden}.meter i{height:100%;display:block}.m-ok{background:var(--live)}.m-busy{background:var(--warn)}.m-full{background:var(--crit)}.m-inbound{background:repeating-linear-gradient(135deg, var(--gilt) 0 3px, #04785759 3px 6px)}.unit-sub{font-family:var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:12px;font-size:.69rem;display:flex}.feed{flex-direction:column;max-height:340px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.feed li{border-bottom:1px solid var(--rule);grid-template-columns:66px 12px minmax(0,1fr);align-items:start;gap:10px;padding:10px 0;font-size:.83rem;display:grid}.feed li:last-child{border-bottom:0}.feed time{font-family:var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.72rem}.feed i{border-radius:50%;width:6px;height:6px;margin-top:7px}.feed span{color:var(--ink-2);min-width:0}.feed b{color:var(--ink);font-weight:500}.f-live i{background:var(--live)}.f-warn i{background:var(--warn)}.f-crit i{background:var(--crit)}.f-info i{background:var(--idle)}.feed-empty{color:var(--ink-3);border-bottom:0;padding:8px 0;font-size:.85rem;display:block}@media (width<=820px){.hide-md{display:none}.block{padding-left:13px;padding-right:13px}.unit-routed{margin:0 -13px;padding-left:13px;padding-right:13px}}@media (prefers-reduced-motion:reduce){.link-live i,.n-run .node-dot,.btn-spin{animation:none}}.app-pages{max-width:1100px;margin:0 auto;padding:0 20px 32px}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 0 12px;animation:.42s both rise;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-logo{object-fit:cover;background:var(--forest-deep);width:48px;height:48px;box-shadow:var(--shadow-sm);border-radius:12px}.brand-name{font-family:var(--font-display);letter-spacing:-.03em;color:var(--forest-deep);margin:0;font-size:1.35rem;font-weight:800}.brand-tag{color:var(--ink-soft);margin:2px 0 0;font-size:.78rem}.header-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.profile-switcher{color:var(--ink-soft);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.profile-switcher-label{letter-spacing:.04em;text-transform:uppercase;font-weight:600}.profile-switcher select{appearance:none;border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#ffffffe6;background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 10px) 55%;background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-radius:999px;padding:6px 28px 6px 10px;font-size:.78rem;font-weight:600}.profile-switcher select:focus{outline-offset:1px;outline:2px solid #05966959}.profile-switcher.is-compact .profile-switcher-label{display:none}.pill{border:1px solid var(--line);color:var(--ink-soft);background:#ffffffbf;align-items:center;padding:6px 10px;font-size:.78rem;display:inline-flex}.pill-score{color:var(--forest);background:var(--mint);border-color:#05966959}.pill-live{color:var(--forest-deep);border-color:#064e3b4d}.pill-idle{color:var(--ink-soft)}.pill-offline{color:var(--danger);background:#fef2f2;border-color:#dc26264d}.page-nav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-bottom:8px;padding:12px 0 8px;display:flex}.page-nav-link{color:var(--ink-soft);border:1px solid #0000;padding:8px 12px;font-size:.86rem;font-weight:600;text-decoration:none;transition:background .18s,color .18s,border-color .18s}.page-nav-link:hover{color:var(--forest-deep);background:#ffffff8c}.page-nav-link.is-active{color:var(--forest-deep);border-color:var(--line);background:#ffffffd9}.page{padding:18px 4px 28px;animation:.42s both rise}.eyebrow{font-family:var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--gilt);margin:0 0 6px;font-size:.72rem;font-weight:700}.page h1{font-family:var(--font-display);letter-spacing:-.03em;color:var(--forest-deep);margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.2rem)}.page .lede{max-width:42rem;color:var(--ink-soft);margin:0 0 22px;line-height:1.55}.page-hero{margin-bottom:18px}.app-footer{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px;padding-top:14px;font-size:.78rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.family-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.family-tile{color:inherit;border:1px solid var(--line);background:linear-gradient(160deg,#ffffffd1,#e7f0e8e6);padding:16px 14px;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:block}.family-tile:hover{border-color:#1f6b4a59;transform:translateY(-2px);box-shadow:0 10px 24px #0d2f2214}.family-tile.is-selected{border-color:var(--forest)}.family-tile h2{font-family:var(--font-display);color:var(--forest-deep);margin:0 0 6px;font-size:1.05rem}.family-tile p{color:var(--ink-soft);margin:0;font-size:.84rem;line-height:1.4}.capture-layout{flex-direction:column;gap:14px;max-width:720px;display:flex}.upload-zone{cursor:pointer;min-height:140px;color:var(--forest-deep);background:#ffffff8c;border:1.5px dashed #1f6b4a59;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-weight:600;display:flex}.upload-zone small{color:var(--ink-soft);font-weight:400}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row label{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:.8rem;display:flex}.field-row label.grow{flex:1;min-width:180px}.field-row input{border:1px solid var(--line);font:inherit;background:#ffffffd9;padding:8px 10px}.thumb-row{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.thumb-row li{width:100px}.thumb-row img{object-fit:cover;border:1px solid var(--line);width:100px;height:72px;display:block}.thumb-row span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;display:block;overflow:hidden}.action-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.btn{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fffc;justify-content:center;align-items:center;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--forest);border-color:var(--forest);color:#f4faf6}.btn.ghost{background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.form-error{color:var(--danger);font-size:.9rem}.sample-block h2{margin:18px 0 10px;font-size:1rem}.sample-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.sample-card{border:1px solid var(--line);cursor:pointer;text-align:left;font:inherit;background:#ffffffb3;padding:8px}.sample-card img{object-fit:cover;width:100%;height:80px;margin-bottom:6px;display:block}.sample-card span{color:var(--forest-deep);font-size:.78rem;font-weight:600}.stat-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0 0 18px;display:grid}.stat-list.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-list.economics{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.stat-list.economics dd{font-variant-numeric:tabular-nums}.stat-list div{border:1px solid var(--line);background:#ffffffa6;padding:12px}.stat-list dt{color:var(--ink-soft);margin-bottom:4px;font-size:.75rem}.stat-list dd{font-family:var(--font-display);color:var(--forest-deep);margin:0;font-size:1.15rem}.stat-list .net dd.positive{color:var(--forest)}.stat-list .net dd.negative{color:var(--danger)}.callout{border:1px solid var(--line);background:#ffffffb3;margin-bottom:16px;padding:14px 16px}.callout.warn{background:#fde68a40;border-color:#a1620759}.callout.ok{background:#1f6b4a14;border-color:#1f6b4a4d}.callout ul{margin:8px 0 12px;padding-left:18px}.muted-list{color:var(--ink-3);margin:0 0 12px;padding-left:18px;font-size:.82rem;line-height:1.5}.muted-list li+li{margin-top:2px}.finding-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.finding-list li{border:1px solid var(--line);background:#ffffff8c;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.finding-list span{color:var(--ink-soft);font-size:.82rem}.plant-list{flex-direction:column;gap:14px;margin:0 0 18px;padding:0;list-style:none;display:flex}.plant-list>li{border:1px solid var(--line);background:#ffffffa6;padding:14px}.plant-list>li.is-top{border-color:#1f6b4a66;box-shadow:0 8px 20px #0d2f220f}.plant-list h2{font-size:1.05rem;font-family:var(--font-display);margin:0 0 4px}.plant-list header p,.plant-meta{color:var(--ink-soft);margin:0;font-size:.82rem}.component-table{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.component-table li{border-bottom:1px solid var(--line);grid-template-columns:1.2fr 1fr;gap:4px 12px;padding-bottom:8px;display:grid}.component-table em{color:var(--ink-soft);grid-column:1/-1;font-size:.75rem;font-style:normal}.factor-block,.report-block,.env-strip{margin:18px 0}.factor-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.factor-list li{border:1px solid var(--line);background:#ffffff8c;gap:2px;padding:10px 12px;display:grid}.factor-list em{color:var(--ink-soft);font-size:.78rem;font-style:normal}.report-block ol,.report-block ul{margin:8px 0 0;padding-left:18px;line-height:1.5}.rec-plant{color:var(--forest-deep);font-weight:600}.page-agents .workspace{margin-top:12px}@media (width<=720px){.component-table li{grid-template-columns:1fr}.page-nav-link{padding:7px 10px;font-size:.8rem}}.guideline-notes{flex-direction:column;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:flex}.guideline-notes li{border:1px solid var(--line);background:#ffffffa6;padding:10px 12px;font-size:.9rem;line-height:1.45}.guideline-section{border:1px solid var(--line);background:#ffffff8c;margin:0 0 16px;padding:14px}.guideline-section h2{font-family:var(--font-display);color:var(--forest-deep);margin:0 0 8px;font-size:1.05rem}.guideline-section ul{color:var(--ink-soft);margin:0;padding-left:18px;line-height:1.5}.agent-rail{border:1px solid var(--line);background:linear-gradient(160deg,#ecfdf5e6,#ffffffb3);margin:0 0 20px;padding:16px}.agent-rail h2{margin:0 0 4px;font-size:1rem}.agent-rail .lede.compact{margin:0 0 12px;font-size:.88rem}.agent-rail-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.agent-rail-item{border:1px solid var(--line);background:#ffffffbf;grid-template-rows:auto auto;grid-template-columns:minmax(0,1.2fr) auto;gap:2px 10px;padding:8px 10px;display:grid}.agent-rail-name{font-size:.86rem;font-weight:600}.agent-rail-status{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);place-self:start end;font-size:.72rem}.agent-rail-msg{color:var(--ink-soft);grid-column:1/-1;font-size:.78rem}.agent-rail-item.is-running{border-color:var(--forest);box-shadow:inset 3px 0 0 var(--forest)}.agent-rail-item.is-done{box-shadow:inset 3px 0 0 var(--forest-deep);border-color:#05966973}.agent-rail-item.is-error{border-color:var(--danger);box-shadow:inset 3px 0 0 var(--danger)}@media (width<=640px){.agent-rail-item{grid-template-columns:1fr}.agent-rail-status{justify-self:start}}.conversion-plan-block,.offtake-plan-block{border:1px solid var(--line);background:#ecfdf58c;margin:0 0 22px;padding:16px}.offtake-plan-block{background:#ecf8fd8c}.offtake-plan-block h2{margin:0 0 6px;font-size:1.05rem}.offtake-match-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.offtake-match-list li{border:1px solid var(--line);background:#ffffffb3;padding:10px}.offtake-match-list span{color:var(--ink-soft);font-size:.85rem;display:block}.offtake-match-list em{color:var(--ink-soft);font-size:.78rem;font-style:normal;display:block}.conversion-plan-block h2{margin:0 0 6px;font-size:1.05rem}.conversion-output-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.conversion-output-list li{border:1px solid var(--line);background:#ffffffb3;padding:10px}.conversion-output-list span{color:var(--ink-soft);font-size:.85rem;display:block}.conversion-output-list em{color:var(--ink-soft);font-size:.78rem;font-style:normal;display:block}.plant-license{color:var(--forest-deep);margin:4px 0 0;font-size:.82rem}.muted-note{color:var(--ink-soft);margin:6px 0 0;font-size:.85rem}.admin-shell{background:radial-gradient(1200px 480px at 10% -10%, #04785714, transparent 60%), radial-gradient(900px 420px at 100% 0%, #0f766e0f, transparent 55%), var(--bg,#f4f7f5);min-height:100vh;color:var(--ink,#14201b);flex-direction:column;display:flex}.admin-topbar{border-bottom:1px solid var(--line,#d5e0da);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;display:flex;position:sticky;top:0}.admin-brand{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.admin-brand-mark{font-family:var(--font-display,inherit);letter-spacing:.04em;text-transform:lowercase;color:var(--forest,#047857);font-weight:800}.admin-brand strong{font-size:1.05rem}.admin-brand-hint{color:var(--ink-soft,#5b6b64);font-size:.78rem}.admin-topbar-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-body{flex:1;grid-template-columns:240px minmax(0,1fr);gap:0;min-height:0;display:grid}.admin-rail{border-right:1px solid var(--line,#d5e0da);background:#ffffffb8;padding:18px 12px 24px}.admin-rail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft,#5b6b64);margin:0 10px 10px;font-size:.7rem;font-weight:700}.admin-rail ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-rail button{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:10px;padding:10px;display:flex}.admin-rail button:hover{background:#0478570f}.admin-rail button.is-active{border-color:var(--line,#d5e0da);background:#fff;box-shadow:0 8px 20px #14201b0d}.admin-rail-mark{font-family:var(--font-display,inherit);color:var(--forest,#047857);min-width:1.5rem;font-size:.75rem;font-weight:700}.admin-rail button strong{font-size:.92rem;display:block}.admin-rail button em{color:var(--ink-soft,#5b6b64);margin-top:2px;font-size:.75rem;font-style:normal;display:block}.admin-rail-links{border-top:1px solid var(--line,#d5e0da);gap:8px;margin:18px 10px 0;padding-top:14px;display:grid}.admin-rail-links a{color:var(--forest-deep,#065f46);font-size:.82rem;font-weight:600;text-decoration:none}.admin-rail-links a:hover{text-decoration:underline}.admin-main{padding:22px 24px 40px;overflow:auto}.admin-panel-head{margin-bottom:18px}.admin-panel-head h1{letter-spacing:-.02em;margin:4px 0 8px;font-size:clamp(1.5rem,2vw,1.9rem)}.admin-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.admin-kpi-grid article{border:1px solid var(--line,#d5e0da);background:#fff;border-radius:14px;gap:4px;padding:14px 16px;display:grid}.admin-kpi-grid span{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft,#5b6b64);font-size:.72rem;font-weight:700}.admin-kpi-grid strong{letter-spacing:-.03em;font-size:1.55rem}.admin-kpi-grid em{color:var(--ink-soft,#5b6b64);font-size:.78rem;font-style:normal}.admin-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.admin-card{border:1px solid var(--line,#d5e0da);background:#fff;border-radius:14px;padding:16px}.admin-card h2{margin:0 0 12px;font-size:1rem}.admin-subhead{margin:16px 0 8px;font-size:.88rem}.admin-muted{color:var(--ink-soft,#5b6b64);margin:10px 0 0;font-size:.84rem}.admin-agent-list,.admin-event-list,.admin-bar-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-agent-list li,.admin-event-list li{background:#0478570a;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.admin-agent-list li[data-status=running],.admin-event-list li{border-color:#0478571f}.admin-agent-list strong,.admin-event-list strong{font-size:.9rem;display:block}.admin-agent-list span,.admin-event-list span{color:var(--ink-soft,#5b6b64);margin-top:2px;font-size:.78rem;display:block}.admin-agent-list em,.admin-event-list em{text-transform:uppercase;letter-spacing:.04em;color:var(--forest,#047857);white-space:nowrap;font-size:.72rem;font-style:normal;font-weight:700}.admin-table-wrap{overflow:auto}.admin-table-wrap table,.admin-matrix{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table-wrap th,.admin-table-wrap td,.admin-matrix th,.admin-matrix td{text-align:left;border-bottom:1px solid var(--line,#d5e0da);vertical-align:top;padding:8px 10px}.admin-table-wrap .num{text-align:right;font-variant-numeric:tabular-nums}.admin-bar-meta{justify-content:space-between;gap:10px;margin-bottom:4px;font-size:.84rem;display:flex}.admin-bar-track{background:#0478571a;border-radius:999px;height:8px;overflow:hidden}.admin-bar-track i{background:linear-gradient(90deg,#047857,#0f766e);height:100%;display:block}.admin-profile-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.admin-profile-cards article{border:1px solid var(--line,#d5e0da);background:#fff;border-radius:14px;gap:6px;padding:14px 16px;display:grid}.admin-profile-cards span,.admin-profile-cards em{color:var(--ink-soft,#5b6b64);font-size:.82rem;font-style:normal}.admin-cap-desc{color:var(--ink-soft,#5b6b64);margin-top:2px;font-size:.75rem;font-weight:400;display:block}.admin-matrix td[data-level=none]{color:#9ca3af}.admin-matrix td[data-level=read]{color:#0f766e}.admin-matrix td[data-level=write]{color:#047857;font-weight:700}.admin-matrix td[data-level=manage]{color:#065f46;font-weight:800}@media (width<=980px){.admin-body{grid-template-columns:1fr}.admin-rail{border-right:0;border-bottom:1px solid var(--line,#d5e0da)}.admin-kpi-grid,.admin-split,.admin-profile-cards{grid-template-columns:1fr}}.circular-deal-block{border:1px solid var(--line);background:#fffbeba6;margin:0 0 22px;padding:16px}.circular-deal-block.status-locked{background:#ecfdf5b3}.circular-deal-block.status-cleared{background:#ecf8fdbf;border-color:#0f766e59}.circular-deal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.circular-deal-head h2{margin:0 0 6px;font-size:1.05rem}.deal-status-pill{border:1px solid var(--line);background:#ffffffd9;flex-shrink:0;padding:4px 10px;font-size:.78rem}.deal-status-pill.status-cleared{color:var(--forest-deep,#0f766e);border-color:#0f766e73}.deal-subsection{margin-top:14px}.deal-subsection h3{margin:0 0 8px;font-size:.92rem}.custody-leg-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.custody-leg-list li{border:1px solid var(--line);background:#ffffffb3;padding:10px}.custody-leg-list li[data-sealed=yes]{border-color:#0f766e59}.custody-leg-list span{color:var(--ink-soft);font-size:.85rem;display:block}.deal-closed-banner{background:#ecfdf5e6;border:1px solid #0f766e59;margin:12px 0 0;padding:10px 12px;font-size:.9rem}.deal-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}
