.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;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))}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.block-tint{position:absolute;top:0;left:0;right:0;height:4px;border-radius:8px 8px 0 0;pointer-events:none}.tree-panel{margin-top:44px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px 12px;max-height:50vh;overflow:auto;min-width:180px;font-size:13px}.tree-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.tree-root,.tree-root ul{list-style:none;margin:0;padding-left:14px}.tree-root{padding-left:0}.tree-row{display:flex;align-items:center;gap:4px;border-radius:6px;padding:1px 4px}.tree-row.active{background:var(--accent-weak)}.tree-row.active .tree-label{color:var(--accent);font-weight:600}.tree-caret{border:none;background:none;cursor:pointer;font-size:10px;width:14px;color:var(--muted);padding:0}.tree-caret.leaf{text-align:center}.tree-label{border:none;background:none;cursor:pointer;color:var(--fg);font-size:13px;padding:2px 4px}.tree-label:hover{color:var(--accent)}.color-row,.swatch-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.swatch{width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer}.swatch.active{border-color:var(--fg)}.global-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.global-row .global-id{min-width:46px;font-weight:600}.global-row select{font-size:12px}.global-row input{flex:1;min-width:0;font-size:12.5px}.validate-modal{max-width:560px}.validate-ok{color:var(--ok, #16a34a);font-weight:600;font-size:15px}.validate-list{max-height:50vh;overflow:auto}.palette-actions.secondary{margin-top:4px}.palette-actions .small,.ghost.small{font-size:12px;padding:3px 8px}.palette-group-toggle{display:flex;align-items:center;gap:6px;flex:1;border:none;background:none;cursor:pointer;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0}.palette-cat-tools{display:inline-flex;gap:2px}.canvas-tools button.active{color:var(--accent);border-color:var(--accent)}.canvas-tools{display:flex;gap:6px;align-items:center;background:var(--panel, #fff);padding:4px 6px;border-radius:6px;box-shadow:0 1px 4px #0000001f}.canvas-tools select{font-size:12px;padding:2px 4px}.sim-necks{margin-top:8px;padding:8px 12px;border-left:3px solid var(--warn);background:var(--warn-bg);border-radius:4px;font-size:13px}.sim-necks ul{margin:4px 0 0;padding-left:18px}.sim-necks code{font-size:12px}:root{color-scheme:light;--bg: #f4f5f7;--panel: #ffffff;--surface-2: #fafbfc;--field: #ffffff;--field-border: #c8cdd6;--ink: #1c2127;--fg: #1c2127;--muted: #6b7280;--line: #d8dce3;--accent: #2563eb;--accent-weak: #dbeafe;--on-accent: #ffffff;--error: #dc2626;--warn: #d97706;--ok: #16a34a;--ok-bg: #dcfce7;--ok-fg: #15803d;--error-bg: #fee2e2;--error-fg: #b91c1c;--error-panel: #fef2f2;--warn-bg: #fef9c3;--warn-fg: #854d0e;--info-bg: #eef2ff;--info-fg: #4338ca;--neutral-bg: #f1f5f9;--neutral-fg: #94a3b8;--overlay: rgba(255, 255, 255, .92);--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}[data-theme=dark]{color-scheme:dark;--bg: #11141b;--panel: #1b1f29;--surface-2: #232834;--field: #232834;--field-border: #3a4150;--ink: #e8eaed;--fg: #e8eaed;--muted: #9aa3b2;--line: #2d3340;--accent: #60a5fa;--accent-weak: #1e3a5f;--on-accent: #0b1220;--error: #f87171;--warn: #fbbf24;--ok: #4ade80;--ok-bg: #14331f;--ok-fg: #4ade80;--error-bg: #3a1a1d;--error-fg: #f87171;--error-panel: #2a1517;--warn-bg: #3a2f12;--warn-fg: #fbbf24;--info-bg: #1e2547;--info-fg: #a5b4fc;--neutral-bg: #232834;--neutral-fg: #707a8a;--overlay: rgba(26, 29, 38, .92);--shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .35)}[data-theme=dark] .uplot{color:var(--ink)}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg)}.mono{font-family:ui-monospace,SFMono-Regular,Cascadia Code,Menlo,monospace}.small{font-size:11px}.muted{color:var(--muted)}.app{display:flex;flex-direction:column;height:100vh}.toolbar{display:flex;align-items:center;gap:10px;padding:0 12px;height:48px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto}.brand{font-weight:700;letter-spacing:-.01em}.brand-sub{font-weight:400;color:var(--muted);margin-left:6px;font-size:12px}.name-input{font-size:14px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;min-width:180px}.dirty-dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}.spacer{flex:1}.project-select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.engine-version{font-size:11px;color:var(--muted);margin-left:4px}.theme-toggle{display:inline-flex;align-items:center;gap:6px}.theme-toggle-label{font-size:12px}body,.toolbar,.tabs,.inspector,.palette,.simulate,.results,.block{transition:background-color .16s ease,border-color .16s ease,color .16s ease}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--line);padding:6px 12px;background:var(--panel)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.ghost{background:transparent}button.danger{color:var(--error);border-color:var(--error)}button:disabled{opacity:.55;cursor:not-allowed}button.primary:disabled{background:var(--line);border-color:var(--line);color:var(--muted);opacity:1}button:hover:not(:disabled){filter:brightness(.97)}[data-theme=dark] button:hover:not(:disabled){filter:brightness(1.12)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font:inherit;color:var(--fg);background:var(--field);border:1px solid var(--field-border);border-radius:6px;padding:5px 8px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.tabs{display:flex;gap:2px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto}.tab{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:9px 16px;color:var(--muted);font-weight:600}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.workspace{display:grid;grid-template-columns:var(--palette-w, 220px) 6px minmax(0,1fr) 6px var(--inspector-w, 300px);flex:1 1 auto;min-height:0}.simulate-run-error{flex:0 0 auto}.results-unified{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;padding:12px 16px;overflow:hidden}.sim-estimate-warn{color:var(--error);margin:0;line-height:1.35}.tab-badge{margin-left:6px;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:700;background:var(--accent-weak);color:var(--accent)}.tab.active .tab-badge{background:var(--accent);color:#fff}.sim-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px}button.primary.small{padding:4px 10px;font-size:12px}.sim-problem-editor{display:flex;flex-direction:column;gap:10px;font-size:13px;min-height:0;overflow:auto;padding-right:4px;border-right:1px solid var(--line)}.sim-problem-editor label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.sim-problem-editor input[type=text],.sim-problem-editor input[type=number],.sim-problem-editor select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}.sim-config-section{display:flex;flex-direction:column;gap:8px;padding-top:4px}.sim-study-block{margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel, rgba(0, 0, 0, .02))}.sim-study-section{display:flex;flex-direction:column;gap:8px}.sim-study-pending{color:var(--warn, #b45309);margin:0}.sim-sweep-axis{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:6px;border:1px solid var(--line);border-radius:6px}.sim-sweep-axis .sweep-axis-del{margin-left:auto}.sweep-grid{display:flex;flex-direction:column;gap:8px;overflow:auto}.sweep-matrix,.sweep-table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:12px}.sweep-matrix th,.sweep-matrix td,.sweep-table th,.sweep-table td{border:1px solid var(--line);padding:3px 8px;text-align:right}.sweep-matrix thead th,.sweep-table thead th,.sweep-matrix tbody th{background:var(--panel, rgba(0, 0, 0, .04));font-weight:600}.sweep-corner{text-align:left;white-space:nowrap}.sim-metric-field{display:flex;gap:6px;align-items:stretch}.sim-metrics{display:flex;flex-direction:column;gap:6px}.sim-metric-row{display:flex;gap:6px;align-items:center}.sim-metric-row>:first-child{flex:1 1 auto}.sweep-result{display:flex;flex-direction:column;gap:10px;min-height:0}.sim-plot-stage>.sweep-result{flex:1 1 auto;min-height:0}.sweep-result>.plot-wrap{flex:1 1 auto;min-height:0}.sweep-result-tabs,.sweep-signal-pick{flex:0 0 auto}.sweep-result-tabs{display:flex;gap:6px}.sweep-result-tabs .active{background:var(--accent);color:var(--accent-fg, #fff)}.sweep-signal-pick{display:flex;gap:8px;align-items:center;font-size:12px}.sweep-metric-views{display:flex;flex-direction:column;gap:16px;flex:1 1 auto;min-height:0;overflow:auto}.sim-metric-field select{flex:0 0 auto}.sim-metric-field>:last-child{flex:1 1 auto}.sim-sections{display:flex;flex-direction:column;gap:6px;margin-top:8px}.sim-section{border:1px solid var(--line);border-radius:8px;overflow:hidden}.sim-section-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:transparent;cursor:pointer;text-align:left}.sim-section-head .cap-label{flex:1}.sim-section-chevron{color:var(--muted);font-size:12px}.sim-section-body{padding:0 10px 10px;border-top:1px solid var(--line)}.sim-validation-list{margin:8px 0;padding-left:18px}.sim-check-row{flex-direction:row!important;align-items:center;gap:8px;color:var(--ink)}.sim-workspace{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}.sim-results-bar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;flex:0 0 auto;padding-bottom:8px;border-bottom:1px solid var(--line)}.sim-solutions-panel{flex:1 1 200px;min-width:0}.sim-solution-list{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px;max-height:88px;overflow:auto}.sim-solution-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;font:inherit;text-align:left}.sim-solution-btn:hover{border-color:var(--accent)}.sim-solution-btn.active{border-color:var(--accent);background:var(--accent-weak)}.sim-solutions-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.results-view-toggle{display:flex;gap:4px}.sim-solution-compare{display:flex;align-items:center;gap:8px;cursor:pointer;font:inherit}.sim-solution-compare input{accent-color:var(--accent)}.sim-solution-btn.drop-target,.sim-solution-compare.drop-target{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.sim-compare-hint{margin:6px 0 0;line-height:1.35}.plot-sidebar-hint{margin:0 0 8px;line-height:1.35}.sim-results-actions{display:flex;flex-wrap:wrap;gap:6px;flex:0 0 auto}.sim-workspace-main{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--results-sidebar-w, 320px);gap:0;flex:1 1 auto;min-height:0}.sim-plot-pane{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0;overflow:hidden}.sim-plot-stage{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.sim-plot-stage>.plot-wrap,.sim-plot-stage>.sim-result-card,.sim-plot-stage>.sim-plot-grid{flex:1 1 auto;min-height:0}.sim-plot-stage .sim-ocp-result{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sim-plot-stage .sim-ocp-result .plot-wrap{flex:1 1 auto;min-height:0}.sim-plot-stage .sim-ocp-details{flex:0 0 auto;max-height:40%;overflow:auto}.sim-inspector{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;font-size:13px}.sim-rail{display:flex;flex-direction:column;gap:10px;font-size:13px}.sim-rail label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.sim-main{display:flex;flex-direction:column;gap:10px;min-height:0}.sim-quality{display:flex;gap:12px;flex-wrap:wrap}.sim-execution{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px solid var(--line)}.sim-autocomplete-wrap{position:relative;flex:1 1 auto;min-width:0}.sim-suggest-menu{position:absolute;z-index:20;left:0;right:0;top:100%;margin:2px 0 0;padding:4px 0;list-style:none;max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 4px 12px #0000001f}.sim-suggest-menu li{padding:6px 10px;cursor:pointer;font-family:var(--mono, monospace);font-size:.85rem}.sim-suggest-menu li:hover,.sim-suggest-recommended{background:var(--line)}.sim-suggest-recommended{font-weight:500}.sim-controls-multi{display:flex;flex-direction:column;gap:6px}.sim-control-chips{display:flex;flex-wrap:wrap;gap:4px}.sim-control-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px;background:var(--line)}.sim-control-chip-remove{border:none;background:transparent;cursor:pointer;padding:0 2px;line-height:1;color:var(--muted)}.sim-suggest-quick{align-self:flex-start}.signal-browser ul{list-style:none;padding:0;margin:4px 0;max-height:200px;overflow:auto}.plot-chart-bar{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);flex-wrap:wrap}.plot-tab-strip{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin}.plot-tab{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;flex:0 0 auto}.plot-tab:hover{background:var(--bg)}.plot-tab.active{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);font-weight:600}.plot-tab-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.plot-tab-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}.plot-tab-count{font-size:10px;opacity:.8}.plot-tab-add{border:1px dashed var(--line);color:var(--muted);min-width:32px;justify-content:center}.plot-chart-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.plot-action-btn{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.plot-action-btn:hover{border-color:var(--accent);color:var(--accent)}.plot-pill{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font-size:12px;cursor:pointer}.plot-pill.on{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);font-weight:600}.plot-icon-btn{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;font-size:16px;line-height:1}.plot-menu-wrap{position:relative}.plot-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.plot-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:200px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.plot-menu button{padding:8px 10px;border:none;border-radius:6px;background:transparent;text-align:left;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.plot-menu button:hover:not(:disabled){background:var(--bg)}.plot-menu button:disabled{opacity:.45;cursor:not-allowed}.plot-menu-field{display:flex;flex-direction:column;gap:4px;padding:4px 6px 8px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px}.plot-menu-field input{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:var(--bg);color:var(--ink)}.plot-views-wrap{position:relative}.plot-views-menu{min-width:240px}.plot-views-save{display:flex;gap:4px;padding-bottom:6px;border-bottom:1px solid var(--line)}.plot-views-save input{flex:1 1 auto;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:var(--bg);color:var(--ink)}.plot-views-save button{flex:0 0 auto;padding:6px 12px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--on-accent);font-size:13px;cursor:pointer}.plot-views-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto}.plot-views-empty{padding:6px}.plot-views-row{display:flex;align-items:center;gap:2px}.plot-views-row .plot-views-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;border:none;border-radius:6px;background:transparent;text-align:left;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}.plot-views-row .plot-views-name:hover{background:var(--bg)}.plot-views-row button.plot-views-star,.plot-views-row button.plot-views-export,.plot-views-row button.plot-views-del{flex:0 0 auto;padding:4px 6px;border:none;border-radius:6px;background:transparent;color:var(--muted);font-size:13px;cursor:pointer}.plot-views-row button:hover{background:var(--bg);color:var(--ink)}.plot-views-row .plot-views-star.on{color:var(--accent)}.plot-sidebar{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.plot-sidebar-empty{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.plot-sidebar-section{display:flex;flex-direction:column;gap:8px}.plot-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.plot-sidebar-title{margin:0;font-size:13px;font-weight:700;letter-spacing:-.01em}.plot-sidebar-links{display:flex;align-items:center;gap:4px}.plot-link-btn{border:none;background:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0}.plot-link-btn:hover{text-decoration:underline}.plot-search{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--bg);color:var(--ink)}.plot-search:focus{outline:2px solid var(--accent-weak);border-color:var(--accent)}.plot-signal-library{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto}.plot-signal-empty{padding:12px 8px;text-align:center}.plot-signal-item{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;border:1px solid transparent}.plot-signal-item.on-plot{background:var(--bg)}.plot-signal-item.focused{border-color:var(--accent);background:var(--accent-weak)}.plot-signal-toggle{width:36px;height:22px;padding:0;border:none;border-radius:999px;background:var(--line);cursor:pointer;position:relative;flex:0 0 auto;transition:background .15s ease}.plot-signal-toggle.on{background:var(--accent)}.plot-signal-toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--panel);transition:transform .15s ease;box-shadow:0 1px 2px #00000026}.plot-signal-toggle.on .plot-signal-toggle-thumb{transform:translate(14px)}.plot-signal-toggle.partial{background:color-mix(in srgb,var(--accent) 45%,var(--line))}.plot-signal-toggle.partial .plot-signal-toggle-thumb{transform:translate(7px)}.plot-signal-group{margin:2px 0}.plot-signal-grouphead{display:flex;align-items:center;gap:8px;padding:2px 0}.plot-signal-vecbadge{padding:0 5px;border:1px solid var(--line);border-radius:4px;letter-spacing:.02em}.plot-signal-complist{list-style:none;padding:0 0 0 14px;border-left:1px solid var(--line);margin:0 0 0 17px}.plot-signal-item.plot-signal-comp .plot-signal-name{color:var(--muted)}.plot-signal-main{flex:1 1 auto;display:flex;align-items:center;gap:8px;min-width:0;padding:4px 2px;border:none;background:none;text-align:left;cursor:pointer;font:inherit}.plot-signal-main:disabled{cursor:default;opacity:.85}.plot-signal-line{width:3px;height:20px;border-radius:2px;flex:0 0 auto}.plot-signal-text{display:flex;flex-direction:column;gap:1px;min-width:0}.plot-signal-name{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.plot-signal-unit{font-size:10px}.plot-style-card{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);display:flex;flex-direction:column;gap:10px}.plot-style-head{display:flex;align-items:center;gap:8px}.plot-style-line{width:4px;height:24px;border-radius:2px}.plot-style-name{font-size:13px;font-weight:600}.plot-style-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plot-style-label{font-size:11px;font-weight:600;color:var(--muted);min-width:52px;text-transform:uppercase;letter-spacing:.04em}.plot-alias-input{flex:1 1 auto;min-width:0;font-size:12px;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-1, var(--bg));color:inherit}.plot-color-palette{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.plot-color-swatch{width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0}.plot-color-swatch.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--panel)}.plot-color-custom input{width:28px;height:28px;padding:0;border:none;background:none;cursor:pointer}.plot-segmented{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.plot-segmented button{padding:5px 10px;border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;border-right:1px solid var(--line)}.plot-segmented button:last-child{border-right:none}.plot-segmented button.active{background:var(--accent-weak);color:var(--accent);font-weight:600}.plot-range{flex:1 1 auto;min-width:80px;accent-color:var(--accent)}.plot-range-val{min-width:24px}.plot-axes-details{border-top:1px solid var(--line);padding-top:8px}.plot-axes-details summary{font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.plot-axes-body{display:flex;flex-direction:column;gap:10px;padding-top:8px}.plot-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.plot-field-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.plot-field-grid input,.plot-field-grid select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:12px;background:var(--bg);color:var(--ink)}.plot-wrap{flex:1 1 auto;min-height:280px;display:flex;flex-direction:column;overflow:hidden}.plot-wrap .plot{flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.plot-wrap.legend-top .u-legend{top:0;bottom:auto}.plot-wrap.legend-bottom .u-legend{bottom:0;top:auto}.plot-wrap.legend-right .u-legend{right:0;left:auto;top:0;bottom:auto;flex-direction:column}.theme-toggle{min-width:52px}.ic-section{display:flex;flex-direction:column;gap:6px}.ic-scroll{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:6px;padding-right:2px}.ic-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.ic-row input{width:72px}.sim-result-card{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.sim-ocp-result{display:flex;flex-direction:column;gap:12px}.sim-ocp-head{display:flex;flex-direction:column;gap:2px}.sim-ocp-title{margin:0;font-size:15px;font-weight:600}.sim-ocp-note{margin:0;line-height:1.45}.sim-ocp-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 16px;margin:0}.sim-ocp-metrics>div{display:flex;flex-direction:column;gap:2px}.sim-ocp-metrics dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.sim-ocp-metrics dd{margin:0;font-size:14px;font-variant-numeric:tabular-nums}.sim-ocp-controls{display:flex;flex-direction:column;gap:6px}.sim-ocp-control-table{width:100%;border-collapse:collapse;font-size:13px}.sim-ocp-control-table th,.sim-ocp-control-table td{padding:4px 8px;border-bottom:1px solid var(--line);text-align:left}.sim-ocp-control-table th{font-size:11px;color:var(--muted);font-weight:600}.sim-ocp-advanced{margin-top:4px;padding:8px 10px;border:1px dashed var(--line);border-radius:8px}.sim-ocp-advanced summary{cursor:pointer;font-size:12px;color:var(--muted)}.sim-ocp-advanced[open] summary{margin-bottom:8px}.sim-trim-result,.sim-linear-result,.sim-mc-result{display:flex;flex-direction:column;gap:12px}.sim-trim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.sim-trim-grid h4,.sim-linear-result h4{margin:0 0 6px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.sim-kv-table{width:100%;border-collapse:collapse}.sim-kv-table td{padding:3px 8px;border-bottom:1px solid var(--line)}.sim-kv-table td.num{text-align:right;font-variant-numeric:tabular-nums}.sim-pole-list{margin:0;padding-left:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 16px}.sim-mc-histogram{display:flex;align-items:flex-end;gap:2px;height:80px;padding-top:4px}.sim-mc-bar{flex:1 1 0;min-height:1px;background:var(--accent, #4c8bf5);border-radius:1px 1px 0 0}.sim-controls{display:flex;align-items:flex-end;gap:14px;flex:0 0 auto}.sim-controls label{display:flex;flex-direction:column;font-size:11px;color:var(--muted);gap:3px}.sim-controls input,.sim-controls select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--ink)}.sim-controls input{width:100px}.sim-placeholder{display:flex;flex-direction:column;gap:8px;padding:24px;max-width:480px;align-self:center;text-align:center;margin:auto}.inputs-section{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.input-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.input-name{min-width:160px}.input-row select{padding:4px 8px;border:1px solid var(--line);border-radius:6px}.input-param{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.input-param input{width:70px;padding:3px 6px;border:1px solid var(--line);border-radius:5px}.sim-error{color:var(--error-fg);background:var(--error-panel);border:1px solid var(--error);border-radius:6px;padding:8px 12px;font-size:13px}.plot{flex:1 1 auto;min-height:300px}.uplot{font-family:inherit}.analyze{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;padding:12px 16px;gap:12px;overflow-y:auto}.analyze-modes,.bode{display:flex;gap:8px}.bode{flex-direction:column}.bode-chart{width:100%}.seg{padding:6px 14px}.seg.active{background:var(--accent);color:#fff;border-color:var(--accent)}.analyze-body,.lti{display:flex;flex-direction:column;gap:12px}.lti-status{display:flex;align-items:center;gap:10px}.matrices{display:flex;flex-wrap:wrap;gap:18px}.matrix-name{font-weight:700;margin-bottom:4px}.mini-table{border-collapse:collapse;font-size:12px}.mini-table th,.mini-table td{padding:3px 8px;text-align:right}.mini-table td.num{font-family:ui-monospace,monospace;border:1px solid var(--line)}.badge.stable{background:var(--ok-bg);color:var(--ok-fg)}.badge.unstable{background:var(--error-bg);color:var(--error-fg)}.poles{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.pole{background:var(--info-bg);color:var(--info-fg);padding:2px 8px;border-radius:4px}.trim-result{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.mc-result{display:flex;flex-direction:column;gap:12px}.mc-stats{display:flex;gap:18px;align-items:center}.stat{display:flex;flex-direction:column;gap:2px}.histogram{display:flex;align-items:flex-end;gap:2px;height:220px;border-bottom:1px solid var(--line);padding-top:8px}.hist-bar{flex:1;background:var(--accent);min-height:1px;border-radius:2px 2px 0 0}.hist-bar:hover{background:#1d4ed8}.palette{background:var(--panel);border-right:1px solid var(--line);padding:12px;overflow-y:auto}.palette h2{margin:0 0 2px;font-size:14px}.palette-hint{margin:0 0 12px;font-size:11px;color:var(--muted)}.palette-search{width:100%;box-sizing:border-box;margin-bottom:8px;padding:4px 8px;font-size:12px;background:var(--surface-0, var(--bg));border:1px solid var(--line);border-radius:4px;color:var(--fg)}.palette-search:focus{outline:none;border-color:var(--accent, #4a9eff)}.palette-group h3{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px}.palette-group-head{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.palette-group-head:hover{color:var(--fg)}.palette-caret{font-size:9px;width:10px;display:inline-block}.palette-group-name{flex:1}.palette-count{font-size:10px;color:var(--muted);background:var(--panel-2, rgba(127, 127, 127, .15));border-radius:8px;padding:0 6px;letter-spacing:0}.palette-actions{display:flex;gap:6px;margin:6px 0}.palette-actions button{flex:1;font-size:12px;padding:5px 8px}.palette-item-wrap{position:relative;margin-bottom:6px}.palette-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:8px 10px}.palette-item-tools{position:absolute;top:4px;right:4px;display:flex;gap:2px}.palette-tool{border:none;background:#ffffffb3;color:var(--muted);padding:2px 5px;font-size:11px;border-radius:4px;opacity:0;transition:opacity .1s}.palette-item-wrap:hover .palette-tool{opacity:1}.palette-tool:hover{background:var(--accent-weak);color:var(--accent)}.palette-tool.danger:hover{background:#fee2e2;color:var(--error)}.inspector-head-tools{display:flex;gap:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;display:grid;place-items:center;z-index:50}.modal{background:var(--panel);border-radius:10px;box-shadow:0 10px 40px #00000040;width:min(640px,92vw);max-height:88vh;overflow-y:auto;padding:16px 18px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:16px}.modal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:10px}.modal-foot>div{display:flex;gap:8px}.editor-grid{display:flex;gap:12px;margin:12px 0}.editor-grid label,.eq-row,.var-row{display:flex;gap:8px;align-items:center}.editor-grid label{flex-direction:column;align-items:flex-start;font-size:11px;color:var(--muted);gap:3px}.editor-grid input,.var-row input,.var-row select,.eq-input{padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}.editor-section{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.math-ref{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}.math-ref-summary{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.math-ref-summary::-webkit-details-marker{display:none}.math-ref-summary:before{content:"▸ "}details[open] .math-ref-summary:before{content:"▾ "}.math-ref-body{margin-top:8px}.math-ref-ops{margin:0 0 6px;color:var(--muted);word-break:break-all}.math-ref-label{margin:8px 0 4px;color:var(--muted);font-style:italic}.math-chip-grid{display:flex;flex-wrap:wrap;gap:3px}.math-chip{font-size:11px;padding:1px 5px;background:var(--surface-1, var(--surface));border:1px solid var(--line);border-radius:3px;white-space:nowrap;cursor:default;color:var(--fg)}.editor-section-head{display:flex;justify-content:space-between;align-items:center}.editor-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}.var-row{margin-bottom:6px}.var-id{width:120px}.var-kind{width:104px;flex:0 0 auto}.var-start{width:90px;flex:0 0 auto}.var-dims{width:70px;flex:0 0 auto;font-family:var(--mono, monospace)}.var-del{width:26px;flex:0 0 auto;text-align:center;padding-left:0;padding-right:0}.var-head{text-transform:uppercase;letter-spacing:.04em;padding:0 2px 2px}.var-head .var-dims{font-family:inherit}.eq-row{margin-bottom:6px;flex-wrap:wrap}.eq-label{min-width:80px;text-align:right;font-size:12px}.eq-input{flex:1;min-width:200px}.eq-input.invalid{border-color:var(--error);background:#fef2f2}.eq-error{color:var(--error);flex-basis:100%;padding-left:88px}.import-text{width:100%;height:280px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:6px;font-size:12px;resize:vertical}.palette-item-name{font-weight:600;font-size:13px}.palette-item-desc{font-size:11px;color:var(--muted);line-height:1.3}.canvas-wrap{position:relative;min-width:0}.breadcrumb{position:absolute;top:10px;left:12px;z-index:5;display:flex;align-items:center;gap:2px;background:var(--overlay);border:1px solid var(--line);border-radius:7px;padding:3px 6px;box-shadow:var(--shadow);font-size:12px}.crumb{border:none;background:transparent;color:var(--accent);padding:2px 6px;font-weight:600;border-radius:4px}.crumb:last-child{color:var(--ink)}.crumb:hover{background:var(--accent-weak)}.crumb-sep{color:var(--muted)}.group-btn{position:absolute;top:10px;right:12px;z-index:5;font-size:12px;padding:6px 12px}.block.subsystem{border-style:double;border-width:3px}.subsystem-mark{color:var(--accent)}.inspector{background:var(--panel);border-left:1px solid var(--line);padding:12px;overflow-y:auto}.inspector h2{margin:0;font-size:15px}.inspector-head{display:flex;justify-content:space-between;align-items:center}.inspector-section{margin-top:16px}.inspector-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px;border-bottom:1px solid var(--line);padding-bottom:4px}.param-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.param-name{font-size:13px}.param-unit{color:var(--muted);font-size:11px}.param-row input{width:96px;padding:4px 6px;border:1px solid var(--line);border-radius:5px;text-align:right}.param-row input.overridden{border-color:var(--accent);background:var(--accent-weak)}.vector-param-row{flex-direction:column;align-items:flex-start}.vector-inputs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.vector-component{display:flex;flex-direction:column;align-items:center;gap:2px}.vector-component input{width:60px;padding:3px 4px;border:1px solid var(--line);border-radius:4px;text-align:right;font-size:12px}.port-row{display:flex;gap:8px;margin-bottom:4px}.port-kind{font-size:11px;color:var(--muted);min-width:52px}.issue-list{list-style:none;margin:0;padding:0}.issue{font-size:12px;padding:5px 0;border-bottom:1px solid var(--line)}.issue.error .issue-code{color:var(--error)}.issue.warning .issue-code{color:var(--warn)}.issue-code{font-family:ui-monospace,monospace;font-size:11px;font-weight:600}.issue-hint{color:var(--muted)}.block{position:relative;box-sizing:border-box;width:160px;background:var(--panel);border:1.5px solid var(--line);border-radius:8px;box-shadow:var(--shadow);font-size:12px}.block.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.block.has-error{border-color:var(--error)}.block.has-warning{border-color:var(--warn)}.block-title{display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;font-weight:600;border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:7px 7px 0 0}.block-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-badge{width:16px;height:16px;border-radius:50%;color:#fff;font-weight:700;font-size:11px;display:grid;place-items:center;flex:0 0 auto}.block-badge.err{background:var(--error)}.block-badge.warn{background:var(--warn)}.port-label{position:absolute;font-size:10px;color:var(--muted);line-height:18px;pointer-events:none}.port-label.left{left:10px}.port-label.right{right:10px}.port-label.bottom{bottom:1px;font-size:9px}.react-flow__handle{width:9px;height:9px;background:var(--accent);border:2px solid var(--panel)}.react-flow__handle.physical-port{border-radius:2px;width:10px;height:10px}.react-flow__handle.physical-port.potential{background:#e0a13c}.react-flow__handle.physical-port.flow{background:#3ca0e0}.react-flow__handle.physical-port.pin{background:#2bb39a}.capability{position:absolute;left:12px;bottom:12px;right:12px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:8px 12px;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);pointer-events:none}.cap-section{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cap-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.badge{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}.badge.trait{background:var(--info-bg);color:var(--info-fg)}.badge.solver.ready{background:var(--ok-bg);color:var(--ok-fg)}.badge.solver.via{background:var(--warn-bg);color:var(--warn-fg)}.via-mark{margin-left:3px}.badge.solver.blocked{background:var(--neutral-bg);color:var(--neutral-fg);text-decoration:line-through}.credits-dot{margin-left:3px;font-weight:700}.capability{pointer-events:auto}.cap-solvers{max-width:60vw}.solver-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--neutral-bg);color:var(--neutral-fg);cursor:default}.solver-chip .solver-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.solver-chip.ready{background:var(--ok-bg);color:var(--ok-fg)}.solver-chip.via{background:var(--warn-bg);color:var(--warn-fg)}.solver-chip.blocked{background:var(--neutral-bg);color:var(--neutral-fg)}.solver-chip .solver-status{font-weight:500;opacity:.85}.diagnostics{flex:0 0 var(--diag-h, 168px);background:var(--panel);border-top:1px solid var(--line);overflow-y:auto;padding:8px 12px}.diag-summary{display:flex;gap:14px;margin-bottom:6px;font-size:12px;font-weight:600}.count.err{color:var(--error)}.count.warn{color:var(--warn)}.count.ok{color:var(--muted)}.diag-list{list-style:none;margin:0;padding:0}.diag{display:flex;align-items:baseline;gap:8px;padding:4px 6px;font-size:12px;border-radius:5px}.diag.clickable{cursor:pointer}.diag.clickable:hover{background:var(--bg)}.dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.dot.error{background:var(--error)}.dot.warning{background:var(--warn)}.dot.info{background:var(--muted)}.diag-code{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted)}.diag-msg{flex:1}.diag-hint{color:var(--muted)}.diag-path{font-size:10px;color:var(--muted)}.menubar{display:flex;align-items:center;gap:2px}.menu-root{position:relative}.menu-trigger{border:1px solid transparent;background:transparent;color:var(--fg);font-weight:500;padding:5px 10px;border-radius:6px;line-height:1}.menu-trigger:hover,.menu-trigger.open{background:var(--surface-2);border-color:var(--line)}.sim-results-actions .menu-trigger{font-size:12px;padding:4px 9px;border-color:var(--line);background:var(--panel);color:var(--muted)}.sim-results-actions .menu-trigger:hover,.sim-results-actions .menu-trigger.open{color:var(--fg)}.menu-dropdown{position:absolute;top:calc(100% + 4px);min-width:200px;max-width:min(320px,80vw);max-height:70vh;overflow-y:auto;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 28px #00000038;z-index:60}.menu-left{left:0}.menu-right{right:0}.menu-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;color:var(--fg);text-align:left;padding:7px 9px;border-radius:6px;font-size:13px;line-height:1.2}.menu-item:hover:not(:disabled){background:var(--accent-weak);color:var(--accent);filter:none}.menu-item:disabled{color:var(--muted);cursor:default;opacity:.7}.menu-item.danger{color:var(--error)}.menu-item.danger:hover:not(:disabled){background:var(--error-bg);color:var(--error-fg)}.menu-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-check{width:14px;flex:0 0 auto;color:var(--accent);font-size:12px}.menu-shortcut{flex:0 0 auto;color:var(--muted);font-size:11px;font-family:ui-monospace,monospace}.menu-sep{height:1px;background:var(--line);margin:5px 4px}.menu-label{padding:6px 9px 2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.toolbar{position:relative;z-index:30}.about-modal{width:min(460px,92vw)}.about-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:14px 0 0;font-size:13px}.about-dl dt{color:var(--muted)}.about-dl dd{margin:0;font-family:ui-monospace,monospace}.sim-stiffness-check{display:flex;flex-direction:column;gap:6px;margin-top:4px}.sim-stiffness-callout{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid transparent}.sim-stiffness-callout.warn{background:#fef3c7;border-color:#f59e0b;color:#92400e}.sim-stiffness-callout.ok{background:#ecfdf5;border-color:#10b981;color:#065f46}.sim-workspace-main.no-sidebar{grid-template-columns:minmax(0,1fr)}.result-header{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}.result-header-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.result-header-name{margin:0;font-size:15px;font-weight:600}.result-kind-tag{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--accent-weak);color:var(--accent);letter-spacing:.02em}.result-kind-tag.study{background:var(--line);color:var(--muted)}.result-header-chips{display:flex;gap:6px;flex-wrap:wrap}.result-chip{display:inline-flex;align-items:baseline;gap:5px;padding:2px 8px;border-radius:7px;border:1px solid var(--line);background:var(--panel);font-size:12px}.result-chip-label{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.result-chip-value{font-variant-numeric:tabular-nums}.result-chip.ok{border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}.result-chip.ok .result-chip-value{color:var(--ok);font-weight:600}.result-chip.warn{border-color:color-mix(in srgb,var(--warn) 55%,var(--line))}.result-chip.warn .result-chip-value{color:var(--warn);font-weight:600}.sim-plot-stage>.result-stack,.sim-plot-stage>.result-split{flex:1 1 auto;min-height:0}.result-stack{display:flex;flex-direction:column;gap:10px;min-height:0}.result-stack.split{display:grid;grid-template-rows:minmax(0,1fr) 6px var(--sweep-grid-h, minmax(0, 1fr));gap:0}.result-stack.split>*{min-height:0}.result-grid-pane{min-height:0;display:flex}.result-split{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-height:0}.result-split.split{grid-template-columns:minmax(0,1fr) 6px var(--mc-split-w, minmax(0, 1fr));gap:0}.result-grid-details{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel)}.result-grid-details>summary{cursor:pointer;color:var(--muted);font-size:12px;margin-bottom:6px}.result-grid-details[open]{overflow:hidden}.result-grid-details pre{overflow:auto;margin:0}.data-inspector{display:flex;flex-direction:column;flex:1 1 auto;min-height:12rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.data-inspector-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}.data-inspector-bar .cap-label{flex:0 0 auto}.data-inspector-search{flex:1 1 auto;min-width:80px;padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);font-size:12px}.data-inspector-count{flex:0 0 auto;font-variant-numeric:tabular-nums}.data-inspector-selactions,.data-inspector-export{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.data-inspector-grid{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.data-inspector-headrow{display:grid;align-items:stretch;border-bottom:1px solid var(--line);background:var(--bg);flex:0 0 auto}.data-inspector-th{position:relative;display:flex;align-items:center;gap:4px;padding:5px 8px;border:none;background:transparent;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;text-align:left;min-width:0}.col-resize-grip{position:absolute;top:0;bottom:0;right:-3px;width:7px;cursor:col-resize;z-index:2}.col-resize-grip:after{content:"";position:absolute;top:3px;bottom:3px;right:3px;width:1px;background:transparent;transition:background .12s ease}.col-resize-grip:hover:after{background:var(--accent);width:2px}.data-inspector-th.num{justify-content:flex-end;text-align:right}.data-inspector-th.sorted{color:var(--accent)}.data-inspector-th-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-inspector-th-unit{font-size:9px}.data-inspector-sortcaret{font-size:8px}.data-inspector-scroll{flex:1 1 auto;min-height:0;overflow:auto}.data-inspector-empty{padding:16px}.data-inspector-row{display:grid;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent);cursor:default}.data-inspector-row:hover{background:var(--bg)}.data-inspector-row.selected{background:color-mix(in srgb,var(--accent-weak) 60%,transparent)}.data-inspector-row.focused{box-shadow:inset 2px 0 0 var(--accent)}.data-inspector-td{padding:0 8px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px;min-width:0}.data-inspector-td.num{justify-content:flex-end;font-variant-numeric:tabular-nums}.data-inspector-toggle-cell{padding:0 4px;justify-content:center}.data-inspector-toggle-cell .plot-signal-toggle{width:28px;height:16px}.data-inspector-toggle-cell .plot-signal-toggle-thumb{width:12px;height:12px;top:2px;left:2px}.data-inspector-toggle-cell .plot-signal-toggle.on .plot-signal-toggle-thumb{transform:translate(12px)}.data-inspector-dot{width:9px;height:9px;border-radius:2px;flex:0 0 auto}.mc-histogram-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel);min-height:0}.mc-histogram{position:relative;display:flex;align-items:flex-end;gap:2px;height:180px;flex:1 1 auto}.mc-histogram-bar{flex:1 1 0;min-height:1px;background:var(--accent);border-radius:2px 2px 0 0;opacity:.85}.mc-histogram-mean{position:absolute;top:0;bottom:0;width:2px;background:var(--warn)}.mc-histogram-axis{display:flex;justify-content:space-between}.resize-handle{position:relative;z-index:3;align-self:stretch;touch-action:none}.resize-handle.col{cursor:col-resize}.resize-handle.col:before{content:"";position:absolute;inset:0 auto 0 50%;width:1px;transform:translate(-50%);background:var(--line);transition:background .12s ease,width .12s ease}.resize-handle.col:hover:before,.resize-handle.col.dragging:before{width:2px;background:var(--accent)}.resize-handle.row{cursor:row-resize;height:6px;flex:0 0 6px;width:100%}.resize-handle.row:before{content:"";position:absolute;inset:50% 0 auto 0;height:1px;transform:translateY(-50%);background:var(--line);transition:background .12s ease,height .12s ease}.resize-handle.row:hover:before,.resize-handle.row.dragging:before{height:2px;background:var(--accent)}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg);z-index:1000}.auth-card{width:min(380px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:28px 26px;text-align:center}.auth-brand{font-size:24px;font-weight:700;letter-spacing:.2px}.auth-sub{color:var(--muted);margin:4px 0 20px}.auth-google{width:100%;padding:10px 14px;border:1px solid var(--field-border);border-radius:8px;background:var(--field);color:var(--fg);font-weight:600;cursor:pointer}.auth-google:hover:not(:disabled){border-color:var(--accent)}.auth-google:disabled{opacity:.6;cursor:default}.auth-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:16px 0}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.auth-email{display:flex;flex-direction:column;gap:8px}.auth-email input{padding:9px 11px;border:1px solid var(--field-border);border-radius:8px;background:var(--field);color:var(--fg)}.auth-sent{color:var(--ok-fg);background:var(--ok-bg);border-radius:8px;padding:10px;font-size:14px}.auth-legal{margin-top:18px;color:var(--muted);font-size:11px;line-height:1.5}.consent-bar{position:fixed;left:50%;bottom:16px;transform:translate(-50%);width:min(560px,94vw);display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:12px 16px;font-size:13px;z-index:1001}.consent-actions{display:flex;gap:8px;margin-left:auto}.account-menu{position:relative;display:flex;align-items:center;gap:8px}.credit-pill{font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-weak);border-radius:999px;padding:3px 9px}.account-btn{display:flex;align-items:center;gap:7px;border:1px solid var(--field-border);border-radius:999px;background:var(--field);color:var(--fg);padding:3px 10px 3px 3px;cursor:pointer;max-width:200px}.account-avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:700}.account-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-panel{position:absolute;top:calc(100% + 6px);right:0;width:240px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:10px;z-index:1002}.account-head{padding:4px 6px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}.account-name-lg{font-weight:600}.account-section{padding:2px 6px;text-transform:uppercase;letter-spacing:.4px}.account-orgs{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.account-org,.account-signout{text-align:left;border:none;background:none;color:var(--fg);border-radius:6px;padding:7px 8px;cursor:pointer;font-size:13px}.account-org:hover,.account-signout:hover{background:var(--neutral-bg)}.account-org.active{background:var(--accent-weak);color:var(--accent);font-weight:600}.account-signout{width:100%;border-top:1px solid var(--line);margin-top:4px;color:var(--error)}.plan-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:2px 8px;background:var(--neutral-bg);color:var(--muted)}.plan-badge.plan-pro{background:var(--accent-weak);color:var(--accent)}.plan-badge.plan-enterprise{background:var(--warn-bg);color:var(--warn-fg)}.account-billing{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}.plot-signal-groups{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 6px}.plot-signal-groups .plot-pill{font-size:11px}.control-preview{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;display:flex;flex-direction:column;gap:6px}.control-preview-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.control-preview-plot{width:100%}.control-preview-stats{color:var(--muted)}.verify-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.verify-model-tests{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0 16px;display:flex;flex-direction:column;gap:10px}.verify-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.verify-empty-state{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:8px 0;max-width:560px}.verify-gallery-section{margin-top:12px}.verify-check-plot{margin:6px 0;width:100%;max-width:640px}.verify-failure-plots{display:block;margin-top:2px}.verify-run-progress{margin:6px 0}.verify-history-list{list-style:none;margin:0;padding:0 0 8px;display:flex;flex-direction:column;gap:2px}.verify-history-list li.pass:before{content:"✓ ";color:var(--ok-fg, #2e9e5b)}.verify-history-list li.fail:before{content:"✗ ";color:var(--error-fg, #d64545)}.account-worker{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}.worker-secret{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px dashed var(--line);border-radius:6px}.worker-secret code{word-break:break-all;-webkit-user-select:all;user-select:all}.worker-token-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.worker-token-list li{display:flex;align-items:center;justify-content:space-between;gap:6px}.trial-note{color:var(--accent);font-weight:600}.bill-btn{text-align:left;border:1px solid var(--field-border);background:var(--field);color:var(--fg);border-radius:6px;padding:7px 9px;cursor:pointer;font-size:13px;text-decoration:none;display:block}.bill-btn:hover{border-color:var(--accent)}.bill-btn:disabled{opacity:.6;cursor:default}.bill-btn.contact{color:var(--muted)}.admin-modal{width:min(680px,95vw);max-height:88vh;overflow:auto}.admin-plan-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 16px}.admin-tab{border:1px solid var(--field-border);background:var(--field);color:var(--fg);border-radius:6px;padding:5px 12px;cursor:pointer}.admin-tab.active{background:var(--accent-weak);color:var(--accent);border-color:var(--accent);font-weight:600}.admin-addplan{display:inline-flex;gap:6px;margin-left:auto}.admin-addplan input{width:110px;padding:4px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--field);color:var(--fg)}.admin-flags{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-row input[type=number]{width:120px;padding:5px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--field);color:var(--fg)}.admin-delete{align-self:flex-start;color:var(--error);border-color:var(--error)}.admin-section-title{font-weight:600;margin:14px 0 8px}.admin-kinds{width:100%;border-collapse:collapse}.admin-kinds th,.admin-kinds td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-kinds input[type=number]{width:72px;padding:4px 6px;border:1px solid var(--field-border);border-radius:6px;background:var(--field);color:var(--fg)}.admin-kinds select{padding:4px 6px;border:1px solid var(--field-border);border-radius:6px;background:var(--field);color:var(--fg);text-transform:capitalize}.admin-foot{margin-top:12px}.config-editor{flex:1;overflow-y:auto;background:var(--bg);padding:20px 24px}.config-editor-inner{max-width:720px;display:flex;flex-direction:column;gap:12px}.config-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.config-editor-title{display:flex;align-items:center;gap:8px}.config-editor-title h2,.verify-title,.control-head h2{font-size:1.05rem;font-weight:600;margin:0}.config-dirty{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--warn);background:var(--warn-bg);padding:1px 6px;border-radius:10px}.config-editor-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:.8rem}.config-editor-divider{width:1px;height:14px;background:var(--line);margin:0 4px}.config-tree{display:flex;flex-direction:column;gap:3px}.config-tree-row{display:flex;align-items:center;gap:6px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 10px 6px calc(10px + var(--depth, 0) * 20px);cursor:pointer;text-align:left;font-size:.875rem;color:var(--fg);transition:background .1s}.config-tree-row:hover:not(:disabled){background:var(--surface-2)}.config-tree-row:disabled{cursor:default}.config-tree-chevron{font-size:.55rem;width:10px;flex-shrink:0;color:var(--muted)}.config-tree-label{font-weight:500}.config-tree-id{font-size:.72rem;opacity:.4;margin-left:4px}.config-tree-summary{margin-left:auto;font-size:.75rem;white-space:nowrap}.config-tree-body{padding:4px 8px 6px calc(12px + var(--depth, 0) * 20px);background:var(--panel);border:1px solid var(--line);border-top:none;border-radius:0 0 6px 6px;margin-bottom:2px}.config-section{padding:4px 0}.config-section+.config-section{border-top:1px solid var(--line);padding-top:6px}.config-section-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:2px 6px 4px}.config-tree-children{padding-top:6px;display:flex;flex-direction:column;gap:3px}.config-row{display:grid;grid-template-columns:1fr 118px;align-items:center;gap:10px;padding:3px 6px;border-radius:4px;font-size:.83rem}.config-row:hover{background:var(--surface-2)}.config-row-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-row-unit{color:var(--muted);font-size:.78rem}.config-row-dims{font-size:.75rem;margin-left:4px}.config-row input[type=number]{width:100%;padding:2px 6px;font-size:.83rem;text-align:right}.config-row-vector{grid-template-columns:1fr;gap:4px}.config-vector-inputs{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:2px}.config-vector-inputs input{width:76px;padding:2px 5px;font-size:.8rem;text-align:right}.verify-panel{flex:1;overflow-y:auto;padding:20px 24px;display:flex;justify-content:center}.verify-inner{width:100%;max-width:980px;display:flex;flex-direction:column;gap:16px}.verify-dropzone{border:2px dashed var(--border);border-radius:8px;padding:28px 20px;cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.verify-dropzone:hover{border-color:var(--accent);background:var(--surface-1)}.verify-loaded{display:flex;flex-direction:column;gap:4px;align-items:center}.verify-filename{font-size:.85rem;color:var(--accent)}.verify-tc-title{font-weight:600}.verify-tc-desc{font-size:.85rem}.verify-empty{display:flex;flex-direction:column;gap:6px}.verify-error{color:var(--danger, #e05050);font-size:.85rem;padding:8px 12px;background:color-mix(in srgb,var(--danger, #e05050) 10%,transparent);border-radius:4px}.verify-run-btn{align-self:flex-start;padding:7px 20px;background:var(--accent);color:#fff;border:none;border-radius:5px;font-size:.9rem;cursor:pointer}.verify-run-btn:disabled{opacity:.55;cursor:default}.verify-report{display:flex;flex-direction:column;gap:12px}.verify-summary{font-weight:700;font-size:1rem;padding:10px 14px;border-radius:5px}.verify-summary.pass{background:color-mix(in srgb,var(--success, #3cb371) 15%,transparent);color:var(--success, #3cb371)}.verify-summary.fail{background:color-mix(in srgb,var(--danger, #e05050) 15%,transparent);color:var(--danger, #e05050)}.verify-run-error{font-size:.85rem;color:var(--danger, #e05050)}.verify-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.verify-check{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:4px;font-size:.875rem}.verify-check.pass{background:color-mix(in srgb,var(--success, #3cb371) 8%,transparent)}.verify-check.fail{background:color-mix(in srgb,var(--danger, #e05050) 8%,transparent)}.verify-check-mark{font-size:.9rem;flex-shrink:0}.verify-check.pass .verify-check-mark{color:var(--success, #3cb371)}.verify-check.fail .verify-check-mark{color:var(--danger, #e05050)}.verify-check-msg{flex:1}.verify-check-nums{white-space:nowrap}.results-analysis{margin-top:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.results-analysis>summary{padding:6px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;list-style:none}.results-analysis>summary::-webkit-details-marker{display:none}.results-analysis[open]>summary:before{content:"▾"}.results-analysis:not([open])>summary:before{content:"▸"}.results-analysis-tabs{display:flex;gap:4px;padding:8px 12px 4px;border-bottom:1px solid var(--line)}.results-analysis-tab{padding:4px 12px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--muted);font-size:12px;cursor:pointer}.results-analysis-tab.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.cursor-toggle-btn{margin-left:auto;padding:2px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--muted);font-size:12px;cursor:pointer}.cursor-toggle-btn.active{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}.cursor-bar{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:8px 12px;margin-top:4px;font-size:12px}.cursor-bar-header{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.cursor-t{display:flex;align-items:center;gap:6px}.cursor-label{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.cursor-time{font-family:ui-monospace,monospace;font-size:12px}.cursor-line-a{border-color:var(--accent, #2563eb)}.cursor-line-b{border-color:var(--warn, #d97706)}.cursor-clear{border:none;background:none;cursor:pointer;color:var(--muted);padding:0 2px;font-size:14px;line-height:1}.cursor-clear:hover{color:var(--error)}.cursor-values-grid{display:grid;grid-template-columns:minmax(100px,1.5fr) 1fr 1fr 1fr;gap:2px 8px;font-size:12px}.cursor-values-header{display:contents}.cursor-values-header>span{font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;padding-bottom:2px}.cursor-row{display:contents}.cursor-signal-name{border-left:3px solid var(--accent);padding-left:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cursor-val{text-align:right;white-space:nowrap}.verify-cursor-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed;pointer-events:none;z-index:10}.signal-measurements{display:flex;flex-wrap:wrap;gap:12px;padding:10px 12px}.signal-measurements-empty{padding:10px 12px}.signal-measurement-card{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 12px;min-width:200px;flex:1 1 200px}.signal-measurement-title{display:flex;align-items:center;gap:6px;border-left:3px solid var(--accent);padding-left:8px;margin-bottom:8px}.signal-measurement-name{font-weight:600;font-size:13px}.signal-measurement-unit{color:var(--muted)}.signal-stat-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.78rem}.signal-stat-label{color:var(--muted);white-space:nowrap}.signal-stat-value{text-align:right;font-size:.78rem}.spectrum-plot-wrap{padding:8px 12px}.spectrum-plot-empty{padding:12px;text-align:center}.pole-zero-plot{padding:4px 12px}.matrix-display{display:inline-block}.matrix-display-label{font-weight:700;font-size:13px;margin-bottom:4px}.matrix-display-scroll{overflow-x:auto}.matrix-display-table{border-collapse:collapse;font-size:.78rem}.matrix-display-corner{background:transparent}.matrix-display-colhead{padding:2px 6px;text-align:center;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}.matrix-display-rowhead{padding:2px 8px 2px 0;text-align:right;color:var(--muted);font-weight:600;border-right:1px solid var(--line);white-space:nowrap}.matrix-display-cell{padding:2px 6px;text-align:right;font-family:ui-monospace,monospace;border:1px solid var(--line)}.matrices-grid{display:flex;flex-wrap:wrap;gap:16px;padding:8px 12px}.timeseries-result-view{display:flex;flex-direction:column;gap:0}.timeseries-plot-area{flex:1 1 auto}.sim-plot-grid{display:grid;flex:1 1 auto;min-height:0;gap:3px}.sim-plot-grid.layout-1{grid-template-columns:1fr;grid-template-rows:1fr}.sim-plot-grid.layout-2h{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.sim-plot-grid.layout-2v{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.sim-plot-grid.layout-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.sim-plot-cell{min-height:0;min-width:0;display:flex;flex-direction:column;position:relative}.sim-plot-cell.focused{outline:1.5px solid var(--accent)}.sim-plot-cell-title{position:absolute;top:4px;left:8px;font-size:.72rem;color:var(--muted);pointer-events:none;z-index:1}.sim-plot-cell>.plot-wrap{flex:1 1 auto;min-height:0}.sim-plot-pane-analysis{flex:0 0 auto;max-height:440px;overflow-y:auto;border-top:1px solid var(--line)}.plot-layout-picker{display:flex;gap:2px;align-items:center;border-left:1px solid var(--line);padding-left:8px;margin-left:4px}.plot-layout-btn{padding:3px 5px;border:1px solid transparent;border-radius:3px;background:none;color:var(--muted);cursor:pointer;display:flex;align-items:center}.plot-layout-btn:hover{background:var(--surface-1);color:var(--fg)}.plot-layout-btn.active{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}.plot-cell-picker{display:flex;gap:2px;padding:4px 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px}.plot-cell-tab{padding:2px 8px;border-radius:3px;border:1px solid var(--line);background:none;font-size:.78rem;cursor:pointer;color:var(--muted)}.plot-cell-tab:hover{background:var(--surface-1);color:var(--fg)}.plot-cell-tab.active{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}.phaseplane-view{padding:8px 12px}.phaseplane-plot{height:320px;display:flex;flex-direction:column}.phaseplane-plot>.plot-wrap{flex:1 1 auto;min-height:0}.phaseplane-selectors{display:flex;gap:16px;margin-bottom:8px;font-size:12px}.phaseplane-selectors label{display:flex;align-items:center;gap:6px}.verify-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:10px 0}.verify-gallery-card{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px 14px;text-align:left;cursor:pointer;transition:border-color .1s;display:flex;flex-direction:column;gap:4px}.verify-gallery-card:hover{border-color:var(--accent)}.verify-gallery-card.active{border-color:var(--accent);background:var(--accent-weak)}.verify-gallery-card-title{font-weight:600;font-size:13px}.verify-gallery-card-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.verify-builder{padding:10px 0;display:flex;flex-direction:column;gap:12px}.verify-builder-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.verify-builder-fields label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted)}.verify-builder-fields input,.verify-builder-fields select{font-size:13px;padding:4px 6px;border:1px solid var(--field-border);border-radius:4px;background:var(--field);color:var(--fg)}.verify-builder-checks-section{display:flex;flex-direction:column;gap:6px}.verify-builder-checks-label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.verify-builder-checks{display:flex;flex-direction:column;gap:4px}.verify-check-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.verify-check-row select,.verify-check-row input{font-size:12px;padding:3px 6px;border:1px solid var(--field-border);border-radius:4px;background:var(--field);color:var(--fg)}.verify-check-row select{min-width:100px}.verify-check-row input{width:90px}.verify-check-row input[placeholder=signal]{width:110px}.verify-check-remove{border:none;background:none;cursor:pointer;color:var(--muted);font-size:16px;padding:0 4px;line-height:1}.verify-check-remove:hover{color:var(--error)}.worker-pair{display:flex;flex-direction:column;gap:6px}.worker-pair-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px}.worker-download-btn{display:inline-block;text-align:center;text-decoration:none;align-self:flex-start}.worker-pair-row{display:flex;gap:6px;align-items:center}.worker-pair-row input{flex:1 1 auto;min-width:0;font-family:var(--mono, monospace);font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--field);color:var(--fg)}.sim-derived-outputs{display:flex;flex-direction:column;gap:6px}.sim-derived-output-row{display:flex;flex-direction:column;gap:2px}.sim-derived-output-line{display:flex;align-items:center;gap:6px}.sim-derived-output-line input{font-size:12px;padding:3px 6px;border:1px solid var(--field-border);border-radius:4px;background:var(--field);color:var(--fg);font-family:var(--mono, monospace)}.sim-derived-output-line .icon-btn{border:none;background:none;cursor:pointer;color:var(--muted);font-size:16px;padding:0 4px;line-height:1}.sim-derived-output-line .icon-btn:hover{color:var(--error)}.verify-add-check-btn{align-self:flex-start;padding:4px 12px;border:1px dashed var(--line);border-radius:4px;background:transparent;color:var(--accent);font-size:12px;cursor:pointer;margin-top:4px}.verify-add-check-btn:hover{border-color:var(--accent);background:var(--accent-weak)}.verify-builder-actions{display:flex;gap:8px}.verify-progress-bar-wrap{display:flex;align-items:center;gap:10px;margin-bottom:4px}.verify-progress-bar{flex:1;height:8px;border-radius:4px;background:var(--error-bg);position:relative;overflow:hidden}.verify-progress-bar:after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--pass-rate, 0%);background:var(--ok, #16a34a);border-radius:4px;transition:width .3s}.verify-progress-label{white-space:nowrap}.verify-section-title{font-weight:600;font-size:13px;cursor:pointer;padding:6px 0;list-style:none;-webkit-user-select:none;user-select:none}.verify-section-title::-webkit-details-marker{display:none}.verify-suite-bar{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.verify-suite-summary{display:flex;flex-direction:column;gap:6px}.verify-summary.inline{display:inline-block;padding:2px 10px;border-radius:6px;font-size:12px;font-weight:600}.verify-suite-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:12px}.verify-suite-list li.pass{color:var(--ok, #16a34a)}.verify-suite-list li.fail{color:var(--danger, #dc2626)}.verify-criteria-panel{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-top:10px;background:var(--surface-0, var(--bg))}.verify-criteria-title{font-weight:600;font-size:13px;margin-bottom:4px}.verify-criteria-desc{margin-bottom:8px}.verify-criteria-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.verify-criteria-item{font-size:12px;line-height:1.5}.verify-criteria-badge{display:inline-block;background:var(--surface-1, #e5e7eb);border-radius:4px;padding:0 5px;font-size:10px;font-weight:600;margin-right:6px;text-transform:uppercase;letter-spacing:.03em}.verify-my-suites{display:flex;flex-direction:column;gap:12px;padding:8px 0 4px}.verify-new-suite-row{display:flex;gap:8px;align-items:center}.verify-new-suite-input{flex:1;padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font-size:13px}.verify-user-suite{border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.verify-user-suite-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.verify-suite-name{font-weight:600;font-size:13px;cursor:pointer;border:none;background:none;padding:2px 4px;border-radius:4px;color:var(--ink)}.verify-suite-name:hover{background:var(--surface-1, rgba(0,0,0,.06))}.verify-suite-rename-input{font-weight:600;font-size:13px;padding:2px 6px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink)}.verify-suite-header-actions{display:flex;gap:6px;margin-left:auto}.verify-user-cases{display:flex;flex-direction:column;gap:4px}.verify-user-case-row{border-radius:6px;border:1px solid var(--line);padding:6px 10px}.verify-user-case-info{font-size:12px;line-height:1.6}.verify-user-case-title{font-weight:500}.verify-user-case-actions{display:flex;gap:6px;margin-top:4px}.verify-add-case-btn{margin-top:4px;padding:5px 10px;border:1px dashed var(--line);background:transparent;border-radius:6px;color:var(--muted);font-size:12px;cursor:pointer;width:100%;text-align:left;transition:background .1s,color .1s}.verify-add-case-btn:hover{background:var(--surface-1, rgba(0,0,0,.04));color:var(--ink)}.verify-case-form{display:flex;flex-direction:column;gap:10px;padding:8px 0}.verify-case-form-fields{display:flex;flex-wrap:wrap;gap:10px}.verify-case-form-fields label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.verify-case-form-fields input,.verify-case-form-fields select{padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink);font-size:13px;min-width:120px}.verify-case-form-actions{display:flex;gap:8px}.verify-signal-input{width:110px}button.ghost.danger{color:var(--danger, #dc2626)}button.ghost.danger:hover{background:#dc262614}.config-save-btn{margin-left:auto}.telemetry-compare{display:flex;flex-direction:column;gap:10px;padding:6px 0 12px}.verify-section-hint{margin:2px 0 8px}.telemetry-file-label{display:flex;flex-direction:column;gap:6px;font-size:13px;cursor:pointer}.telemetry-loaded{padding:2px 0}.telemetry-run-config{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.telemetry-run-config label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.telemetry-run-config input,.telemetry-run-config select{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font-size:13px;width:90px}.telemetry-metrics{width:100%;border-collapse:collapse;font-size:12px}.telemetry-metrics th,.telemetry-metrics td{padding:5px 8px;text-align:right;border-bottom:1px solid var(--line)}.telemetry-metrics th:first-child,.telemetry-metrics td:first-child{text-align:left}.telemetry-metrics tbody tr.pass .telemetry-verdict{color:var(--ok, #16a34a);font-weight:600}.telemetry-metrics tbody tr.fail .telemetry-verdict{color:var(--danger, #dc2626);font-weight:600}.verify-source-label{display:block;margin-bottom:4px}.control-panel{max-width:920px}.control-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.control-head h2{margin:0 0 4px}.control-head p{max-width:60ch}.control-empty{padding:24px 0}.control-law-list{display:flex;flex-direction:column;gap:14px}.control-law-card{border:1px solid var(--border);border-radius:8px;background:var(--surface-1);padding:14px 16px;display:flex;flex-direction:column;gap:12px}.control-law-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.control-law-title{align-items:center;justify-content:space-between}.control-law-name{font-weight:600;font-size:.95rem;flex:1;min-width:160px;background:transparent;border:1px solid transparent;border-radius:4px;padding:4px 6px}.control-law-name:hover,.control-law-name:focus{border-color:var(--border);background:var(--bg)}.control-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:150px}.control-field-narrow{flex:0 0 92px;min-width:92px}.control-field>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.control-field input,.control-field select{width:100%}.control-seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.control-seg-btn{border:none;background:var(--surface-1);color:var(--text);padding:6px 12px;cursor:pointer;font-size:.82rem;border-right:1px solid var(--border)}.control-seg-btn:last-child{border-right:none}.control-seg-btn.active{background:var(--accent);color:var(--accent-contrast, #fff)}.control-mode-hint{flex:2;min-width:200px;align-self:center;margin:0}.control-field-wide{flex:3;min-width:280px}.control-expr-input{position:relative}.control-expr-input input.input-error{border-color:var(--danger, #d33)}.control-expr-suggest{position:absolute;top:calc(100% + 2px);left:0;z-index:30;margin:0;padding:4px;list-style:none;background:var(--surface-1);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 18px #00000040;min-width:140px}.control-expr-suggest button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:5px 10px;font-family:var(--mono, monospace);font-size:.85rem;cursor:pointer;border-radius:4px}.control-expr-suggest button:hover{background:var(--accent-weak)}.control-expr-taps{align-items:center;flex-wrap:wrap;gap:6px}.control-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-1);border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:.8rem}.control-chip>button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:.9rem;line-height:1}.control-chip>button:hover{color:var(--danger, #d33)}.control-chip-gain{width:72px;padding:1px 4px;font-size:.8rem}.control-tf{align-self:center}.control-lqg-dialog{max-width:560px}.control-lqg-poles{border-top:1px solid var(--line);margin-top:8px;padding-top:6px}.sim-bound-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.sim-bound-chip button{border:1px solid var(--border);border-radius:4px;background:var(--accent-weak);color:var(--text);cursor:pointer;padding:1px 8px}.plot-style-path{flex:1;min-width:0;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;color:var(--muted)}.tree-select{position:relative;width:100%}.tree-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;cursor:pointer;text-align:left}.tree-select-caret{color:var(--muted)}.tree-select-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000004d;padding:6px}.tree-select-filter{width:100%;margin-bottom:4px}.tree-select-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.tree-select-item{padding:5px 10px;border-radius:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-select-item.active{background:var(--accent-weak)}.tree-select-item.selected{font-weight:600}.tree-select-twig{color:var(--muted)}.tree-select-empty{padding:6px 10px}.verify-suite-chevron{padding:2px 6px}.verify-collapsed-note{margin:4px 0 0 26px}.test-run-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);padding:8px 12px;margin-bottom:14px}.test-run-bar-left,.test-run-bar-right{display:flex;align-items:center;gap:8px}.test-run-bar-msgs{flex-basis:100%;margin:0}.verify-workbench{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;align-items:start}.verify-suites-col,.verify-editor-col{min-width:0}.verify-editor-col .sim-problem-editor{position:static;width:auto;max-height:none}.verify-user-case-row{display:flex;align-items:center;gap:6px}.verify-user-case-row.selected .verify-user-case-select{border-color:var(--accent)}.verify-user-case-select{flex:1;min-width:0;display:flex;align-items:center;gap:6px;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;cursor:pointer;overflow:hidden}.verify-case-chip{margin-left:auto;font-size:.7rem;font-weight:700;border-radius:4px;padding:1px 6px}.verify-case-chip.pass{background:#2ea04333;color:#3fb950}.verify-case-chip.fail{background:#f851492e;color:#f85149}.vv-panel{max-width:1100px}.vv-head-actions{display:flex;gap:8px;align-items:center}.vv-grid{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}.vv-scenario-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.vv-scenario-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;background:var(--surface-1);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;cursor:pointer;text-align:left}.vv-scenario-row.active{border-color:var(--accent)}.vv-badge{font-size:.7rem;font-weight:700;letter-spacing:.04em;border-radius:4px;padding:2px 6px}.vv-pass{background:#2ea04333;color:#3fb950}.vv-fail{background:#f851492e;color:#f85149}.vv-error{background:#d299222e;color:#d29922}.vv-verdict-banner{border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin:10px 0}.vv-verdict-banner.vv-pass{border-color:#3fb95055}.vv-verdict-banner.vv-fail{border-color:#f8514955}.vv-members{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:10px}.vv-member-row{display:flex;align-items:center;gap:8px;padding:4px 0}.vv-ledger{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.vv-ledger-list{list-style:none;margin:0;padding:0}.vv-ledger-row{display:flex;align-items:center;gap:8px;padding:3px 0}.vv-ledger-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;background:radial-gradient(1200px 600px at 70% -10%,var(--accent-weak),transparent 60%),var(--bg);color:var(--fg);z-index:1000}.landing-nav{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,6vw,80px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--line);z-index:2}.landing-brand{font-weight:800;font-size:20px;letter-spacing:.2px}.landing-nav-actions{display:flex;align-items:center;gap:18px}.landing-nav-actions a,.landing-link{color:var(--muted);font-size:14px;text-decoration:none;background:none;border:none;cursor:pointer;font:inherit}.landing-nav-actions a:hover,.landing-link:hover{color:var(--accent)}.landing-hero{max-width:860px;margin:0 auto;padding:clamp(48px,9vw,110px) clamp(20px,6vw,40px) 40px;text-align:center}.landing-eyebrow{display:inline-block;font-size:13px;font-weight:600;color:var(--accent);background:var(--accent-weak);padding:5px 12px;border-radius:999px;margin-bottom:18px}.landing-hero h1{font-size:clamp(34px,6vw,60px);line-height:1.05;margin:0 0 18px;letter-spacing:-.02em}.landing-lede{font-size:clamp(16px,2.2vw,20px);color:var(--muted);max-width:640px;margin:0 auto 28px;line-height:1.55}.landing-cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.landing-cta{padding:13px 22px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:1px solid transparent}.landing-cta.primary{background:var(--accent);color:var(--on-accent)}.landing-cta.primary:hover{filter:brightness(1.07)}.landing-cta.ghost{background:transparent;border-color:var(--field-border);color:var(--fg)}.landing-cta.ghost:hover{border-color:var(--accent);color:var(--accent)}.landing-trust{margin-top:22px;font-size:13px;color:var(--muted)}.landing-section{max-width:1040px;margin:0 auto;padding:clamp(36px,6vw,64px) clamp(20px,6vw,40px)}.landing-h2{font-size:clamp(22px,3.5vw,30px);text-align:center;margin:0 0 30px;letter-spacing:-.01em}.landing-pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.landing-pillar{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}.landing-pillar h3{margin:12px 0 8px;font-size:18px}.landing-pillar p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}.landing-pill{font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-weak);padding:3px 10px;border-radius:999px}.landing-strip{background:var(--panel);border-block:1px solid var(--line);text-align:center;padding:clamp(40px,6vw,64px) clamp(20px,6vw,40px)}.landing-strip h2{font-size:clamp(20px,3vw,28px);margin:0 auto 14px;max-width:760px}.landing-strip p{color:var(--muted);max-width:680px;margin:0 auto;line-height:1.6}.landing-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.landing-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column}.landing-card-kicker{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.landing-card h3{margin:8px 0;font-size:19px}.landing-card p{margin:0 0 16px;color:var(--muted);line-height:1.55;font-size:14px;flex:1}.landing-card-cta{align-self:flex-start;background:none;border:none;color:var(--accent);font-weight:600;cursor:pointer;font:inherit;padding:0}.landing-card-cta:hover{text-decoration:underline}.landing-steps{max-width:720px;margin:0 auto;display:grid;gap:16px;padding-left:20px}.landing-steps li{color:var(--muted);line-height:1.55}.landing-steps strong{color:var(--fg)}.landing-pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;align-items:stretch}.landing-price{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 22px;text-align:center}.landing-price.featured{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.landing-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700;padding:4px 12px;border-radius:999px}.landing-price h3{margin:4px 0 10px;font-size:17px}.landing-amount{font-size:34px;font-weight:800;letter-spacing:-.02em}.landing-amount span{font-size:15px;font-weight:600;color:var(--muted)}.landing-price p{margin:12px 0 0;color:var(--muted);font-size:13.5px;line-height:1.5}.landing-pricing-note{text-align:center;color:var(--muted);margin-top:22px;font-style:italic}.landing-getstarted{max-width:1040px;margin:0 auto;padding:clamp(40px,7vw,80px) clamp(20px,6vw,40px);display:grid;grid-template-columns:1fr min(380px,92vw);gap:40px;align-items:center}@media(max-width:760px){.landing-getstarted{grid-template-columns:1fr}}.landing-getstarted-copy h2{font-size:clamp(24px,4vw,34px);margin:0 0 12px;letter-spacing:-.01em}.landing-getstarted-copy p{color:var(--muted);font-size:16px;margin:0}.landing-auth-card{margin:0;text-align:center}.landing-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:28px clamp(20px,6vw,80px);border-top:1px solid var(--line);color:var(--muted);font-size:14px}.landing-footer span:first-child{font-weight:700;color:var(--fg)}.discover{flex:1 1 auto;min-height:0;overflow-y:auto;padding:clamp(20px,4vw,44px) clamp(20px,5vw,60px) 60px}.discover-hero{max-width:720px;margin:0 auto 36px;text-align:center}.discover-eyebrow{display:inline-block;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-weak);padding:4px 11px;border-radius:999px;margin-bottom:14px}.discover-hero h1{font-size:clamp(26px,4.5vw,40px);margin:0 0 12px;letter-spacing:-.02em}.discover-hero p{color:var(--muted);line-height:1.55;margin:0}.discover-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;max-width:1100px;margin:0 auto}.discover-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;transition:border-color .15s,transform .15s}.discover-card:hover{border-color:var(--accent);transform:translateY(-2px)}.discover-card-kicker{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.discover-card h3{margin:8px 0;font-size:19px}.discover-card>p{margin:0 0 14px;color:var(--muted);line-height:1.55;font-size:14px;flex:1}.discover-tags{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px}.discover-tags li{font-size:12px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);padding:3px 9px;border-radius:999px}.discover-card-actions{display:flex;gap:10px}.discover-card-actions button{flex:1;padding:9px 12px;border-radius:8px;font-weight:600;cursor:pointer;font:inherit}.discover-card-actions .primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.discover-card-actions .primary:disabled{opacity:.5;cursor:default}.discover-card-actions .ghost{background:transparent;border:1px solid var(--field-border);color:var(--fg)}.discover-card-actions .ghost:hover{border-color:var(--accent);color:var(--accent)}.discover-foot{max-width:1100px;margin:36px auto 0;text-align:center;color:var(--muted);font-size:14px}.chart-editor{display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg)}.chart-toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.chart-toolbar .chart-title{font-weight:600;color:var(--violet, #7c3aed)}.chart-toolbar .spacer,.spacer{flex:1}.chart-body{display:grid;grid-template-columns:1fr 340px;flex:1;min-height:0}.chart-canvas{position:relative;min-width:0}.chart-inspector{border-left:1px solid var(--line);background:var(--panel);padding:12px 14px;overflow-y:auto}.chart-inspector h4{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}.fsm-mode-row{border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px}.fsm-mode-row .mode-head{display:flex;align-items:center;gap:7px}.mode-dyn{margin-top:6px;padding-left:4px}.dyn-row{display:flex;align-items:center;gap:6px;margin-top:6px}.dyn-row .kw,.dyn-row .assign{font-weight:700;color:var(--muted);font-size:12px}.dyn-row .assign{color:var(--violet, #7c3aed)}.chart-inspector .sec-head{display:flex;align-items:center;justify-content:space-between}.chart-inspector .sec-head h4{margin:14px 0 4px}.dyn-row .field.id{width:84px;flex:0 0 auto}.dyn-row .field.num{width:64px;flex:0 0 auto}.dyn-row .field.unit{width:56px;flex:0 0 auto}.infix-field{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.infix-field .field{width:100%}.field-err{color:var(--error, #dc2626);font-size:11px}.add-transition{display:flex;align-items:center;gap:6px}.resets-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin:10px 0 4px}.react-flow__node.fsm-mode{border-radius:12px;border:1.5px solid #c4b5fd;background:var(--violet-weak, #ede9fe);color:#5b21b6;font-weight:600}.react-flow__node.fsm-mode.initial{border-color:var(--violet, #7c3aed);box-shadow:0 0 0 3px var(--violet-weak, #ede9fe)}.ghost.danger{color:var(--error, #dc2626)}
