.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;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{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#edf5ff;background:#07111d;--bg: #07111d;--panel: #0f1c2e;--panel2: #13243a;--line: rgba(255, 255, 255, .08);--txt: #edf5ff;--muted: #8fa5c2;--blue: #2f7eff;--cyan: #17cbd2;--green: #39df8a;--amber: #ffb547;--red: #ff6673;--violet: #8f7cff;--shadow: 0 18px 38px rgba(0, 0, 0, .28);--light-bg: #f5f7fb;--light-panel: #fff;--light-line: #dbe3ee;--light-txt: #172033;--light-muted: #66778f}*{box-sizing:border-box}body{margin:0;min-width:1180px}button,input,select{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:265px 1fr;min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(47,126,255,.14),transparent 28%),radial-gradient(circle at 95% 20%,rgba(23,203,210,.1),transparent 20%),var(--bg);color:var(--txt)}.app.light{color:var(--txt)}.sidebar{position:sticky;top:0;z-index:10;height:100vh;padding:20px 16px;border-right:1px solid var(--line);background:linear-gradient(180deg,#07101b,#0a1421)}.brandMark{display:flex;align-items:center;gap:12px;margin-bottom:22px}.logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#1768ff,#15d0c6);box-shadow:0 12px 26px #1e79ff4d}.brandMark strong{display:block;font-size:21px}.brandMark span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.navTitle{margin:20px 10px 9px;color:#6781a5;font-size:10px;font-weight:900;letter-spacing:1.2px}nav{display:grid;gap:5px}nav button,.themeButton{display:flex;align-items:center;gap:11px;width:100%;min-height:52px;padding:12px 13px;border:1px solid transparent;border-radius:13px;background:transparent;color:#d8e6f8;text-align:left;font-weight:700}nav button svg,.themeButton svg{width:28px;height:28px;padding:5px;border-radius:9px;background:#ffffff0a}nav button:hover,nav button.active,.themeButton:hover{border-color:#2f7eff38;background:linear-gradient(90deg,#2f7eff2e,#17cbd212)}.mutedNav button{color:#a8bad0}.themeButton{margin-top:18px}.projectBox{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#ffffff06}.projectBox b{display:block;margin-bottom:9px}.projectBox div{display:flex;justify-content:space-between;margin:6px 0;color:#b8cae2;font-size:11px}.projectBox p{display:flex;align-items:center;gap:7px;margin:9px 0 0;color:#80efb5;font-size:11px;font-weight:800}.projectBox p:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.workspace{min-width:0;padding:18px 20px 28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.titleWrap{display:flex;align-items:center;gap:13px}.menuButton{width:42px;height:42px;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;background:#ffffff08}h1,h2,h3,p{margin-top:0}h1{margin:0;font-size:23px}.titleWrap p,.cardHead p{margin:5px 0 0;color:var(--muted);font-size:12px}h2{margin:0;font-size:15px}h3{margin:0 0 10px;font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions button,.sectionHeader button,.rowActions button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#ffffff08;color:#fff;font-weight:800}.actions .primary{border:0;background:linear-gradient(135deg,#1769ff,#15b8da)}.panel{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#0f1d30f7,#091624fa);box-shadow:var(--shadow);overflow:hidden}.cardHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.cardHead.compact{margin:-16px -16px 14px}.cardBody{padding:15px}.badge,.status{display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.badge,.status.pass{border:1px solid rgba(57,223,138,.16);background:#39df8a14;color:#75f0ad}.status.warning{background:#ffb5471f;color:#ffcf7b}.status.fail{background:#ff66731f;color:#ff929c}.workbench{display:grid;grid-template-columns:335px minmax(620px,1fr) 300px;gap:14px}.leftPanel,.rightPanel{align-self:start}.rightPanel{padding:16px}.centerPanel{display:grid;gap:12px}.resultPanel{margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric{min-height:86px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#ffffff08}.metric span{display:block;color:var(--muted);font-size:11px}.metric strong{display:block;margin-top:5px;font-size:23px;line-height:1}.metric em{display:block;margin-top:4px;color:#cfe0f7;font-style:normal}.field{display:block;margin-bottom:9px}.field span,.field label{display:block;margin-bottom:6px;color:#bfd0e7;font-size:11px;font-weight:800}.field div{display:flex;align-items:center;gap:8px}input,select{width:100%;min-height:40px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;outline:none;background:#081522;color:#fff}input:focus,select:focus{border-color:#2f7eff7a;box-shadow:0 0 0 4px #2f7eff1a}.field em{min-width:34px;color:var(--muted);font-style:normal;font-size:12px}.footerNote{margin:10px 0 0;color:#8399b8;font-size:11px}table{width:100%;border:1px solid var(--line);border-collapse:separate;border-spacing:0;border-radius:14px;overflow:hidden;font-size:12px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}th{background:#ffffff06;color:#b6cae4}tr:last-child td{border-bottom:0}.chart{min-height:238px;padding:14px}.barRow{display:grid;grid-template-columns:54px 1fr 58px;align-items:center;gap:8px;margin:14px 0}.barRow div{position:relative;height:12px;border-radius:999px;background:#ffffff12}.barRow b{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(#1ed4c4,#1970f0)}.barRow i{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--amber)}.barRow em{color:#dce9fb;font-style:normal;text-align:right}.miniNetwork{display:flex;align-items:center;gap:8px;overflow:auto;margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:13px;background:#ffffff05}.miniNode{min-width:90px;padding:10px;border:1px solid rgba(47,126,255,.24);border-radius:12px;background:#0a1828;text-align:center;font-weight:850}.miniNode small{display:block;margin-top:4px;color:var(--muted)}.miniNetwork span{color:#54a5ff;font-size:19px}.hero{margin-bottom:12px;padding:16px;border:1px solid rgba(57,223,138,.16);border-radius:16px;background:linear-gradient(145deg,#123455,#091c30)}.hero small{color:#91dfbd;font-weight:900}.hero .size{margin:7px 0;color:#54eb9b;font-size:46px;line-height:1;font-weight:950}dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}dt{color:var(--muted);font-size:12px;font-weight:800}dd{margin:0;text-align:right;font-weight:850}.warning,.ok{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#ffb5471a;color:#ffd58e;font-size:11px;line-height:1.45}.ok{background:#39df8a14;color:#75f0ad}.spreadsheet{padding:16px;border-radius:18px;background:var(--light-bg);color:var(--light-txt)}.sheetSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.sheetCard{padding:14px;border:1px solid var(--light-line);border-radius:14px;background:var(--light-panel);box-shadow:0 8px 22px #233a570f}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}.sheetCard .field{margin:0}.sheetCard .field span,.spreadsheet .field span{color:var(--light-muted)}.spreadsheet input,.spreadsheet select{border-color:var(--light-line);background:#fff;color:#172033}.sectionHeader{display:flex;justify-content:space-between;align-items:center;margin:6px 0 10px}.sectionHeader h2{color:#172033}.sectionHeader button,.rowActions button{border-color:var(--light-line);background:#edf3f8;color:#172033}.sheetTable{max-height:430px;overflow:auto;border:1px solid var(--light-line);border-radius:14px;background:#fff}.sheetTable table{min-width:1450px;border:0;border-radius:0;color:#172033}.sheetTable th{position:sticky;top:0;z-index:2;background:#edf3f8;color:#465770}.sheetTable td{border-color:#edf1f5}.sheetTable td:nth-child(n+6):nth-child(-n+11),.sheetTable td:nth-child(13){background:#fff0db;font-weight:800}.sheetTable td:nth-child(12){background:#fff3a7;font-weight:900}.rowActions{display:flex;gap:6px}.networkGrid{display:grid;grid-template-columns:1fr 360px;gap:14px}.topology{position:relative;min-height:620px;border-radius:18px;background:radial-gradient(circle at 40% 25%,rgba(47,126,255,.08),transparent 25%),linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px),#091624;background-size:auto,36px 36px,36px 36px}.legendText{display:flex;gap:16px;color:#ffb547;font-size:12px;font-weight:800}.legendText span:first-child{color:#6ff0ad}.node{position:absolute;width:116px;min-height:70px;padding:14px 10px;border:1px solid rgba(47,126,255,.25);border-radius:15px;background:#0a192b;box-shadow:0 12px 24px #0000003d;text-align:center;font-weight:850}.edge{position:absolute;min-height:18px;border:0;border-radius:999px;background:linear-gradient(90deg,#2f7eff,#17cbd2);box-shadow:0 0 14px #17cbd259;color:#fff;font-size:10px;font-weight:850;transform:rotate(8deg)}.edge.warning{background:linear-gradient(90deg,#ff8b3d,#ffb547)}.edge.fail{background:linear-gradient(90deg,#ff6673,#b83242)}@media(max-width:1000px){body{min-width:0}.app{grid-template-columns:1fr}.sidebar{display:none}.workbench,.networkGrid,.sheetSteps{grid-template-columns:1fr}.cards,.charts{grid-template-columns:repeat(2,minmax(0,1fr))}}.suite{min-height:100vh}.mobileNav{display:none}.suite .sidebar{overflow-y:auto}.suiteNav{display:block}.suiteNav button{width:100%}.suiteNav button svg:last-child{margin-left:auto}.screen{padding:16px}.kpiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.kpi{min-height:108px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.kpi span{display:block;color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.kpi strong{display:inline-block;margin-top:12px;font-size:25px;line-height:1}.kpi em{margin-left:6px;color:var(--muted);font-style:normal}.kpi.pass{border-left:3px solid var(--green)}.kpi.warning{border-left:3px solid var(--amber)}.kpi.fail{border-left:3px solid var(--red)}.dashboardGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.dashboardGrid .chart{cursor:pointer}.sheetToolbar,.networkToolbar{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.groupToolbar,.dashboardFilters{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--line)}.groupToolbar button{font-size:10px;color:#82a0be}.groupToolbar button.collapsed{color:var(--amber);border-color:var(--amber)}.dashboardFilters{margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.rowCount{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}.search{display:flex;align-items:center;gap:6px;min-width:240px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--input)}.search input{border:0;background:transparent;min-width:0}.spreadsheet .sheetTable{max-height:calc(100vh - 190px);border-radius:0}.spreadsheet .sheetTable table{min-width:3900px}.spreadsheet .sheetTable th:first-child,.spreadsheet .sheetTable td:first-child{position:sticky;left:0;z-index:3;background:#edf3f8}.spreadsheet .sheetTable th:nth-child(2),.spreadsheet .sheetTable td:nth-child(2){position:sticky;left:44px;z-index:3;background:#f7f9fc}.spreadsheet .sheetTable th{resize:horizontal;overflow:auto}.spreadsheet .sheetTable tbody tr{height:43px}.spreadsheet .sheetTable .virtualSpacer{height:auto}.spreadsheet .sheetTable .virtualSpacer td{padding:0;border:0;background:transparent}.spreadsheet .groupHeader th{top:0;background:#182b3f;color:#93abc4;text-align:center}.spreadsheet thead tr:nth-child(2) th{top:31px}.diffWarn{display:block;color:var(--red);font-weight:800}.columnPresets{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.columnChecklist{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;max-height:380px;overflow:auto;margin:12px 0}.columnChecklist label{display:flex;gap:6px;align-items:center;color:var(--muted)}.bulkFields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.bulkFields label{display:grid;grid-template-columns:20px 1fr 150px;align-items:center;gap:6px}.status{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.selectionRow{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:20px}.selectionRow span{display:block;color:var(--muted);font-size:12px}.selectionRow strong,.selectionRow select{margin-top:6px;font-size:20px}.resultGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.dataItem{padding:12px;background:var(--panel)}.dataItem span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.dataItem b{display:block;margin-top:5px}.traceButton{margin:12px}.ok{display:flex;align-items:center;gap:7px;color:var(--green)}.notice{color:var(--amber)}.networkToolbar{position:absolute;top:0;left:0;right:0;z-index:10;background:#0b1828}.networkToolbar{flex-wrap:nowrap;overflow-x:auto}.networkToolbar .search{min-width:160px}.networkToolbar select{min-width:105px}.networkToolbar button{white-space:nowrap}.realTopology{overflow:hidden}.reactFlowPanel{min-height:650px;overflow:hidden;position:relative;background:#091624}.reactFlowPanel .react-flow{position:absolute;inset:62px 0 0}.react-flow__controls button{color:#172033}.react-flow__minimap{background:#0f2034!important;border:1px solid #29435e;border-radius:6px}.healthMini{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.networkDetail{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.nodeDialog{width:min(1100px,95vw)}.nodeDialog table{min-width:850px}.nodeDialog code{font-size:10px}.flowCanvas{position:absolute;inset:62px 0 0}.flowNode{position:absolute;width:112px;min-height:64px;padding:8px;border:1px solid #31506f;border-radius:6px;background:#102338;color:#92aac4;font-size:9px;text-align:left;z-index:2}.flowNode strong{display:block;margin-top:5px;color:#fff;font-size:13px}.flowNode.wtg{border-color:#1c8f7e}.flowNode.bus,.flowNode.substation{border-color:#2f7eff}.flowEdge{position:absolute;min-height:38px;border-style:solid;border-color:#2f7eff;border-width:3px 0 0!important;background:transparent;color:#cbd8e7;text-align:left;z-index:1}.flowEdge span{display:block;font-size:10px}.flowEdge b{display:block;font-size:10px;color:#fff}.flowEdge.warning{border-color:var(--amber)!important}.flowEdge.fail{border-color:var(--red)!important}.legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.legend span{border-left:3px solid;padding:6px 8px}.legend .blue{border-color:#2f7eff}.legend .green{border-color:var(--green)}.legend .amber{border-color:var(--amber)}.legend .red{border-color:var(--red)}.scenarioGrid,.moduleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenarioCard{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.scenarioCard.approved{border-color:var(--green)}.scenarioHead{display:flex;justify-content:space-between;min-height:66px}.scenarioHead span{color:var(--muted);font-size:11px}.scenarioHead h3{margin:5px 0}.scenarioCard .dataItem{border-bottom:1px solid var(--line);padding-left:0;padding-right:0}.scenarioCard>button{width:100%;margin-top:14px}.optimizer{margin-top:12px}.optimizer label{display:grid;gap:7px;color:var(--muted);font-size:12px}.optimizationResult{padding:14px;border-top:1px solid var(--line)}.optimizationResult table{margin:14px 0}.economicGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px}.reportGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reportAction{width:calc(100% - 28px);margin:7px 14px;justify-content:flex-start;padding:14px}.revision,.auditRow{display:grid;grid-template-columns:80px 1fr 110px 190px;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.approvalGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px}.approvalGrid label,.settingsPage>label{display:grid;gap:7px;color:var(--muted)}.dataKpis .kpi strong{font-size:16px;word-break:break-word}.dataPanel dl{padding:14px}.dataPanel dt{color:var(--muted)}.dataPanel dd{margin:4px 0 16px}.hash{word-break:break-all;font-family:monospace}.health{max-width:900px}.healthRow{display:grid;grid-template-columns:24px 1fr 1fr;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}.healthRow .good{color:var(--green)}.healthRow .bad{color:var(--red)}.auditRow{grid-template-columns:24px 1fr 190px}.auditRow div{display:grid}.auditRow span,.auditRow time{color:var(--muted);font-size:12px}.chartBar{width:100%;min-height:30px;padding:0;border:0;background:transparent;color:inherit}.unavailable{padding:20px;min-height:190px}.unavailable>svg{color:var(--muted)}.unavailable p{color:var(--muted);line-height:1.5}.settingsPage{max-width:720px;padding-bottom:20px}.settingsPage>label,.settingsPage>p{margin:14px}.modalShade{position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end;background:#00000094}.traceDrawer{width:min(620px,92vw);height:100%;overflow:auto;padding:24px;background:var(--panel);box-shadow:-20px 0 50px #00000059}.close{float:right;padding:5px}.formula{display:grid;gap:5px;padding:12px;border-bottom:1px solid var(--line)}.formula code{color:#6ac8ff;white-space:normal}.dialog{align-self:center;margin:auto;width:min(720px,90vw);max-height:86vh;overflow:auto;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.dialog textarea{width:100%;min-height:220px;margin:12px 0;padding:12px;resize:vertical}.diffDialog{width:min(1050px,94vw)}.diffDialog table{font-size:12px}.empty{padding:30px;color:var(--muted);text-align:center}@media(max-width:900px){.mobileNav{display:block;width:min(240px,68vw);margin-bottom:6px}.kpiGrid,.dashboardGrid,.scenarioGrid,.moduleGrid,.reportGrid,.economicGrid{grid-template-columns:1fr 1fr}.screen{padding:9px}.topbar{padding:10px}.topbar .actions button span{display:none}.resultGrid,.approvalGrid{grid-template-columns:1fr 1fr}}@media(max-width:1000px){.mobileNav{display:block;width:min(240px,68vw);margin-bottom:6px}}@media(max-width:600px){.kpiGrid,.dashboardGrid,.scenarioGrid,.moduleGrid,.reportGrid,.economicGrid{grid-template-columns:1fr}.topbar p{display:none}.topbar .actions button{padding:7px}.screen{padding:6px}.resultGrid{grid-template-columns:1fr 1fr}.networkGrid{display:block}.rightPanel{margin-top:8px}}@media print{.sidebar,.topbar,.actions,button{display:none!important}.app{display:block}.workspace{background:#fff!important;color:#172033!important}.screen{padding:0}.panel{break-inside:avoid;border:1px solid #ccd5df;box-shadow:none}}:root{--bg: #07111d;--panel: #0f1d31;--panel2: #14243b;--blue: #2f80ff;--cyan: #00c7d9;--green: #2bdf7e;--amber: #f7b331;--red: #ff5f6d;--violet: #8b7cff;--shadow: 0 18px 36px rgba(0,0,0,.35)}.app{grid-template-columns:280px minmax(0,1fr);background:radial-gradient(circle at 18% 0%,rgba(47,128,255,.17),transparent 30%),radial-gradient(circle at 92% 18%,rgba(0,199,217,.12),transparent 23%),linear-gradient(180deg,#07111c,#081420)}.sidebar{padding:22px 18px;background:linear-gradient(180deg,#08111d,#0b1421);box-shadow:14px 0 40px #0000001f}.brandMark{margin-bottom:18px}.brandMark strong{font-size:23px}.logo{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#0d5eff,#06d0dc);box-shadow:0 0 0 4px #ffffff08,0 10px 24px #2f80ff4d}.suiteNav button{min-height:47px;margin:3px 0;border-radius:12px;transition:transform .18s ease,border-color .18s ease,background .18s ease}.suiteNav button:hover{transform:translate(3px)}.suiteNav button.active{border-color:#2f80ff59;box-shadow:inset 0 0 0 1px #ffffff06,0 10px 24px #0000002e}.projectBox{border-radius:16px;background:linear-gradient(180deg,#ffffff0a,#ffffff03);box-shadow:inset 0 1px #ffffff08}.workspace{padding:20px 22px 28px}.topbar{min-height:64px}.topbar h1{font-size:26px}.topbar .actions button,button{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.topbar .actions button:hover,button:hover{transform:translateY(-1px)}button.primary,.actions .primary{background:linear-gradient(135deg,#1660ff,#00b3ff);border:0;box-shadow:0 10px 22px #196dff33}.panel,.kpi,.scenarioCard{border-color:#ffffff16;background:linear-gradient(180deg,#112035f7,#0c1828fc);box-shadow:var(--shadow)}.panel{border-radius:16px;overflow:hidden}.cardHead{padding:16px 18px;background:linear-gradient(90deg,rgba(255,255,255,.018),transparent)}.cardHead h2{font-size:16px}.kpi{position:relative;overflow:hidden;border-radius:14px;min-height:116px;padding:17px;transition:transform .18s ease,border-color .18s ease}.kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--cyan));opacity:.65}.kpi:hover{transform:translateY(-3px);border-color:#2f80ff4d}.kpi.pass:after{background:var(--green)}.kpi.warning:after{background:var(--amber)}.kpi.fail:after{background:var(--red)}.kpi strong{font-size:28px;letter-spacing:0}.dashboardGrid .chart{min-height:250px}.chart h2{padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.055)}.barRow{grid-template-columns:minmax(76px,120px) 1fr minmax(64px,auto);gap:12px}.barRow>div{height:12px;border-radius:999px;background:#ffffff0f;box-shadow:inset 0 1px 3px #0000004d}.barRow b{border-radius:999px;background:linear-gradient(90deg,#1485ff,#00d3a7);box-shadow:0 0 14px #00c7d940}.chart:nth-child(3n) .barRow b{background:linear-gradient(90deg,#8b7cff,#00c7d9)}.chart:nth-child(4n) .barRow b{background:linear-gradient(90deg,#f7b331,#ff7a5c)}.workbench{grid-template-columns:370px minmax(520px,1fr) 320px;align-items:start}.leftPanel{position:sticky;top:18px;max-height:calc(100vh - 40px);overflow:auto}.resultHero{display:grid;grid-template-columns:minmax(330px,1.2fr) minmax(260px,1fr);gap:14px;padding:18px;background:linear-gradient(135deg,#142941fa,#091d2dfa)}.recommendation{padding:18px;border:1px solid rgba(58,255,184,.18);border-radius:16px;background:linear-gradient(135deg,#17314bf5,#091e2ff5)}.eyebrow{color:#a6f3db;font-size:12px;font-weight:900;letter-spacing:.5px}.recommendationBody{display:flex;align-items:center;gap:18px;margin-top:14px}.recommendationBody>div:last-child>span{color:#a8f4cb;font-size:14px;font-weight:750}.recommendationBody strong{display:block;margin-top:2px;color:#4aea91;font-size:64px;line-height:.95;letter-spacing:0}.recommendationBody p{margin:8px 0 0;color:#bdeed2;font-size:13px}.bigCheck{width:82px;height:82px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#58f9a8,#1ebf6e 70%);font-size:43px;font-weight:900;box-shadow:0 0 0 9px #2bdf7e14,0 12px 28px #2bdf7e40}.bigCheck.fail{background:radial-gradient(circle at 35% 30%,#ff8790,#d63748 70%);box-shadow:0 0 0 9px #ff5f6d14,0 12px 28px #ff5f6d38}.heroKpis{display:grid;grid-template-columns:1fr;gap:10px}.heroKpis .metric{min-height:82px;border-radius:13px;border:1px solid var(--line);background:#ffffff09}.heroKpis .metric.pass{box-shadow:inset 3px 0 0 var(--green)}.heroKpis .metric.blue{box-shadow:inset 3px 0 0 var(--blue)}.heroKpis .metric.warning{box-shadow:inset 3px 0 0 var(--amber)}.gaugePanel .cardHead{border-bottom:0}.gaugeRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 18px 18px}.gauge{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:14px;background:#ffffff06}.ring{width:108px;height:108px;border-radius:50%;display:grid;place-items:center;margin-bottom:10px;background:radial-gradient(closest-side,#101c2f 69%,transparent 71% 100%),conic-gradient(var(--ring-color,var(--cyan)) calc(var(--pct)*1%),rgba(255,255,255,.07) 0);box-shadow:inset 0 0 25px #ffffff08,0 12px 25px #0000002b}.ring b{font-size:20px}.gauge small{margin-top:5px;color:var(--muted);text-align:center}.selectionRow{border-radius:12px;margin:0 14px 14px;background:#ffffff06}.resultGrid{border-radius:12px;overflow:hidden;margin:0 14px 14px}.stepForm{display:grid;gap:12px}.inputStep{border:1px solid rgba(116,151,201,.18);background:#07101f66;border-radius:8px;padding:12px;display:grid;gap:10px}.stepTitle{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(116,151,201,.15)}.stepTitle>b{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#356dff,#52c9ff);color:#fff;box-shadow:0 5px 15px #356dff4d}.stepTitle span,.stepTitle strong,.stepTitle small{display:block}.stepTitle strong{font-size:13px}.stepTitle small{color:var(--muted);font-size:10px;margin-top:2px}.segmentStep .stepTitle>b{background:linear-gradient(135deg,#00ad82,#53dda9)}.factorStrip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0 14px 12px}.factorStrip>div{text-align:center;padding:12px 8px;border:1px solid rgba(64,183,255,.18);border-radius:8px;background:linear-gradient(180deg,#307dff1a,#08132659)}.factorStrip span,.factorStrip small{display:block;color:var(--muted);font-size:10px}.factorStrip strong{display:block;font-size:21px;color:#70d8ff;margin:3px 0}.currentEquation{margin:0 14px 14px;padding:10px 14px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;background:#00d3a70f;border:1px solid rgba(0,211,167,.18);border-radius:8px}.currentEquation>span{color:#7f9ab9;font-size:12px;font-weight:800}.customerSelection>div,.customerSelection>label{padding:12px;border-radius:8px;background:#ffcc3712;border:1px solid rgba(255,204,55,.24)}.customerSelection small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.customerSelection select{width:100%;color:#ffe37a;background:#121b2c;border-color:#ffcc3761;font-weight:900}.conditionGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0 14px 14px}.condition{min-height:98px;padding:12px;border-radius:8px;border:1px solid var(--line);background:#ffffff06;display:flex;flex-direction:column;justify-content:space-between}.condition span{color:var(--muted);font-size:11px}.condition strong{font-size:16px}.condition small{font-size:10px;font-weight:900}.condition.pass{border-bottom:3px solid #48d597}.condition.pass small{color:#61dda6}.condition.fail{border-bottom:3px solid #ff6172}.condition.fail small{color:#ff7886}.condition.pending{border-bottom:3px solid #e6b94a}.condition.pending small{color:#e6c36c}.calWorkspaceTable{grid-column:1/-1;min-width:0}.calWorkspaceTable .technicalCol{display:none}.calWorkspaceTable.showTechnical .technicalCol{display:table-cell}.tableActions{display:flex;gap:8px;flex-wrap:wrap}.workbench>.leftPanel{position:static;max-height:none}.calTable{max-height:540px;overflow:auto}.calTable table{min-width:2200px}.calTable th{position:sticky;top:0;z-index:3;white-space:normal;line-height:1.25;min-width:74px;background:#16243a;color:#d9e7f8;border-color:#7f9dc42e}.calTable td{white-space:nowrap;background:#0d1829!important;color:#dce8f6;border-color:#7f9dc41f}.calTable td input,.calTable td select{min-width:82px;max-width:125px;background:#2f80ff0e;border-color:#4f92ff33}.calTable td:nth-child(3) select,.calTable td:nth-child(4) select{min-width:120px}.calTable .selectedRow td{background:#13243d!important}.calTable .calculatedCell{color:#65d8ff;font-weight:900;background:#102a42!important}.calTable .selectedCell{background:#302b18!important;box-shadow:inset 0 0 0 1px #ffd34838}.calTable .selectedCell select{color:#ffe173;font-weight:900;border-color:#ffd34861}.calTable .naCell{color:#d0a94e}.tableNote{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:11px 15px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.tableNote span{display:flex;align-items:center;gap:6px}.tableNote span:last-child{margin-left:auto}.legend{width:11px;height:11px;border-radius:2px;display:inline-block}.legend.input{background:#2f80ff47}.legend.auto{background:#52c9ff}.legend.confirm{background:#f2ca4f}.projectName{display:flex;align-items:center;gap:8px;margin-top:6px}.projectName span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.projectName input{width:min(360px,52vw);padding:5px 8px;border-radius:5px;background:#ffffff09;border:1px solid var(--line);color:var(--text);font-weight:750}.topbar>div:first-child>p{margin-top:5px}.emptyCalculation{display:grid;gap:14px}.emptyIntro{padding:24px;background:linear-gradient(135deg,#1a3758f2,#091d2dfa)}.emptyIntro h2{margin:7px 0;font-size:25px}.emptyIntro p{max-width:760px;margin:0;color:var(--muted)}.emptySteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.emptySteps>.panel{padding:14px}.emptySteps .cardBody{padding:14px 0 0}.emptyDefaults{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:14px;background:var(--line);border:1px solid var(--line)}.emptyDefaults>div{background:var(--panel);padding:12px}.startButton{width:100%;justify-content:center;margin-top:16px;padding:12px}.librarySettings{display:grid;gap:14px}.settingsTabs{display:flex;gap:5px;padding:5px;background:#0a1626b3;border:1px solid var(--line);border-radius:8px;width:max-content;max-width:100%}.settingsTabs button{border-color:transparent;background:transparent}.settingsTabs button.active{background:#1c3556;border-color:#5596ff59;color:#fff}.libraryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:0 16px 16px}.libraryGrid article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#ffffff06}.libraryGrid article>svg{color:#5bc9ff}.libraryGrid strong,.libraryGrid span{display:block}.libraryGrid span{color:var(--muted);font-size:11px;margin-top:3px}.libraryMeta{display:grid;grid-template-columns:150px 1fr;margin:0 16px 16px;border-top:1px solid var(--line);padding-top:14px}.libraryMeta dt,.libraryMeta dd{margin:0;padding:7px 5px;border-bottom:1px solid rgba(127,157,196,.1)}.libraryMeta dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.updateLibrary{padding-bottom:16px}.uploadZone{margin:0 16px 14px;min-height:170px;border:1px dashed rgba(83,157,255,.45);border-radius:8px;background:#2f80ff0d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;cursor:pointer}.uploadZone svg{color:#5bc9ff}.uploadZone span{color:var(--muted);font-size:12px}.uploadZone input{position:absolute;width:1px;height:1px;opacity:0}.stagedResult{margin:0 16px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#ffffff06}.stagedResult.valid{border-color:#3bd39652}.stagedResult.invalid{border-color:#ff5f6d59}.stagedResult h3{margin:0 0 7px}.stagedStats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:12px 0}.stagedStats>div{background:var(--panel);padding:11px}.decisionAnalytics{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.8fr) minmax(320px,.9fr);gap:12px}.decisionAnalytics>.panel{min-width:0;overflow:hidden}.comboChart{position:relative;height:280px;margin:0 14px}.comboChart>svg{position:absolute;inset:0;width:100%;height:220px;z-index:2;overflow:visible;pointer-events:none}.chartAxis{stroke:#94b0d340;stroke-width:1}.chartLimit{stroke:#d5a742;stroke-width:1.5;stroke-dasharray:7 6;opacity:.75}.dropLine{fill:none;stroke:#f0b944;stroke-width:3;vector-effect:non-scaling-stroke}.dropPoint{fill:#ffc84c;stroke:#16243a;stroke-width:2;vector-effect:non-scaling-stroke}.candidateBars{position:absolute;left:2.5%;right:2.5%;top:22px;height:190px;display:grid;grid-template-columns:repeat(14,minmax(18px,1fr));gap:5px;align-items:end}.candidate{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;position:relative}.candidate span{font-size:9px;color:#d9e8f8;font-weight:800}.candidate i{width:min(34px,72%);min-height:4px;background:linear-gradient(180deg,#65dcac,#4e89ff);border-radius:3px 3px 0 0;box-shadow:0 0 14px #4aaaff21}.candidate b{font-size:10px;color:#bacbe0}.candidate.selected:after{content:"Đề xuất";position:absolute;top:-17px;color:#61dda6;font-size:8px;font-weight:900}.candidate.selected i{outline:2px solid #5ee49f;outline-offset:3px}.chartLegend{display:flex;gap:18px;padding:0 16px 14px;color:var(--muted);font-size:10px}.chartLegend span{display:flex;align-items:center;gap:6px}.chartLegend i{width:10px;height:10px;border-radius:2px}.ampacityLegend{background:#59cdb3}.dropLegend{background:#f0b944}.lossBars{height:270px;display:flex;align-items:flex-end;gap:10px;padding:18px 18px 14px;overflow-x:auto}.lossBars>div{min-width:58px;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.lossBars>div>span{color:#b9cbe0;font-size:10px;font-weight:800;max-width:80px;overflow:hidden;text-overflow:ellipsis}.lossBars>div>div{width:100%;height:220px;display:flex;flex-direction:column-reverse;align-items:center;position:relative;border-bottom:1px solid rgba(148,176,211,.2)}.lossBars i{width:min(46px,72%);display:block;background:linear-gradient(180deg,#8d78ff,#58cad4);border-radius:3px 3px 0 0}.lossBars b{position:absolute;top:3px;font-size:9px;color:#dce8f6;white-space:nowrap}.recommendationList{display:grid;gap:9px;padding:12px}.recommendationList article{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#ffffff06}.recommendationList article>i{width:8px;height:8px;margin-top:4px;border-radius:50%;background:#6192ff;box-shadow:0 0 10px currentColor}.recommendationList article.pass>i{background:#57dc91}.recommendationList article.warning>i{background:#f3b83f}.recommendationList article.fail>i{background:#ff6272}.recommendationList strong{font-size:12px}.recommendationList p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.analysisEmpty{color:var(--muted);display:grid;place-items:center;min-height:180px;padding:20px;text-align:center}.rightPanel .hero{border-radius:14px;background:linear-gradient(135deg,#2f80ff29,#00d3a712)}.status{border-radius:999px;padding:6px 9px}.status.pass{background:#2bdf7e1a;border:1px solid rgba(43,223,126,.18)}.status.warning{background:#f7b3311a;border:1px solid rgba(247,179,49,.18)}.status.fail{background:#ff5f6d1a;border:1px solid rgba(255,95,109,.2)}.sheetToolbar,.groupToolbar,.networkToolbar{background:#07121fe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sheetTable{border-radius:12px;box-shadow:inset 0 1px #ffffff06}.sheetTable tbody tr{transition:background .15s ease}.sheetTable tbody tr:hover td{background:#2f80ff13}.reactFlowPanel{border-radius:16px;background:radial-gradient(circle at 50% 15%,rgba(47,128,255,.09),transparent 45%),#091624}.scenarioCard{border-radius:15px;transition:transform .18s ease,border-color .18s ease}.scenarioCard:hover{transform:translateY(-3px);border-color:#2f80ff4d}.modalShade{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.dialog,.traceDrawer{background:linear-gradient(180deg,#14243b,#0d192a);border-color:#ffffff1f}@media(max-width:1450px){.workbench{grid-template-columns:340px minmax(500px,1fr)}.workbench>.rightPanel{grid-column:1/-1;display:grid;grid-template-columns:240px 1fr 1fr;gap:14px;align-items:start}}@media(max-width:1150px){.resultHero{grid-template-columns:1fr}.heroKpis,.conditionGrid{grid-template-columns:repeat(3,1fr)}.decisionAnalytics{grid-template-columns:1fr 1fr}.recommendationPanel{grid-column:1/-1}}@media(max-width:1000px){.app,.workbench{grid-template-columns:1fr}.leftPanel{position:static;max-height:none}.workbench>.rightPanel{grid-column:auto;display:block}.emptySteps{grid-template-columns:1fr}.libraryGrid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.resultHero,.heroKpis,.gaugeRow{grid-template-columns:1fr}.factorStrip{grid-template-columns:repeat(3,1fr)}.conditionGrid{grid-template-columns:1fr 1fr}.currentEquation{grid-template-columns:1fr}.currentEquation>span{display:none}.customerSelection{grid-template-columns:1fr}.customerSelection>svg{transform:rotate(90deg);justify-self:center}.recommendationBody strong{font-size:52px}.bigCheck{width:70px;height:70px;font-size:36px}.kpiGrid,.libraryGrid,.libraryMeta{grid-template-columns:1fr}.settingsTabs{width:100%;overflow:auto}.settingsTabs button{white-space:nowrap}.decisionAnalytics{grid-template-columns:1fr}.recommendationPanel{grid-column:auto}.candidateBars{gap:2px}.candidate span{display:none}}:root{--text:var(--txt);--input:#091726;--surface-0:#060d17;--surface-1:#0a1524;--surface-2:#0f1e32;--glass:rgba(13,29,48,.78);--stroke-soft:rgba(151,186,227,.1);--stroke-med:rgba(151,186,227,.18);--electric:#39a0ff;--aqua:#35e6cf;--success:#45e39a;--warning:#ffc354;--danger:#ff6877;--purple:#9a85ff;--shadow-soft:0 14px 40px rgba(0,0,0,.18);--shadow-float:0 24px 70px rgba(0,0,0,.34)}html{background:var(--surface-0)}body{background:radial-gradient(circle at 11% 2%,rgba(46,124,255,.15),transparent 28%),radial-gradient(circle at 88% 9%,rgba(31,222,207,.1),transparent 23%),linear-gradient(180deg,#06101b,#07111d)}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.24;background-image:linear-gradient(rgba(99,154,211,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(99,154,211,.055) 1px,transparent 1px);background-size:44px 44px}.app{grid-template-columns:272px minmax(0,1fr);background:transparent}.sidebar{border-right:1px solid rgba(132,176,226,.1);background:linear-gradient(180deg,#08121ff5,#070f1afb);box-shadow:18px 0 60px #00000024}.sidebar:after{content:"";position:absolute;top:0;right:-1px;width:1px;height:38%;background:linear-gradient(180deg,transparent,rgba(61,159,255,.85),transparent);animation:railScan 5s ease-in-out infinite}@keyframes railScan{0%,to{transform:translateY(-20%);opacity:.2}50%{transform:translateY(170%);opacity:.8}}.logo{position:relative;overflow:hidden;background:linear-gradient(135deg,#176dff,#23a7ff 48%,#20e1cb);box-shadow:0 0 0 5px #318bff0e,0 12px 34px #1f83ff57}.logo:after{content:"";position:absolute;inset:-40%;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.42),transparent 65%);transform:translate(-70%) rotate(12deg);animation:logoSweep 4.8s ease-in-out infinite}@keyframes logoSweep{0%,70%{transform:translate(-75%) rotate(12deg)}to{transform:translate(85%) rotate(12deg)}}.suiteNav button{position:relative;overflow:hidden;color:#b7cae1;border-radius:12px;transition:.2s ease}.suiteNav button:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:99px;background:linear-gradient(var(--electric),var(--aqua));transform:scaleY(0);opacity:0;transition:.2s ease}.suiteNav button:hover{color:#edf6ff;transform:translate(3px);background:#276bb417}.suiteNav button.active{color:#fff;background:linear-gradient(90deg,#2978f02e,#1fdccb0e);border-color:#4096ff38}.suiteNav button.active:before{transform:scaleY(1);opacity:1}.projectBox{overflow:hidden;border-radius:14px;border:1px solid rgba(132,176,226,.12);background:linear-gradient(145deg,#1934528c,#081321b8)}.workspace{padding:0 22px 30px}.topbar{position:sticky;top:0;z-index:40;min-height:78px;margin:0 -22px 18px;padding:13px 22px;border-bottom:1px solid rgba(139,177,219,.09);background:#060f1ac2;-webkit-backdrop-filter:blur(22px) saturate(130%);backdrop-filter:blur(22px) saturate(130%);box-shadow:0 12px 30px #0000001a}.topbar h1{font-size:25px;letter-spacing:-.45px;background:linear-gradient(90deg,#f7fbff,#b9dcff 58%,#80f0df);background-clip:text;-webkit-background-clip:text;color:transparent}.actions button,.tableActions button,.sectionHeader button{border-radius:11px;border-color:#90b5dd24;background:linear-gradient(180deg,#ffffff0e,#ffffff05);transition:.18s ease}.actions button:hover,.tableActions button:hover,.sectionHeader button:hover{transform:translateY(-2px);border-color:#4099ff59;box-shadow:0 10px 20px #00000029}button.primary,.actions .primary{background:linear-gradient(135deg,#176bff,#248dff 48%,#18c8dc);box-shadow:0 12px 30px #1870ff40}.panel,.kpi,.scenarioCard{border:1px solid var(--stroke-soft);background:linear-gradient(180deg,#112238e6,#091625f0);box-shadow:var(--shadow-soft),inset 0 1px #ffffff06}.panel{border-radius:16px}.cardHead{min-height:61px;padding:15px 17px;border-bottom:1px solid rgba(139,177,219,.075);background:linear-gradient(90deg,rgba(255,255,255,.024),transparent 62%)}.workbench{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}.workbench>.leftPanel{grid-column:1/-1;position:relative;overflow:visible}.workbench>.leftPanel .stepForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}.inputStep{position:relative;min-width:0;padding:14px;border-radius:14px;border:1px solid rgba(120,166,220,.14);background:radial-gradient(circle at 100% 0%,rgba(49,131,255,.09),transparent 38%),linear-gradient(180deg,#071321ad,#07101c6b);transition:.2s ease}.inputStep:hover{transform:translateY(-2px);border-color:#3f9dff47;box-shadow:0 14px 26px #00000024}.inputStep:nth-child(2){background:radial-gradient(circle at 100% 0%,rgba(53,230,207,.09),transparent 38%),linear-gradient(180deg,#071a22ad,#07111c6b)}.inputStep:nth-child(3){background:radial-gradient(circle at 100% 0%,rgba(154,133,255,.09),transparent 38%),linear-gradient(180deg,#12142a9e,#07111c6b)}.stepTitle>b{width:31px;height:31px;border-radius:10px;background:linear-gradient(135deg,#2f77ff,#4fbdff);box-shadow:0 7px 19px #307bff4d}.inputStep:nth-child(2) .stepTitle>b{background:linear-gradient(135deg,#00ad8c,#45dfbd)}.inputStep:nth-child(3) .stepTitle>b{background:linear-gradient(135deg,#6d5cff,#a88cff)}input,select{border-color:#89b1dc1f;background:#040f1bbd;box-shadow:inset 0 1px 3px #0000002e;transition:.17s ease}input:hover,select:hover{border-color:#4a99ef40;background:#071524db}input:focus,select:focus{border-color:#3d9cff9e;box-shadow:0 0 0 3px #2f80ff1a,inset 0 1px 3px #0000002e}.centerPanel{grid-column:1/10;display:grid;gap:14px}.workbench>.rightPanel{grid-column:10/-1;position:sticky;top:96px;align-self:start;border-color:#46d7a421}.calWorkspaceTable,.decisionAnalytics{grid-column:1/-1}.resultHero{position:relative;overflow:hidden;padding:16px;border-color:#40a1ff2b;background:radial-gradient(circle at 10% 20%,rgba(46,128,255,.11),transparent 32%),radial-gradient(circle at 92% 70%,rgba(53,230,207,.08),transparent 30%),linear-gradient(135deg,#122944f7,#081828fa)}.resultHero:before{content:"";position:absolute;left:-30%;top:-120px;width:60%;height:220px;transform:rotate(-12deg);background:linear-gradient(90deg,transparent,rgba(55,159,255,.08),transparent);animation:resultSweep 8s ease-in-out infinite;pointer-events:none}@keyframes resultSweep{0%,20%{transform:translate(-10%) rotate(-12deg)}80%,to{transform:translate(210%) rotate(-12deg)}}.recommendation{position:relative;overflow:hidden;border-radius:18px;border-color:#46e6a82e;background:linear-gradient(135deg,#183a55d6,#071c2beb)}.bigCheck{animation:statusBreathe 2.8s ease-in-out infinite}@keyframes statusBreathe{0%,to{box-shadow:0 0 0 8px #2bdf7e12,0 12px 28px #2bdf7e3b}50%{box-shadow:0 0 0 13px #2bdf7e06,0 16px 34px #2bdf7e4f}}.recommendationBody strong{font-size:68px;letter-spacing:-2.2px;text-shadow:0 0 28px rgba(74,234,145,.14)}.heroKpis .metric{position:relative;overflow:hidden;min-height:88px;padding:14px;background:linear-gradient(135deg,#ffffff0b,#ffffff05)}.gauge{position:relative;overflow:hidden;min-height:174px;border-radius:16px;background:radial-gradient(circle at 50% 36%,rgba(56,152,255,.06),transparent 38%),#ffffff05;transition:.2s ease}.gauge:hover{transform:translateY(-3px);border-color:#5ca9ff40}.ring{transition:.25s ease;filter:drop-shadow(0 10px 18px rgba(0,0,0,.18))}.gauge:hover .ring{transform:scale(1.035);filter:drop-shadow(0 14px 25px rgba(0,0,0,.24))}.customerSelection{position:relative;overflow:hidden;min-height:110px;border:1px solid rgba(255,203,73,.14);background:linear-gradient(90deg,#ffc1410b,#35e6cf06)}.customerSelection:before{content:"ENGINEER DECISION";position:absolute;right:12px;top:8px;color:#ffd36647;font-size:9px;font-weight:900;letter-spacing:1.4px}.customerSelection>svg{color:#ffcc58;filter:drop-shadow(0 0 8px rgba(255,199,76,.3));animation:arrowNudge 1.8s ease-in-out infinite}@keyframes arrowNudge{0%,to{transform:translate(-2px)}50%{transform:translate(4px)}}.condition{position:relative;overflow:hidden;min-height:104px;border-radius:13px;transition:.18s ease}.condition:hover{transform:translateY(-2px)}.rightPanel .hero{position:relative;overflow:hidden;border:1px solid rgba(68,217,167,.15);background:radial-gradient(circle at 100% 0%,rgba(68,226,159,.12),transparent 42%),linear-gradient(135deg,#255b7f42,#0b1f2f80)}.rightPanel .hero .size{font-size:48px;letter-spacing:-1.2px}.calWorkspaceTable{border-radius:18px}.calTable{max-height:580px;background:#0b1727}.calTable table{min-width:2220px}.calTable th{height:50px;background:linear-gradient(180deg,#172b44,#12243a);color:#bcd3ed;box-shadow:inset 0 -1px #91b8e31a}.calTable tbody tr:hover td{background:#12243b!important}.calTable .selectedRow td{background:#142a45!important;box-shadow:inset 0 1px #4c9dff1a,inset 0 -1px #4c9dff1a}.calTable .selectedRow td:first-child{box-shadow:inset 3px 0 0 var(--electric)}.calTable .calculatedCell{color:#7df;background:linear-gradient(180deg,#10314b,#0f2940)!important;text-shadow:0 0 12px rgba(80,203,255,.15)}.calTable .selectedCell{background:linear-gradient(180deg,#352e17,#2c2819)!important}.calTable .selectedCell select{color:#ffe079;box-shadow:0 0 18px #ffcd450d}.decisionAnalytics{grid-template-columns:minmax(0,1.35fr) minmax(290px,.75fr) minmax(310px,.9fr)}.recommendationList article{border-radius:11px;transition:.18s ease}.recommendationList article:hover{transform:translate(3px);border-color:#73a9e433}.recommendationList article>i{animation:signalPulse 2.2s ease-in-out infinite}@keyframes signalPulse{0%,to{transform:scale(.82);opacity:.65}50%{transform:scale(1.2);opacity:1}}.barRow b{position:relative;overflow:hidden}.barRow b:after{content:"";position:absolute;inset:0;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);animation:barFlow 3.4s linear infinite}@keyframes barFlow{0%{transform:translate(-180%)}to{transform:translate(480%)}}.reactFlowPanel{border-radius:18px;background:radial-gradient(circle at 50% 15%,rgba(47,128,255,.11),transparent 42%),linear-gradient(rgba(98,150,207,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(98,150,207,.045) 1px,transparent 1px),#081522;background-size:auto,36px 36px,36px 36px}.react-flow__node{transition:.18s ease}.react-flow__node:hover{filter:drop-shadow(0 10px 18px rgba(33,117,255,.24))}.react-flow__node.selected{filter:drop-shadow(0 0 16px rgba(51,154,255,.4))}.react-flow__edge.animated .react-flow__edge-path{stroke-dasharray:10 7;animation:edgeFlow .65s linear infinite}@keyframes edgeFlow{to{stroke-dashoffset:-17}}.modalShade{background:#01070d9e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeIn .18s ease-out}.traceDrawer{border-left:1px solid rgba(139,177,219,.12);background:linear-gradient(180deg,#132841fb,#081422fe);animation:drawerIn .22s ease-out}.dialog{border-radius:18px;box-shadow:var(--shadow-float);animation:dialogIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes drawerIn{0%{transform:translate(35px);opacity:.55}to{transform:none;opacity:1}}@keyframes dialogIn{0%{transform:translateY(10px) scale(.985);opacity:.55}to{transform:none;opacity:1}}@media(max-width:1500px){.centerPanel{grid-column:1/9}.workbench>.rightPanel{grid-column:9/-1}}@media(max-width:1240px){.workbench>.leftPanel .stepForm{grid-template-columns:1fr 1fr}.inputStep:nth-child(3){grid-column:1/-1}.centerPanel{grid-column:1/-1}.workbench>.rightPanel{grid-column:1/-1;position:static;display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1fr);gap:14px}}@media(max-width:1000px){.app{grid-template-columns:minmax(0,1fr)}.workspace,.screen,.workbench,.centerPanel,.decisionAnalytics{min-width:0}}@media(max-width:900px){.workbench>.leftPanel .stepForm{grid-template-columns:1fr}.inputStep:nth-child(3){grid-column:auto}.workbench>.rightPanel{display:block}.resultHero{grid-template-columns:1fr}.heroKpis{grid-template-columns:repeat(3,1fr)}.conditionGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.workspace{padding:0 9px 18px}.topbar{margin:0 -9px 12px;padding:10px 9px;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.topbar>div:first-child{min-width:0}.topbar .actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.topbar .actions button{min-width:0;padding:8px 5px;justify-content:center}.topbar h1{font-size:20px}.projectName{grid-template-columns:auto minmax(0,1fr)}.heroKpis,.gaugeRow,.conditionGrid{grid-template-columns:1fr}.recommendationBody strong{font-size:52px}.bigCheck{width:68px;height:68px;font-size:34px}.calWorkspaceTable,.calTable{max-width:100%}.decisionAnalytics{grid-template-columns:minmax(0,1fr)}.decisionAnalytics>.panel{grid-column:auto!important;min-width:0}.candidateChart{max-width:100%;overflow:hidden}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.librarySettings{max-width:1680px;margin:0 auto}.libraryHeader{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border:1px solid rgba(72,157,255,.16);background:radial-gradient(circle at 5% 0%,rgba(47,128,255,.12),transparent 35%),linear-gradient(135deg,#112741f0,#081828f7);box-shadow:var(--shadow-soft)}.libraryHeader h2{margin:5px 0 6px;font-size:24px}.libraryHeader p{margin:0;color:var(--muted);font-size:12px}.libraryTrust{display:flex;align-items:center;gap:11px;min-width:250px;padding:12px 14px;border-left:3px solid var(--success);background:#45e39a0e}.libraryTrust svg{color:var(--success)}.libraryTrust span,.libraryTrust small{display:block}.libraryTrust small{margin-top:3px;color:var(--muted);font-size:10px}.libraryTabs{width:100%;padding:6px;overflow-x:auto}.libraryTabs button{display:inline-flex;align-items:center;gap:7px;min-height:39px;color:#9fb7d2;white-space:nowrap}.libraryTabs button:hover{color:#eef7ff}.libraryTabs button.active{color:#fff}.libraryTabs button.active svg{color:var(--aqua)}.libraryGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.libraryCard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:14px;text-align:left;border:1px solid var(--line);background:#ffffff06}.libraryCard>svg{color:#5bc9ff}.libraryCard>span,.libraryCard small{display:block;min-width:0}.libraryCard strong{display:block;overflow:hidden;text-overflow:ellipsis}.libraryCard small{margin-top:4px;color:var(--muted)}.libraryDataActions{display:flex;gap:8px;align-items:center}.libraryDataActions select{min-width:190px}.libraryDataActions .search{min-width:220px}.libraryReadOnly{display:flex;align-items:center;gap:7px;margin:12px 16px;padding:9px 11px;color:#83e5ba;font-size:11px;border:1px solid rgba(69,227,154,.12);background:#45e39a0b}.libraryTable{max-height:610px}.libraryTable table{min-width:max-content}.libraryTable th,.libraryTable td{max-width:260px;white-space:nowrap}.libraryTable td:first-child{color:var(--muted)}.compareWorkspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);gap:14px;align-items:start}.compareWorkspace>.updateLibrary{grid-row:1}.paritySummary{grid-column:2;grid-row:1;position:sticky;top:96px}.compareParity{grid-column:1/-1}.parityScore{display:flex;align-items:center;gap:16px;padding:20px}.parityScore>strong{font-size:45px;line-height:1;color:var(--success);text-shadow:0 0 24px rgba(69,227,154,.18)}.parityScore span,.parityScore small{display:block}.parityScore small{margin-top:5px;color:var(--muted)}.paritySummary>button{margin:0 20px 20px;width:calc(100% - 40px)}.stagedTitle{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.sheetCompareList{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0}.sheetCompareList>div{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);background:#ffffff05;font-size:10px}.sheetCompareList b{font-size:9px}.sheetCompareList .match{color:var(--success)}.sheetCompareList .missing{color:var(--danger)}.approvalSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:14px 0;background:var(--line)}.approvalSteps span{padding:11px;background:var(--surface-1);color:var(--muted);font-size:10px;font-weight:800}.approvalSteps span.done{color:var(--success);box-shadow:inset 0 2px var(--success)}.traceWorkspace{overflow:hidden}.traceFlow{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr)) minmax(210px,1.3fr);gap:8px;padding:16px;overflow-x:auto}.traceFlow>div{position:relative;min-height:94px;padding:13px;border:1px solid var(--line);background:linear-gradient(180deg,#2f80ff11,#ffffff05)}.traceFlow>div:not(:last-child):after{content:"";position:absolute;right:-9px;top:45px;width:9px;height:1px;background:var(--electric)}.traceFlow small,.traceFlow span{display:block}.traceFlow small{color:#5a9cff;font-size:8px;font-weight:900}.traceFlow b{display:block;margin:9px 0 6px;font-size:14px}.traceFlow span{color:var(--muted);font-size:9px}.traceFlow .decision{border-color:#ffc35440;background:linear-gradient(180deg,#ffc35414,#35e6cf06)}.traceFlow .decision small,.traceFlow .decision b{color:#ffe079}.traceFormulaTable{overflow:auto;max-height:560px;border-top:1px solid var(--line)}.traceFormulaTable table{min-width:900px}.traceFormulaTable code{color:#80d9ff;white-space:normal}.libraryHistory article{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.libraryHistory article svg{color:var(--electric)}.libraryHistory article div,.libraryHistory article span{display:block}.libraryHistory article span,.libraryHistory article time{margin-top:3px;color:var(--muted);font-size:10px}.activeVersion{display:flex;align-items:center;gap:10px;margin:15px;padding:13px;border:1px solid rgba(69,227,154,.16);background:#45e39a0b}.activeVersion svg{color:var(--success)}.activeVersion span,.activeVersion small{display:block}.activeVersion small{margin-top:4px;color:var(--muted)}@media(max-width:1200px){.libraryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.compareWorkspace{grid-template-columns:1fr}.paritySummary{grid-column:auto;grid-row:auto;position:static}.compareParity{grid-column:auto}}@media(max-width:700px){.libraryHeader{display:block}.libraryTrust{margin-top:15px;min-width:0}.libraryGrid{grid-template-columns:1fr}.libraryDataPanel .cardHead{display:block}.libraryDataActions{display:grid;grid-template-columns:1fr;margin-top:12px}.libraryDataActions select,.libraryDataActions .search{min-width:0;width:100%}.sheetCompareList,.approvalSteps{grid-template-columns:1fr}.traceFlow{grid-template-columns:repeat(7,minmax(150px,1fr))}.libraryHistory article{grid-template-columns:22px minmax(0,1fr)}.libraryHistory article time{grid-column:2}}body:has(.app.light){background:#eef3f8;color:#172235}body:has(.app.light):before{opacity:.32;background-image:linear-gradient(rgba(48,91,137,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(48,91,137,.06) 1px,transparent 1px)}.app.light{color-scheme:light;--txt:#172235;--text:#172235;--muted:#5d6f84;--bg:#eef3f8;--panel:#fff;--panel2:#f5f8fc;--input:#fff;--line:rgba(38,69,105,.15);--surface-0:#edf3f8;--surface-1:#fff;--surface-2:#f2f6fb;--glass:rgba(255,255,255,.88);--stroke-soft:rgba(35,72,112,.13);--stroke-med:rgba(35,72,112,.22);--shadow-soft:0 12px 34px rgba(35,62,91,.1);--shadow-float:0 22px 60px rgba(35,62,91,.18);background:radial-gradient(circle at 10% 0%,rgba(40,132,255,.1),transparent 28%),radial-gradient(circle at 90% 8%,rgba(22,189,167,.08),transparent 25%),#edf3f8;color:#172235}.app.light .sidebar{background:linear-gradient(180deg,#f8fbff,#edf4fa);border-color:#22456c24;box-shadow:14px 0 40px #2a446012}.app.light .brandMark strong,.app.light .topbar h1,.app.light h1,.app.light h2,.app.light h3,.app.light strong,.app.light b{color:#172235;text-shadow:none}.app.light .brandMark span,.app.light .cardHead p,.app.light .topbar p,.app.light small,.app.light .field>span,.app.light .dataItem span{color:#60738a}.app.light .suiteNav button{color:#41566f}.app.light .suiteNav button:hover{color:#13243a;background:#2877d514}.app.light .suiteNav button.active{color:#0d2744;background:linear-gradient(90deg,#267ee824,#14bea712);border-color:#2774cf33}.app.light .projectBox{background:linear-gradient(145deg,#fff,#f1f6fb);border-color:#274a7026}.app.light .projectBox div{color:#52677f}.app.light .topbar{background:#f6fafde0;border-color:#27486d1f;box-shadow:0 10px 26px #27425e14}.app.light .topbar h1{background:none;-webkit-text-fill-color:#13243a;color:#13243a}.app.light .projectName span{color:#526980}.app.light input,.app.light select,.app.light textarea{color:#172235;background:#fff;border-color:#274b7433;box-shadow:inset 0 1px 2px #2543620d}.app.light input::placeholder,.app.light textarea::placeholder{color:#8291a3}.app.light input:hover,.app.light select:hover{background:#fbfdff;border-color:#2677d659}.app.light input:focus,.app.light select:focus{border-color:#3184df;box-shadow:0 0 0 3px #3184df1f}.app.light .actions button,.app.light .tableActions button,.app.light .sectionHeader button,.app.light .settingsTabs button{color:#263b53;background:linear-gradient(180deg,#fff,#f2f6fa);border-color:#284a702b}.app.light .actions button:hover,.app.light .tableActions button:hover{color:#102b49;border-color:#287fe161}.app.light button.primary,.app.light .actions .primary{color:#fff;background:linear-gradient(135deg,#176bdb,#168ed8 52%,#0ca6a8);border-color:transparent;box-shadow:0 10px 24px #1869be38}.app.light .themeToggle{color:#1769bd;background:#eaf4ff}.app.light .eyebrow{color:#087d80}.app.light .panel,.app.light .kpi,.app.light .scenarioCard{color:#172235;background:linear-gradient(180deg,#fff,#f7fafc);border-color:#25486f24;box-shadow:var(--shadow-soft)}.app.light .cardHead{background:linear-gradient(90deg,rgba(43,116,201,.055),transparent 65%);border-color:#27496f1c}.app.light .inputStep{background:radial-gradient(circle at 100% 0%,rgba(47,128,255,.1),transparent 38%),linear-gradient(180deg,#fff,#f5f9fd);border-color:#2d5f9729}.app.light .inputStep:nth-child(2){background:radial-gradient(circle at 100% 0%,rgba(21,183,159,.11),transparent 38%),linear-gradient(180deg,#fff,#f4faf8)}.app.light .inputStep:nth-child(3){background:radial-gradient(circle at 100% 0%,rgba(116,95,220,.1),transparent 38%),linear-gradient(180deg,#fff,#f7f6fc)}.app.light .resultHero{background:radial-gradient(circle at 8% 18%,rgba(41,126,231,.12),transparent 34%),radial-gradient(circle at 94% 70%,rgba(25,190,166,.1),transparent 30%),linear-gradient(135deg,#fff,#f1f7fc)}.app.light .recommendation,.app.light .rightPanel .hero{background:linear-gradient(135deg,#edf8ff,#eefbf7);border-color:#24957e33}.app.light .recommendationBody strong,.app.light .rightPanel .hero .size{color:#087a55}.app.light .metric,.app.light .gauge,.app.light .condition,.app.light .customerSelection{background:linear-gradient(135deg,#fff,#f5f8fb);border-color:#274a7024}.app.light .ring{background:radial-gradient(closest-side,#fff 70%,transparent 72%),conic-gradient(var(--ring-color) calc(var(--pct)*1%),#dce5ee 0)}.app.light .calTable{background:#edf3f8}.app.light .calTable th{color:#eaf4ff;background:linear-gradient(180deg,#28547e,#1f4264);border-color:#ffffff1f}.app.light .calTable td{color:#1b2b3d;background:#fff!important;border-color:#dbe4ed}.app.light .calTable tbody tr:hover td{background:#edf6ff!important}.app.light .calTable .selectedRow td{background:#e5f1fd!important}.app.light .calTable .calculatedCell{color:#075f8f;background:#dff3fb!important;text-shadow:none}.app.light .calTable .selectedCell{color:#6b4d00;background:#fff4c9!important}.app.light .calTable td input,.app.light .calTable td select{color:#172235;background:#fff;border-color:#b9c9da}.app.light .calTable .selectedCell select{color:#6b4d00;background:#fff9df}.app.light .decisionAnalytics .panel,.app.light .recommendationList article,.app.light .libraryCard,.app.light .sheetCompareList>div,.app.light .traceFlow>div{background:#fff;border-color:#274a7024}.app.light .recommendationList p,.app.light .chartLegend,.app.light .candidate span,.app.light .lossBars>div>span{color:#5d7086}.app.light .candidateChart line{stroke:#ccd8e4}.app.light .candidateChart text{fill:#4e637a}.app.light .lossBars>div>div{border-color:#cbd7e2}.app.light .lossBars b{color:#263b53}.app.light .reactFlowPanel{background:radial-gradient(circle at 50% 15%,rgba(47,128,255,.1),transparent 42%),linear-gradient(rgba(55,102,151,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(55,102,151,.07) 1px,transparent 1px),#f3f8fc;background-size:auto,36px 36px,36px 36px}.app.light .react-flow__minimap{background:#fff!important;border-color:#bdd0e2}.app.light .networkToolbar,.app.light .sheetToolbar,.app.light .groupToolbar{background:#f7fafdeb}.app.light .libraryHeader{background:radial-gradient(circle at 5% 0%,rgba(47,128,255,.12),transparent 35%),linear-gradient(135deg,#fff,#eef6fb);border-color:#2b70be2e}.app.light .libraryHeader h2,.app.light .libraryTrust b{color:#172235}.app.light .libraryTrust{background:#eaf8f2}.app.light .libraryTabs{background:#e8eff6}.app.light .libraryTabs button{color:#40566f;background:transparent}.app.light .libraryTabs button:hover{color:#13243a}.app.light .libraryTabs button.active{color:#113458;background:#fff;border-color:#9fbddb}.app.light .libraryReadOnly,.app.light .activeVersion{color:#087a55;background:#ebf8f2}.app.light .stagedResult,.app.light .approvalSteps span,.app.light .dataItem,.app.light .libraryTable td{color:#172235;background:#fff}.app.light .libraryTable tr:hover td{background:#edf6ff}.app.light .traceFormulaTable code{color:#075f8f}.app.light .status.pass{color:#087a55;background:#e7f7ef;border-color:#9ddcc0}.app.light .status.warning{color:#805700;background:#fff3cf;border-color:#e9cd7d}.app.light .status.fail{color:#a51d2d;background:#fdebec;border-color:#efb2b9}.app.light .notice{color:#805700}.app.light .warning{color:#a13d14}.app.light .ok{color:#087a55}.login-shell{--login-blue:#41d7ff;--login-orange:#ff8a3d;position:relative;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);width:100%;height:100vh;min-height:620px;overflow:hidden;color:#d8edf5;background:radial-gradient(circle at 24% 58%,#0a2d43 0,transparent 38%),linear-gradient(120deg,#020914,#051522 57%,#07131d);font-family:Inter,Segoe UI,sans-serif}.login-shell *{box-sizing:border-box}.blueprint-grid{position:absolute;inset:0;opacity:.18;pointer-events:none;background-image:linear-gradient(rgba(75,180,218,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(75,180,218,.16) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 78%);mask-image:linear-gradient(90deg,#000 0%,transparent 78%);animation:login-grid 18s linear infinite}.login-topbar{position:absolute;z-index:10;top:0;left:0;right:0;height:82px;display:flex;align-items:center;padding:0 3.5vw;border-bottom:1px solid #12384a;background:#03101bc7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.login-brand-mark{display:grid;place-items:center;width:38px;height:38px;color:#03131e;background:var(--login-blue);box-shadow:0 0 22px #24cfff55}.login-brand-copy{display:flex;flex-direction:column;margin-left:12px;letter-spacing:.08em}.login-brand-copy strong{font-size:14px}.login-brand-copy span{font:8px monospace;color:#6d9aaa;letter-spacing:.2em}.system-status{margin-left:auto;display:flex;align-items:center;gap:8px;color:#76a0af;font:10px monospace}.system-status span{width:7px;height:7px;border-radius:50%;background:#51e29a;box-shadow:0 0 9px #51e29a}.visual-panel{position:relative;z-index:1;min-width:0;padding:clamp(110px,13vh,142px) 4vw 16px}.visual-panel h1{margin:10px 0 12px;color:#e8f8ff;font-size:clamp(38px,min(4vw,6.5vh),66px);line-height:1.03;letter-spacing:0}.visual-panel h1 em{color:var(--login-blue);font-style:normal}.visual-panel>p{max-width:670px;margin:0;color:#779ba9;font-size:13px;line-height:1.6}.cable-stage{position:relative;width:min(690px,100%);max-height:47vh;margin-top:-8px}.cable-stage>svg{display:block;width:100%;height:min(430px,47vh);overflow:visible;filter:drop-shadow(0 22px 30px #000b)}.cable-core{transform-box:fill-box;transform-origin:center;animation:login-float 3.5s ease-in-out infinite}.core-pulse{transform-box:fill-box;transform-origin:center;animation:login-pulse 2.2s ease-out infinite}.energy-streak{stroke-dasharray:12 13;animation:login-energy 1.4s linear infinite}.scan-line{position:absolute;z-index:2;left:12%;right:12%;top:18%;height:1px;background:linear-gradient(90deg,transparent,#55ddff,transparent);box-shadow:0 0 14px #42d7ff;animation:login-scan 4s ease-in-out infinite}.spec-chip{position:absolute;display:flex;gap:8px;align-items:baseline;padding:7px 10px;border:1px solid #1e536a;background:#061a28d9;color:#7caabd;font:10px monospace}.spec-chip strong{color:#d7f5ff}.chip-one{left:7%;top:25%}.chip-two{right:7%;bottom:19%}.login-panel{position:relative;z-index:2;display:grid;place-items:center;padding:96px 3vw 42px;border-left:1px solid #174056;background:#06131ddd;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-card{position:relative;width:min(430px,100%);padding:clamp(25px,3vw,43px);border:1px solid #1b4254;background:#081b28e8;box-shadow:0 28px 80px #0007}.login-card:before{content:"";position:absolute;left:-1px;top:24px;width:3px;height:72px;background:var(--login-blue);box-shadow:0 0 15px var(--login-blue)}.card-badge{display:flex;align-items:center;gap:8px;color:#6fdfff;font:9px monospace;letter-spacing:.15em}.login-card h2{margin:17px 0 7px;color:#effaff;font-size:34px;letter-spacing:0}.login-card>p{margin:0 0 26px;color:#789aa8;font-size:13px}.login-card form>label,.password-row label{display:block;color:#a6c0ca;font-size:11px;font-weight:650;margin-bottom:8px}.login-input-wrap{display:flex;align-items:center;gap:10px;height:51px;padding:0 13px;border:1px solid #285063;background:#06141e;color:#5c899b;transition:.2s}.login-input-wrap:focus-within{border-color:#39caf1;box-shadow:0 0 0 3px #2acbfa18}.login-input-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#e5f7fd;font-size:13px}.login-input-wrap input::placeholder{color:#476572}.login-input-wrap .eye{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;background:transparent;color:#7099a8}.password-row{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.password-row label{margin:0}.password-row button{padding:0;border:0;background:transparent;color:#5bbbd8;font-size:10px}.remember{display:flex!important;align-items:center;gap:9px;margin:15px 0 19px!important;color:#7799a7!important;font-weight:400!important}.remember input{width:15px;height:15px;accent-color:#41d7ff}.login-button{display:flex;align-items:center;justify-content:center;width:100%;height:52px;border:0;background:linear-gradient(90deg,#2bc9ee,#68e4ff);color:#052433;font-size:11px;font-weight:850;letter-spacing:.1em;cursor:pointer;transition:.2s}.login-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.login-button:disabled{cursor:wait;opacity:.8}.login-button>span:last-child{margin-left:9px;font-size:18px}.spinner{width:17px;height:17px;margin-right:9px;border:2px solid #052433;border-top-color:transparent;border-radius:50%;animation:login-rotate .7s linear infinite}.demo-credentials{margin-top:12px;text-align:center;color:#577482;font:8px monospace}.demo-credentials strong{color:#87aab8}.demo-message{display:flex;align-items:center;gap:8px;margin-top:15px;padding:11px 13px;border:1px solid #296b63;background:#0a2d2b;color:#82e5cc;font-size:11px;line-height:1.5}.demo-message.overheat{border-color:#8b3728;background:#35130f;color:#ff9b76}.demo-message.connected{border-color:#176b96;background:#082d43;color:#73ddff}.secure-note{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:22px;color:#496672;font:9px monospace}.cable-alert{position:absolute;z-index:5;left:50%;bottom:5%;transform:translate(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;padding:9px 13px;font:10px monospace;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cable-alert.danger{color:#ffb08c;border:1px solid #ff572f;background:#421207dc}.cable-alert.success{color:#9beaff;border:1px solid #2dc9ff;background:#07304bdc}.cable-stage.overheat>svg{filter:drop-shadow(0 0 18px #ff3d1f)}.cable-stage.connected>svg{filter:drop-shadow(0 0 22px #16bfff)}@keyframes login-grid{to{background-position:38px 38px}}@keyframes login-float{50%{transform:translateY(-3px)}}@keyframes login-pulse{0%{opacity:.8;transform:scale(.88)}80%,to{opacity:0;transform:scale(1.12)}}@keyframes login-energy{to{stroke-dashoffset:-50}}@keyframes login-scan{0%,to{top:15%;opacity:0}20%,80%{opacity:.8}50%{top:80%}}@keyframes login-rotate{to{transform:rotate(360deg)}}@media(max-width:900px){.login-shell{height:auto;min-height:100vh;grid-template-columns:1fr;overflow:auto}.login-topbar{height:72px;padding:0 22px}.system-status{display:none}.visual-panel{padding:104px 24px 0}.visual-panel h1{font-size:42px}.cable-stage{margin:-18px auto -20px}.login-panel{padding:50px 24px 70px;border-left:0;border-top:1px solid #174056}}@media(max-width:520px){.visual-panel h1{font-size:36px}.cable-stage{width:112%;margin-left:-6%}.login-card{padding:27px 22px}.login-card h2{font-size:29px}.demo-credentials{line-height:1.6}}@media(prefers-reduced-motion:reduce){.login-shell *,.login-shell *:before,.login-shell *:after{animation-duration:.001ms!important;animation-iteration-count:1!important}}.logoutButton{color:#ffb08c!important;border-color:#9f4939!important}.logoutButton:hover{background:#572218!important}
