@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-0.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-1.ttf) format("truetype")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-2.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(/fonts/plex-3.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:normal;font-display:swap;src:url(/fonts/plex-4.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:normal;font-display:swap;src:url(/fonts/plex-5.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:normal;font-display:swap;src:url(/fonts/plex-6.ttf) format("truetype")}:root{--n-0: #0B0E12;--n-0-rgb: 11 14 18;--n-1: #0E1116;--n-1-rgb: 14 17 22;--n-2: #10141A;--n-2-rgb: 16 20 26;--n-3: #12161D;--n-3-rgb: 18 22 29;--n-4: #161B23;--n-4-rgb: 22 27 35;--n-5: #181E27;--n-5-rgb: 24 30 39;--n-6: #1D2530;--n-6-rgb: 29 37 48;--n-7: #222A35;--n-7-rgb: 34 42 53;--n-8: #263040;--n-8-rgb: 38 48 64;--n-9: #2C3644;--n-9-rgb: 44 54 68;--n-10: #3A4656;--n-10-rgb: 58 70 86;--n-11: #5B6879;--n-11-rgb: 91 104 121;--n-12: #8794A6;--n-12-rgb: 135 148 166;--n-13: #9AA6B6;--n-13-rgb: 154 166 182;--n-14: #C4CDD8;--n-14-rgb: 196 205 216;--n-15: #E8ECF2;--n-15-rgb: 232 236 242;--n-16: #FFFFFF;--n-16-rgb: 255 255 255;--electrical: #F5B83D;--electrical-rgb: 245 184 61;--electrical-text: #F7CB6E;--electrical-text-rgb: 247 203 110;--electrical-dim: #4A3A1C;--electrical-dim-rgb: 74 58 28;--electrical-deep: #241D10;--electrical-deep-rgb: 36 29 16;--thermal: #F2785C;--thermal-rgb: 242 120 92;--thermal-text: #F59B85;--thermal-text-rgb: 245 155 133;--thermal-dim: #4A2A22;--thermal-dim-rgb: 74 42 34;--thermal-deep: #231512;--thermal-deep-rgb: 35 21 18;--hydraulic: #4DA8F5;--hydraulic-rgb: 77 168 245;--hydraulic-text: #8CC6F8;--hydraulic-text-rgb: 140 198 248;--hydraulic-dim: #1E3A52;--hydraulic-dim-rgb: 30 58 82;--hydraulic-deep: #101D29;--hydraulic-deep-rgb: 16 29 41;--mechanical: #A98BFA;--mechanical-rgb: 169 139 250;--mechanical-text: #C4B0FC;--mechanical-text-rgb: 196 176 252;--mechanical-dim: #352C52;--mechanical-dim-rgb: 53 44 82;--mechanical-deep: #1A1629;--mechanical-deep-rgb: 26 22 41;--ok: #36D399;--ok-rgb: 54 211 153;--ok-text: #7BE7BD;--ok-text-rgb: 123 231 189;--ok-dim: #1B4535;--ok-dim-rgb: 27 69 53;--ok-deep: #0F231B;--ok-deep-rgb: 15 35 27;--warning: #FFB020;--warning-rgb: 255 176 32;--warning-text: #FFC95C;--warning-text-rgb: 255 201 92;--warning-dim: #4D3A12;--warning-dim-rgb: 77 58 18;--warning-deep: #261D09;--warning-deep-rgb: 38 29 9;--fault: #F2545B;--fault-rgb: 242 84 91;--fault-text: #F7868B;--fault-text-rgb: 247 134 139;--fault-dim: #4D2125;--fault-dim-rgb: 77 33 37;--fault-deep: #261113;--fault-deep-rgb: 38 17 19;--selection: #E8ECF2;--selection-rgb: 232 236 242;--selection-text: #FFFFFF;--selection-text-rgb: 255 255 255;--selection-dim: #3A4656;--selection-dim-rgb: 58 70 86;--selection-deep: #1D2530;--selection-deep-rgb: 29 37 48;--on-accent: #06210F;--on-accent-rgb: 6 33 15;--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 18px;--fs-xxl: 24px;--fs-hero: 40px;--r-sm: 6px;--r-md: 9px;--r-lg: 12px;--r-pill: 999px}:root{font-family:var(--sans);color:var(--n-15);background:var(--n-2);font-synthesis:none;font-weight:400;font-size:14px;--bg: var(--n-2);--panel: var(--n-5);--border: var(--n-9);--muted: var(--n-12);--green: var(--ok-text);--blue: var(--hydraulic)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit;cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover{color:var(--n-16)}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--n-13);outline-offset:3px}button svg{flex-shrink:0}input,select{outline:none;color:inherit;background:transparent;border:0;min-width:0}input:focus{border-color:var(--n-13)}input::-webkit-inner-spin-button{opacity:.25}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button,summary{-webkit-user-select:none;user-select:none}kbd{font:11px var(--mono);color:var(--n-11);border:1px solid var(--n-10);border-radius:3px;padding:1px 4px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.thermal-text{color:var(--thermal)!important;fill:var(--thermal)}.electrical-text{color:var(--electrical)!important}.lab-app{height:100dvh;min-height:680px;display:flex;flex-direction:column;overflow:hidden}.app-header{height:65px;flex-shrink:0;display:flex;align-items:center;padding:0 20px;gap:20px;background:var(--n-4);border-bottom:1px solid var(--border);position:relative;z-index:25}.brand{display:flex;align-items:center;gap:10px;min-width:203px}.brand-mark{height:33px;width:33px;display:grid;place-items:center;background:var(--n-8);color:var(--n-14);border:1px solid var(--n-10);border-radius:6px}.brand>span:last-child{font-size:17px;letter-spacing:1.1px;font-weight:650;line-height:1.15}.brand small{display:block;font-size:9px;letter-spacing:1.7px;color:var(--n-12);margin-top:4px;font-weight:450}.header-divider{height:20px;width:1px;background:var(--n-9);margin-left:-5px}.header-menu,.file-menu summary{color:var(--n-14);font-size:13px}.file-menu{position:relative}.file-menu summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none}.file-menu summary::-webkit-details-marker{display:none}.project-name{padding:4px 0;font-weight:500;white-space:nowrap;max-width:270px;overflow:hidden;text-overflow:ellipsis}.save-state{font-size:11px;white-space:nowrap;color:var(--n-12);display:flex;align-items:center;gap:4px}.import-button{font-size:13px;color:var(--n-14)}.save-button{font-size:12px;height:32px;padding:0 12px;background:var(--n-8);border:1px solid var(--n-10);border-radius:4px;color:var(--n-14);white-space:nowrap}.save-button:hover{background:var(--n-10)}.help-button{color:var(--n-12);margin-left:-7px;padding:5px}.mode-badge{border:1px solid var(--n-9);border-radius:3px;font-size:9px;letter-spacing:.8px;padding:5px 8px;margin-left:10px;color:var(--n-13)}.lab-grid{display:grid;grid-template-columns:237px minmax(0,1fr) 279px;grid-template-rows:minmax(0,1fr) 246px;flex:1;min-height:0}.library{grid-column:1;grid-row:1/3;background:var(--n-5);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.panel-heading{height:53px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;color:var(--n-13)}.panel-heading h2{font-weight:500;font-size:13px;color:var(--n-14)}.count{font:10px var(--mono);padding:2px 5px;border:1px solid var(--n-10);border-radius:3px;color:var(--n-13);min-width:22px;text-align:center}.search-field{margin:0 14px 15px;height:33px;display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--n-4);border:1px solid var(--n-9);border-radius:4px;color:var(--n-12);flex-shrink:0}.search-field input{width:100%;font-size:12px}.search-field input::placeholder{color:var(--n-12)}.search-field kbd{border:0;padding:0}.library-scroll{overflow-y:auto;flex:1;padding:0 10px}.library-category{margin-bottom:13px}.category-heading{display:flex;width:100%;height:31px;justify-content:flex-start;gap:8px;font-size:12px;padding:0 6px;font-weight:500}.category-heading>span:first-of-type{flex:1;text-align:left}.category-heading>svg:last-child{color:var(--n-11);transition:transform .2s}.category-heading .collapsed{transform:rotate(-90deg)}.electrical .category-heading{color:var(--electrical-text)}.thermal .category-heading{color:var(--thermal-text)}.sensors .category-heading{color:var(--n-13)}.category-count{font:10px var(--mono);color:var(--n-12)}.library-component{width:100%;padding:9px 7px;gap:10px;text-align:left;justify-content:flex-start;border:1px solid transparent;border-radius:4px;margin:2px 0;position:relative;cursor:grab}.library-component:hover{background:var(--n-7);border-color:var(--n-10)}.library-component:active{cursor:grabbing}.library-icon{height:35px;width:35px;background:var(--n-7);border:1px solid var(--n-9);border-radius:4px;display:grid;place-items:center;color:var(--electrical-text);flex-shrink:0}.thermal .library-icon{color:var(--thermal-text);background:var(--n-7);border-color:var(--n-9)}.sensors .library-icon{color:var(--n-13);background:var(--n-7);border-color:var(--n-10)}.library-item-copy{flex:1;min-width:0}.library-item-copy strong{font-size:12px;font-weight:450;display:block;white-space:nowrap;color:var(--n-14)}.library-item-copy>span{font:10px var(--mono);color:var(--n-12);display:block;margin-top:5px}.add-component{color:var(--n-11);opacity:0}.library-component:hover .add-component{opacity:1}.drag-component{color:var(--n-11);position:absolute;right:-6px;opacity:0}.library-component:hover .drag-component{opacity:1}.library-note{display:flex;gap:9px;padding:15px 17px;border-top:1px solid var(--border);font-size:11px;line-height:1.7;color:var(--n-13)}.library-note>svg{margin-top:2px;color:var(--n-12)}.library-note span span{color:var(--n-11)}.models-link{height:38px;margin:0 10px 8px;padding:0 7px;justify-content:flex-start;font-size:11px;color:var(--n-13)}.library-version{display:flex;justify-content:space-between;padding:11px 16px;font:9px var(--mono);letter-spacing:.6px;color:var(--n-11);border-top:1px solid var(--n-9)}.no-results{color:var(--n-13);padding:20px 5px;font-size:12px}.engineering-area{grid-column:2;grid-row:1;position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--n-3)}.workspace{position:relative;flex:1;min-height:0;overflow:hidden}.construction-canvas{position:absolute;width:100%;height:100%;top:0;left:0;touch-action:none;-webkit-user-select:none;user-select:none}.tool-pan{cursor:grab}.tool-pan:active{cursor:grabbing}.tool-wire{cursor:crosshair}.canvas-toolbar{position:absolute;left:17px;top:15px;height:35px;padding:3px 4px;display:flex;background:var(--n-6);border:1px solid var(--n-10);box-shadow:0 4px 16px #080c1033;border-radius:5px;z-index:5;gap:3px;max-width:calc(100% - 34px)}.canvas-toolbar button{width:29px;height:27px;color:var(--n-12);border-radius:3px;padding:0;flex-shrink:0}.canvas-toolbar button:hover{background:var(--n-9);color:var(--n-14)}.canvas-toolbar button.active{background:var(--n-10);color:var(--n-14)}.canvas-toolbar button.active.subtle{background:var(--n-8);color:var(--n-14)}.tool-group{display:flex;gap:2px;padding-right:5px;border-right:1px solid var(--n-10);margin-right:2px}.tool-group:last-of-type{border:0}.toolbar-spacer{width:8px}.component-body{fill:var(--n-6);stroke:var(--n-10);stroke-width:1}.component-selected{stroke:var(--n-13);stroke-width:1.5;fill:var(--n-7);filter:drop-shadow(0 0 6px #9ec5ab0a)}.component-failed{stroke:var(--fault-text)}.component-id{font:11px var(--mono);fill:var(--n-14);letter-spacing:.4px}.component-domain{font:8px var(--mono);fill:var(--n-13);letter-spacing:.5px}.component-state{font:8px var(--mono);fill:var(--n-13);letter-spacing:.7px}.component-caption{font:12px IBM Plex Sans,sans-serif;fill:var(--n-14)}.live-caption{font:9px var(--mono);fill:var(--n-12);letter-spacing:.15px}.supply-number,.tank-number{font:24px var(--mono);fill:var(--n-14);letter-spacing:-.7px}.tank-number{fill:var(--n-14);font-size:22px}.unit{font:11px var(--mono);fill:var(--n-13);letter-spacing:0}.scale-label{font:7px var(--mono);fill:var(--n-12);letter-spacing:.5px}.polarity{font:10px var(--mono);fill:var(--electrical-text)}.meter-number{font:12px var(--mono);fill:var(--n-14)}.terminal{cursor:crosshair;color:var(--electrical)}.terminal.thermal{color:var(--thermal-text)}.port-circle{fill:var(--n-5);stroke:currentColor;stroke-width:1.5}.terminal:hover .port-circle,.terminal.pending .port-circle{fill:currentColor;stroke:var(--n-16);stroke-width:2}.terminal:hover{filter:drop-shadow(0 0 5px currentColor)}.wire-line{stroke:var(--electrical);stroke-width:1.7;fill:none;stroke-linejoin:round}.connection.thermal .wire-line{stroke:var(--thermal-text);stroke-dasharray:5 4}.wire-hit{stroke:transparent;stroke-width:15;fill:none;cursor:pointer}.connection:hover .wire-line,.selected-wire .wire-line{stroke:var(--n-14);stroke-width:3}.connection.thermal:hover .wire-line{stroke:var(--thermal-text)}.flow-line{stroke:var(--electrical-text);stroke-width:2;fill:none;stroke-dasharray:2 23;animation:flow 1.4s linear infinite;opacity:.8}.thermal .flow-line{stroke:var(--thermal-text);animation-duration:2s}@keyframes flow{to{stroke-dashoffset:-50}}.canvas-label{position:absolute;right:17px;top:20px;font:8px var(--mono);letter-spacing:1px;color:var(--n-12);display:flex;align-items:center;gap:6px;pointer-events:none}.canvas-label>span:last-child{display:none}.canvas-label-dot{height:4px;width:4px;background:var(--n-11);border-radius:50%}.canvas-hint{position:absolute;left:18px;bottom:17px;color:var(--n-12);font-size:10px;pointer-events:none;letter-spacing:.1px}.zoom-controls{position:absolute;right:17px;bottom:14px;display:flex;align-items:center;height:29px;background:var(--n-6);border:1px solid var(--n-10);border-radius:4px;z-index:5}.zoom-controls button{height:27px;width:27px;color:var(--n-13)}.zoom-controls span{width:43px;text-align:center;font:10px var(--mono);color:var(--n-14)}.zoom-controls i{height:14px;width:1px;background:var(--n-10);margin:0 3px}.context-menu{position:absolute;z-index:15;background:var(--n-6);border:1px solid var(--n-10);border-radius:5px;box-shadow:0 7px 28px #0007;width:185px;padding:5px}.context-menu button{width:100%;justify-content:flex-start;font-size:12px;height:33px;border-radius:3px}.context-menu button:hover{background:var(--n-9)}.context-menu kbd{margin-left:auto;font-size:9px}.empty-canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:95%;pointer-events:none}.empty-canvas h2{font-size:20px;font-weight:450;color:var(--n-14);margin:16px 0 10px}.empty-canvas p{font-size:12px;line-height:1.8;color:var(--n-12)}.empty-cross{font:36px var(--mono);color:var(--n-11)}.empty-canvas button{pointer-events:auto;border:1px solid var(--n-10);color:var(--n-14);border-radius:4px;padding:8px 13px;font-size:12px;margin-top:20px;background:var(--n-7)}.selection-info{position:absolute;left:20px;bottom:53px;background:var(--n-8);border:1px solid var(--n-11);border-radius:4px;padding:6px 9px;font-size:11px;display:flex;align-items:center;gap:8px}.selection-info button{color:var(--n-14);text-decoration:underline;font-size:11px}.inspector{background:var(--n-5);border-left:1px solid var(--border);grid-row:1;grid-column:3;display:flex;flex-direction:column;min-height:0}.inspector .panel-heading{height:48px}.inspector-component{padding:2px 16px 16px;display:flex;align-items:center;gap:10px}.inspector-icon{width:40px;height:40px;border:1px solid var(--n-10);background:var(--n-7);color:var(--electrical-text);display:grid;place-items:center;border-radius:5px}.inspector-component.thermal .inspector-icon{color:var(--thermal-text);background:var(--n-7);border-color:var(--n-10)}.inspector-component h3{font-size:14px;font-weight:500;margin-bottom:4px}.inspector-component .mono{font-size:10px}.inspector-component>button{margin-left:auto;color:var(--n-11)}.inspector-tabs{border-top:1px solid var(--n-9);border-bottom:1px solid var(--n-9);display:flex;height:35px;flex-shrink:0;padding-left:10px;gap:7px}.inspector-tabs button{padding:0 10px;font-size:11px;color:var(--n-12);position:relative}.inspector-tabs button.active{color:var(--n-14)}.inspector-tabs button.active:after{position:absolute;content:"";bottom:-1px;left:10px;right:10px;height:2px;background:var(--n-13)}.inspector-scroll{flex:1;min-height:0;overflow:auto}.inspector-section{padding:17px 17px 13px;border-bottom:1px solid var(--n-8)}.section-label{display:flex;align-items:center;justify-content:space-between;color:var(--n-12);font-size:9px;letter-spacing:.9px;font-weight:500;margin-bottom:15px}.live-badge,.paused-badge{color:var(--n-13);font:8px var(--mono);letter-spacing:.5px;display:flex;align-items:center;gap:5px}.live-badge:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--n-13)}.paused-badge{color:var(--n-12)}.primary-reading{font-family:var(--mono);font-size:34px;letter-spacing:-1.7px;line-height:1;margin-bottom:6px;font-weight:400}.primary-reading small{font-size:17px;letter-spacing:0;margin-left:6px;color:var(--n-13);font-weight:400}.reading-caption{font-size:11px;color:var(--n-12);margin-bottom:16px}.measurement-list{display:flex;flex-direction:column;gap:10px}.measurement-list>div{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--n-13)}.measurement-list strong{font:11px var(--mono);color:var(--n-14)}.measurement-list small{font-size:10px;color:var(--n-12)}.property-row{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:11px;color:var(--n-14);margin:10px 0}.number-field{display:flex;align-items:center;height:28px;min-width:95px;width:102px;border:1px solid var(--n-10);background:var(--n-4);border-radius:3px}.number-field input{font:11px var(--mono);width:100%;padding:5px 0 5px 9px;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.number-field input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.number-field span{font:9px var(--mono);color:var(--n-12);flex-shrink:0;padding-right:7px}.field-hint{font-size:10px;color:var(--n-12);line-height:1.6;margin-top:9px}.interface-status{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--n-13)}.interface-status.connected{color:var(--n-13)}.inspector-footer{height:37px;flex-shrink:0;padding:0 17px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--n-12);background:var(--n-6);border-top:1px solid var(--n-9)}.inspector-footer strong{font:11px var(--mono);color:var(--n-14)}.switch-control{font-size:10px;background:var(--n-4);border:1px solid var(--n-10);padding:4px 8px;border-radius:3px;color:var(--n-13)}.switch-control i{height:6px;width:6px;border-radius:50%;background:var(--n-12)}.switch-control.on i{background:var(--n-13)}.model-description{padding:18px;font-size:12px;color:var(--n-13);line-height:1.75}.model-description h3{font-size:14px;color:var(--n-14);margin:10px 0}.model-description p{margin-bottom:16px}.text-link{color:var(--n-13);font-size:12px;justify-content:flex-start;padding:0}.component-warning{display:flex;gap:8px;align-items:center;background:var(--n-9);border:1px solid var(--fault-dim);color:var(--fault-text);margin:12px;padding:10px;font-size:11px;border-radius:4px}.inspector-empty{padding:65px 25px;color:var(--n-13);line-height:1.7;text-align:center}.inspector-empty h3{font-size:14px;color:var(--n-14);margin:15px 0 9px;font-weight:450}.inspector-empty p{font-size:12px}.telemetry{grid-row:2;grid-column:2/4;min-height:0;background:var(--n-5);border-top:1px solid var(--n-10);overflow:hidden}.telemetry-top{height:39px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--n-9);padding:0 17px}.telemetry-tabs{height:100%;display:flex;gap:23px}.telemetry-tabs button{padding:0;font-size:11px;color:var(--n-12);position:relative}.telemetry-tabs button.active{color:var(--n-14)}.telemetry-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--n-13)}.telemetry-tabs .count{font-size:8px;min-width:16px;padding:1px 4px}.csv-button{font-size:10px;color:var(--n-13);padding:4px 0 4px 7px}.telemetry-metrics{height:67px;display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;padding:12px 0 9px;border-bottom:1px solid var(--n-8)}.telemetry-metrics>div{padding:0 22px;border-right:1px solid var(--n-9)}.telemetry-metrics>div:last-child{border-right:0}.telemetry-metrics>div>span{font-size:8px;letter-spacing:.9px;color:var(--n-12);display:flex;align-items:center;gap:6px;white-space:nowrap;margin-bottom:6px}.telemetry-metrics strong{font:21px var(--mono);color:var(--n-15);letter-spacing:-.5px;white-space:nowrap}.telemetry-metrics strong small{font-size:10px;color:var(--n-12);letter-spacing:0;margin-left:7px}.telemetry-metrics>div:last-child strong{font-size:18px}.chart-heading{display:flex;justify-content:space-between;align-items:center;padding:9px 23px 0;height:31px;font-size:10px;color:var(--n-12)}.chart-heading label{display:flex;align-items:center;gap:6px}.chart-heading i{width:6px;height:6px;border-radius:1px}.chart-heading select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-size:10px;color:var(--n-13)}.chart-heading label>svg{color:var(--n-11)}.chart{height:103px;padding:0 17px 8px}.chart svg{width:100%;height:100%;overflow:visible}.chart text{font:9px var(--mono);fill:var(--n-12)}.chart text.chart-empty{font:11px IBM Plex Sans,sans-serif;fill:var(--n-12)}.event-log{height:205px;overflow:auto;padding:12px 20px}.log-row{display:flex;align-items:baseline;gap:17px;font-size:12px;padding:7px 0;border-bottom:1px solid var(--n-8);color:var(--n-14)}.log-row time{font:10px var(--mono);color:var(--n-12);white-space:nowrap}.event-level{font:9px var(--mono);color:var(--hydraulic);width:46px;flex-shrink:0}.log-row.error .event-level,.log-row.error>span:last-child{color:var(--fault-text)}.log-row.success .event-level,.log-row.success>span:last-child{color:var(--n-14)}.log-row.warning .event-level{color:var(--electrical-text)}.energy-panel{display:flex;align-items:center;gap:30px;flex-wrap:wrap;padding:27px 30px}.energy-panel>div>span{font-size:11px;color:var(--n-13);display:block;margin-bottom:8px}.energy-panel strong{font:22px var(--mono);color:var(--n-14)}.energy-panel small{font-size:12px;color:var(--n-12)}.energy-equals{font:20px var(--mono);color:var(--n-12)}.energy-panel .energy-error{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;border-top:1px solid var(--n-9);padding-top:15px;color:var(--n-13)}.energy-panel .energy-error>span{margin:0}.energy-error strong{font-size:11px;color:var(--n-14);margin-left:10px}.energy-error p{font-size:11px;color:var(--n-12);line-height:1.5}.simulation-caption{display:flex;align-items:center;gap:8px;width:237px;padding-left:18px;flex-shrink:0;font-size:11px}.simulation-caption strong{font-weight:450;color:var(--n-14)}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--n-13)}.status-dot.running{background:var(--n-14);box-shadow:0 0 0 3px #a8d7b910}.transport{display:flex;align-items:center;gap:7px;flex-shrink:0}.transport>button{height:30px;width:30px;padding:0;color:var(--n-13)}.transport .run-button{width:76px;background:var(--n-14);border:1px solid var(--n-14);color:var(--n-6);border-radius:4px;font-size:12px;font-weight:600;gap:8px}.transport .run-button:hover{background:var(--n-14);color:var(--n-6)}.transport .run-button.is-running{background:var(--n-10);border:1px solid var(--n-11);color:var(--n-14)}.control-divider{width:1px;height:18px;background:var(--n-10);margin:0 8px}.speed-control{display:flex;align-items:center;gap:8px;color:var(--n-12);font-size:11px}.speed-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--n-14);width:26px;font:11px var(--mono);cursor:pointer}.speed-control svg{margin-left:-5px}.transport .advance-button{width:auto;font-size:10px;padding:0 8px;border:1px solid var(--n-10);border-radius:3px;margin-left:10px;color:var(--n-13)}.simulation-clock{margin-left:auto;font:12px var(--mono);color:var(--n-12);white-space:nowrap}.simulation-clock strong{font-weight:400;color:var(--n-14);letter-spacing:.2px;margin-left:7px}.solver-status{display:flex;align-items:center;gap:6px;font:8px var(--mono);color:var(--n-12);white-space:nowrap}.solver-status strong{font-size:9px;font-weight:400;color:var(--n-14)}.solver-status i{width:1px;height:12px;background:var(--n-10);margin:0 8px}.warning-count{color:var(--n-12);font-size:10px;white-space:nowrap;gap:5px}.warning-count.has-warning{color:var(--thermal-text)}.status-footer{height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:var(--n-4);border-top:1px solid var(--n-9);padding:0 17px;font-size:9px;color:var(--n-12);letter-spacing:.1px}.status-footer>div{display:flex;align-items:center;gap:20px}.status-footer button{font-size:9px;color:var(--n-12);gap:5px;padding:0}.engine-status{color:var(--n-13);display:flex;align-items:center;gap:6px}.engine-status i{width:4px;height:4px;background:var(--n-13);border-radius:50%}.dropdown{position:absolute;left:-12px;top:27px;min-width:250px;background:var(--n-7);border:1px solid var(--n-10);padding:6px;border-radius:5px;box-shadow:0 10px 35px #0008;z-index:100}.dropdown button{width:100%;padding:9px 8px;justify-content:flex-start;font-size:12px;white-space:nowrap;border-radius:3px;color:var(--n-14)}.dropdown button:hover{background:var(--n-9)}.dropdown kbd{margin-left:auto;font-size:9px}.dropdown hr{border:0;border-top:1px solid var(--n-10);margin:6px}.toast{position:fixed;bottom:94px;left:50%;transform:translate(-50%);z-index:110;display:flex;align-items:center;gap:20px;background:var(--n-8);border:1px solid var(--n-11);padding:13px 16px;box-shadow:0 7px 24px #0007;color:var(--n-14);border-radius:5px;font-size:12px;max-width:min(600px,90vw)}.toast button{padding:0;color:var(--n-13)}.challenge-strip{height:40px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 18px;background:var(--n-7);border-bottom:1px solid var(--n-10);color:var(--n-14);font-size:11px}.challenge-number{font:9px var(--mono);border:1px solid var(--n-11);padding:2px 5px;border-radius:2px}.challenge-strip strong{font-weight:500;white-space:nowrap}.challenge-progress{height:4px;max-width:160px;min-width:40px;flex:1;background:var(--n-10);border-radius:2px;margin:0 7px}.challenge-progress i{display:block;height:100%;background:var(--n-13);transition:width .2s}.challenge-strip>span:last-of-type{font:9px var(--mono)}.challenge-strip button{margin-left:auto;padding:3px}.solver-error{position:absolute;bottom:55px;left:15px;right:15px;z-index:10;background:var(--n-8);border:1px solid var(--fault-dim);color:var(--fault-text);padding:10px 12px;border-radius:4px;display:flex;align-items:center;gap:10px;font-size:11px}.solver-error button{margin-left:auto;color:var(--fault-text);text-decoration:underline;font-size:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#070d11b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:70;display:flex;align-items:center;justify-content:center;padding:30px}.challenge-dialog,.model-dialog{background:var(--n-6);border:1px solid var(--n-10);box-shadow:0 20px 100px #0008;border-radius:8px;padding:30px;max-width:890px;width:100%;max-height:90dvh;overflow:auto}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.eyebrow{font:10px var(--mono);letter-spacing:1.5px;color:var(--n-13);display:block;margin-bottom:10px}.dialog-header h2{font-size:25px;font-weight:450;letter-spacing:-.5px;color:var(--n-15)}.dialog-header>button{height:29px;width:29px;color:var(--n-13);border:1px solid var(--n-10);border-radius:4px}.dialog-intro{font-size:13px;color:var(--n-13);margin-bottom:25px}.challenge-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.challenge-card{border:1px solid var(--n-10);background:var(--n-6);padding:20px;border-radius:5px}.challenge-card-top{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);letter-spacing:.5px;color:var(--n-13)}.difficulty{color:var(--n-12);font-size:8px;border:1px solid var(--n-10);padding:3px 5px;border-radius:3px}.assignment-id{padding-top:3px}.challenge-illustration{height:100px;display:flex;align-items:center;justify-content:center;gap:35px;color:var(--electrical-text);border-bottom:1px solid var(--n-10);margin-bottom:18px}.challenge-illustration span{font:19px var(--mono);color:var(--n-12)}.heat .challenge-illustration{color:var(--thermal-text)}.heat .challenge-illustration span{color:var(--thermal)}.challenge-card h3{font-size:22px;font-weight:450;margin-bottom:12px}.challenge-card>p{font-size:12px;color:var(--n-13);line-height:1.7;min-height:44px}.challenge-card ul{list-style:none;padding:15px 0;margin:0;display:flex;flex-direction:column;gap:12px;min-height:120px}.challenge-card li{font-size:11px;color:var(--n-14);display:flex;align-items:center;gap:8px}.challenge-card li svg{color:var(--n-13);flex-shrink:0}.challenge-meta{display:flex;align-items:center;gap:24px;color:var(--n-13);font-size:10px;border-top:1px solid var(--n-10);padding-top:17px;margin-bottom:20px}.challenge-meta>span{display:flex;gap:6px;align-items:center}.primary-button{background:var(--n-14);color:var(--n-7);border:1px solid var(--n-14);border-radius:4px;padding:9px 13px;font-size:12px;font-weight:500;width:100%}.primary-button:hover{color:var(--n-6);background:var(--n-14)}.challenge-footnote{display:flex;gap:12px;color:var(--n-13);background:var(--n-7);border:1px solid var(--n-10);padding:14px;margin-top:22px;border-radius:4px}.challenge-footnote>svg{flex-shrink:0;margin-top:2px}.challenge-footnote p{font-size:11px;line-height:1.75;color:var(--n-13)}.challenge-footnote strong{font-weight:500;color:var(--n-14)}.challenge-dialog>.text-link{margin-top:18px}.model-dialog{max-width:800px}.reference-content{padding-top:7px;color:var(--n-13);font-size:13px;line-height:1.85}.reference-content h3{font-size:16px;font-weight:500;color:var(--n-14);margin:25px 0 10px}.reference-content p{margin-bottom:13px}.formula{padding:16px;border-left:2px solid var(--electrical);background:var(--n-5);font:12px/1.9 var(--mono);color:var(--n-14);margin-bottom:16px;overflow-x:auto}.mobile-library-button{display:none}.construction-canvas g[data-component]{cursor:move}select option{background:var(--n-7);color:var(--n-14)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--n-10);border-radius:3px}::-webkit-scrollbar-track{background:transparent}::selection{background:var(--n-11);color:var(--n-16)}@media(min-width:1600px){.lab-grid{grid-template-columns:252px minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) 270px}.simulation-caption{width:252px}.library-component{padding-top:11px;padding-bottom:11px}.library-item-copy strong{font-size:13px}.library-item-copy>span{font-size:11px}.library-category{margin-bottom:17px}.telemetry-metrics{height:77px;padding-top:16px}.telemetry-metrics>div>span{font-size:9px}.telemetry-metrics strong{font-size:25px}.chart{height:116px}.canvas-label{font-size:9px}.canvas-label>span:last-child{display:inline;margin-left:12px}.inspector-section{padding:19px}.property-row{font-size:12px}.number-field{height:31px}.section-label{font-size:10px}.primary-reading{font-size:38px}.inspector-component h3{font-size:15px}.measurement-list>div{font-size:12px}.telemetry-tabs button{font-size:12px}}@media(max-width:1250px){.app-header{gap:13px;padding:0 15px}.brand{min-width:190px}.header-center .workspace-breadcrumb,.header-center>svg,.save-state{display:none}.lab-grid{grid-template-columns:210px minmax(0,1fr) 245px}.library-component{padding-left:3px;gap:7px}.library-item-copy strong{font-size:11px}.library-icon{width:31px;height:33px}.library-item-copy>span{font-size:9px}.library .panel-heading{padding:0 14px}.library .panel-heading h2{font-size:12px}.simulation-caption{width:210px}.solver-status,.canvas-label{display:none}.telemetry-metrics>div{padding:0 15px}.telemetry-metrics>div>span{font-size:7px;letter-spacing:.6px}.telemetry-metrics strong{font-size:19px}.telemetry-metrics>div:last-child strong{font-size:16px}.inspector-section{padding-left:14px;padding-right:14px}.number-field{width:86px;min-width:86px}.property-row{font-size:10px}.inspector-component{padding-left:14px;padding-right:14px}.canvas-toolbar{left:12px}.canvas-hint{font-size:9px;bottom:48px;left:13px}.canvas-toolbar .toolbar-spacer{display:none}.canvas-toolbar .tool-group{gap:0;padding-right:3px}.canvas-toolbar button{width:26px}}@media(max-width:1050px){.lab-grid{grid-template-columns:190px minmax(0,1fr) 230px}.simulation-caption{width:190px}.brand{min-width:171px}.brand>span:last-child{font-size:15px}.brand small{font-size:8px}.brand-mark{width:30px;height:30px}.header-divider{display:none}.library-component{gap:7px}.library-item-copy strong{font-size:10px}.library-icon{width:27px}.library-note{font-size:10px;padding-left:12px;padding-right:12px}.models-link{font-size:10px}.library-component .add-component{display:none}.transport .advance-button{margin-left:0}.simulation-caption strong{font-size:10px}.telemetry-metrics>div{padding:0 12px}.telemetry-metrics>div>span svg{display:none}.telemetry-metrics strong{font-size:17px}.telemetry-metrics>div:last-child strong{font-size:14px}.telemetry-tabs{gap:18px}.chart-heading{padding-left:17px;padding-right:17px}.status-footer>div{gap:12px}.status-footer>div:last-child>span:first-child{display:none}.energy-panel{gap:17px;padding:25px 20px}.energy-panel strong{font-size:17px}.library-component .drag-component{display:none}.telemetry-metrics>div>span{font-size:7px}.simulation-clock{font-size:10px}.warning-count span{display:none}.canvas-toolbar{gap:1px;padding:3px}.canvas-toolbar button{width:24px}.inspector-component h3{font-size:13px}}@media(max-width:850px){.lab-app{min-height:720px}.app-header{height:58px;gap:12px}.brand{min-width:auto}.brand small{display:none}.brand>span:last-child{font-size:14px}.project-name{max-width:210px;font-size:11px}.file-menu{font-size:12px;margin-left:10px}.import-button{display:none}.save-button{font-size:10px;padding:0 10px}.help-button{display:none}.lab-grid{grid-template-columns:minmax(0,1fr) 239px;grid-template-rows:minmax(0,1fr) 230px}.library{display:none;position:fixed;top:100px;bottom:81px;left:0;width:238px;z-index:35;box-shadow:10px 0 30px #0007}.show-library .library{display:flex}.engineering-area{grid-column:1}.inspector{grid-column:2}.telemetry{grid-column:1/3}.mobile-library-button{display:flex;width:35px;color:var(--n-13)}.simulation-caption{width:auto;padding-left:15px}.simulation-caption strong{display:none}.simulation-clock{margin-left:auto}.transport .run-button{width:68px}.status-footer>div>span:nth-child(4){display:none}.telemetry-top{height:37px}.telemetry-metrics{height:62px}.chart{height:99px}.canvas-toolbar button{width:25px}.canvas-toolbar .tool-group:nth-child(3){display:none}.transport .advance-button{font-size:9px}.library-item-copy strong{font-size:12px}.library-icon{width:35px}.library-item-copy>span{font-size:10px}.challenge-strip{padding:0 10px;gap:5px}.challenge-strip>span:last-of-type{max-width:100px;font-size:8px}.challenge-strip strong,.telemetry-tabs button{font-size:10px}.telemetry-metrics strong{font-size:19px}.telemetry-metrics>div:last-child strong{font-size:16px}}@media(max-width:580px){.app-header{padding:0 12px;gap:8px}.brand{gap:7px}.brand-mark{width:28px;height:28px}.brand>span:last-child{font-size:13px;letter-spacing:.4px}.file-menu{margin-left:auto;margin-right:7px}.save-button{width:31px;padding:0}.save-button span,.mode-badge{display:none}.lab-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 231px}.inspector{display:none}.telemetry{grid-column:1}.workspace{min-height:330px}.lab-app{min-height:730px}.transport{gap:3px}.simulation-caption{padding-left:10px}.transport>button{width:26px}.transport .run-button{width:60px;font-size:11px}.transport .advance-button{padding:0 4px;margin-left:5px}.transport .advance-button span{display:none}.control-divider{margin:0 4px}.speed-control{font-size:10px;gap:5px}.speed-control>span{display:none}.simulation-clock{font-size:9px}.simulation-clock strong{margin-left:2px}.warning-count{font-size:9px;gap:3px;padding:0 0 0 4px}.warning-count svg{width:12px}.status-footer{padding:0 10px;font-size:8px;height:25px}.status-footer>div{gap:12px}.status-footer>div:last-child>button{display:none}.status-footer>div>span:nth-child(3){display:none}.telemetry-tabs{gap:14px}.telemetry-top{padding:0 12px}.telemetry-tabs button{font-size:9px;gap:4px}.telemetry-tabs button svg{width:11px}.telemetry-tabs .count{display:none}.csv-button{font-size:0;gap:0}.csv-button svg{width:14px}.telemetry-metrics{grid-template-columns:1fr 1fr 1fr;height:63px}.telemetry-metrics>div:last-child{display:none}.telemetry-metrics>div{padding:0 12px}.telemetry-metrics>div:nth-child(3){border:0}.telemetry-metrics strong{font-size:19px}.telemetry-metrics>div>span{font-size:6px;letter-spacing:.5px}.telemetry-metrics strong small{font-size:9px;margin-left:4px}.chart-heading{font-size:8px;padding-left:12px;padding-right:12px}.chart-heading select{font-size:9px}.chart{padding-left:5px;padding-right:10px}.chart text{font-size:8px}.canvas-hint{font-size:8px;bottom:49px}.zoom-controls{bottom:13px;right:12px}.canvas-toolbar{top:12px;left:12px}.canvas-toolbar .tool-group:nth-child(3){display:flex}.canvas-toolbar button{width:24px}.empty-canvas h2{font-size:17px}.empty-canvas p{font-size:11px}.modal-backdrop{padding:25px 13px 13px;align-items:flex-start}.challenge-dialog,.model-dialog{padding:20px;max-height:91dvh}.dialog-header h2{font-size:21px}.dialog-intro{font-size:12px;line-height:1.7}.challenge-cards{grid-template-columns:1fr}.challenge-illustration{height:80px}.challenge-card{padding:17px}.challenge-card ul{min-height:auto}.challenge-card h3{font-size:20px}.challenge-footnote{padding:12px}.model-dialog .reference-content{font-size:12px}.formula{font-size:10px}.energy-panel{gap:13px;padding:20px 14px}.energy-panel>div>span{font-size:9px}.energy-panel strong{font-size:13px}.energy-panel small{font-size:9px}.energy-panel .energy-error{padding-top:12px}.energy-error strong{font-size:9px;margin-left:4px}.energy-error p{font-size:9px}.toast{bottom:90px;width:90vw}.log-row{font-size:10px;gap:10px}.log-row time{font-size:8px}.event-level{font-size:8px;width:35px}.event-log{padding:10px 12px}.challenge-strip>span:last-of-type{max-width:85px}.challenge-strip{font-size:10px}.challenge-progress{margin:0 4px}.library-component strong{font-size:12px}.solver-error{left:10px;right:10px;font-size:10px}.dropdown{left:auto;right:-55px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.telemetry-actions{display:flex;align-items:center;gap:18px}.mobile-inspector-button{display:none}@media(max-width:580px){.mobile-inspector-button{display:flex;color:var(--n-13)}.show-inspector .inspector{display:flex;position:fixed;right:0;top:100px;bottom:76px;width:275px;z-index:30;box-shadow:-10px 0 30px #0007}.show-inspector .inspector-scroll{overflow-y:auto}}.invalid-badge{font:8px var(--mono);letter-spacing:.3px;color:var(--thermal-text)}.control,.terminal.control{color:var(--mechanical-text)}.connection.control .wire-line,.connection.control .flow-line{stroke:var(--mechanical-text)}.node-reading{font:10px IBM Plex Mono,monospace;fill:var(--electrical-text);paint-order:stroke;stroke:var(--n-2);stroke-width:3px}.bend-handle{fill:var(--n-5);stroke:var(--electrical-text);stroke-width:2;cursor:move}.wide-select{width:100%;padding:7px;background:var(--n-4);color:var(--n-15);border:1px solid var(--n-9);border-radius:3px;font-size:11px}.property-row select{max-width:145px;background:var(--n-4);color:var(--n-15);border:1px solid var(--n-9);font-size:10px;padding:5px}.number-field input:disabled{color:var(--n-12);cursor:not-allowed}.fault-button{padding:7px 10px;border:1px solid var(--n-10);background:var(--n-5);color:var(--electrical-text);font-size:11px;border-radius:3px}.assembly-tools{border-top:1px solid var(--n-9);padding:10px;display:grid;gap:7px}.assembly-tools button,.assembly-tools input{font-size:10px;padding:6px;background:var(--n-5);color:var(--n-14);border:1px solid var(--n-9);border-radius:3px}.assembly-tools form{display:grid;gap:5px}.inspector-section summary{cursor:pointer}.inspector-scroll .measurement-list{max-height:155px;overflow:auto}.probe-manager{padding:8px 20px;border-bottom:1px solid var(--n-9);max-height:155px;overflow:auto}.probe-add,.probe-row{display:flex;align-items:center;gap:7px;margin:4px 0}.probe-manager select,.probe-manager input,.probe-manager button,.chart-heading select{background:var(--n-4);color:var(--n-14);border:1px solid var(--n-9);border-radius:3px;padding:4px;font-size:10px}.probe-row input[type=color]{width:23px;height:23px;padding:0}.probe-row input[type=text]{min-width:80px}.probe-row span{font:10px IBM Plex Mono,monospace;color:var(--n-12)}.trace-readouts{display:flex;gap:22px;padding:10px 20px;flex-wrap:wrap}.trace-readouts label{font-size:10px;color:var(--n-12);display:flex;align-items:center;gap:5px}.trace-readouts i{width:5px;height:5px;border-radius:50%}.trace-readouts strong{color:var(--n-15);font:12px IBM Plex Mono,monospace;margin-left:6px}.trace-readouts small{font-size:9px;color:var(--n-12)}.multi-chart{overflow:auto;max-height:160px;padding:0 14px 8px}.trace-plot{min-height:88px;margin-bottom:7px}.trace-plot svg{display:block;width:100%;height:78px}.trace-plot text{font:9px IBM Plex Mono,monospace;fill:var(--n-12)}.trace-unit{font:10px IBM Plex Mono,monospace;color:var(--n-13);padding:0 12px}.trace-unit span{margin-left:15px;color:var(--n-14)}.energy-panel{flex-wrap:wrap;gap:18px!important;overflow:auto;max-height:210px}.energy-panel>div{min-width:90px}.energy-error{flex:1;min-width:220px!important}.chart-heading label{display:flex;gap:7px;align-items:center;font-size:10px}.chart-heading button{display:flex;gap:5px;font-size:10px;color:var(--mechanical-text)}.chart-heading input[type=range]{width:95px;accent-color:var(--mechanical-text)}.challenge-dialog{max-height:90vh;overflow:auto}.challenge-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}.challenge-card{min-width:0}.challenge-card.runaway .challenge-illustration{color:var(--mechanical-text)}.telemetry{overflow:auto}.component-domain{font-size:8px!important}@media(max-width:700px){.challenge-cards{grid-template-columns:1fr!important}.chart-heading{flex-wrap:wrap;gap:8px}.trace-readouts{gap:10px}.runaway-details{font-size:11px}}.runaway-details{font-size:12px;color:var(--n-12);padding:12px 0}.runaway-details p{margin:5px 0}.hydraulic .category-heading,.hydraulic-text{color:var(--hydraulic-text)}.connection.hydraulic .wire-line{stroke:var(--hydraulic);stroke-width:3}.connection.mechanical .wire-line{stroke:var(--n-13);stroke-dasharray:9 4}.terminal.hydraulic{fill:var(--n-7);stroke:var(--hydraulic-text)}.terminal.mechanical{fill:var(--n-7);stroke:var(--n-14)}.connection.hydraulic.flowing .wire-line{stroke-dasharray:10 5;animation:flow 1.5s linear infinite;animation-direction:inherit}.hydraulic .flow-line{stroke:var(--hydraulic-text);animation-direction:inherit}.energy-panel{overflow-y:auto}.challenge-cards{max-height:65vh;overflow-y:auto}.physical-tools .library-scroll{padding-bottom:20px}.physical-mode{padding:14px 16px 10px;border-bottom:1px solid var(--n-8)}.physical-mode>span{font:10px var(--font-mono, monospace);letter-spacing:.12em;color:var(--n-13);border:1px solid var(--n-10);border-radius:3px;padding:4px 7px}.physical-mode>span.sim-mode{color:var(--electrical-text);border-color:var(--n-10)}.physical-mode p{color:var(--n-12);font-size:11px;line-height:1.6;margin:11px 0 0}.physical-tool-section{padding:15px 16px;border-bottom:1px solid var(--n-8)}.physical-tool-section h3{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:.09em;color:var(--n-13);margin:0 0 11px}.physical-tool-section h3 small{text-transform:none;letter-spacing:0;font-weight:400;font-size:9px;color:var(--n-12)}.shape-grid,.joint-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.shape-grid button,.joint-tool-grid button{display:flex;align-items:center;gap:8px;min-height:34px;padding:8px 9px;background:var(--n-6);border:1px solid var(--n-10);border-radius:4px;font-size:11px;color:var(--n-14)}.shape-grid button:hover:not(:disabled),.joint-tool-grid button:hover:not(:disabled),.physical-wide:hover:not(:disabled){border-color:var(--hydraulic);background:var(--n-8)}.shape-grid svg{color:var(--n-13)}.physical-wide{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;text-align:left;padding:9px 10px;margin:6px 0;border:1px solid var(--n-10);border-radius:4px;background:var(--n-6);color:var(--n-14);font-size:11px}.physical-tool-section details{color:var(--n-13);font-size:11px;line-height:1.8;margin-top:10px}.physical-tool-section summary{cursor:pointer}.physical-tool-section details>label{display:block;margin-top:9px}.physical-tool-section select,.physical-field input,.physical-field select{background:var(--n-5);border:1px solid var(--n-10);color:var(--n-14);border-radius:3px;font:11px var(--font-mono, monospace);min-width:0;padding:6px}.physical-tool-section details>label select{width:100%;display:block;margin-top:4px}.physical-field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:11px;color:var(--n-13)}.physical-field>span{max-width:53%}.physical-field>div{display:flex;position:relative;align-items:center;width:108px}.physical-field input{width:100%;padding-right:30px;text-align:right}.physical-field small{pointer-events:none;position:absolute;right:7px;font-size:9px;color:var(--n-12)}.physical-field select{max-width:125px}.physical-check{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--n-13);line-height:1.6;margin:9px 0}.physical-check input{accent-color:var(--n-12)}.physical-equipment{display:flex;align-items:center;gap:9px;width:100%;padding:8px 0;font-size:11px;color:var(--n-14);text-align:left}.physical-equipment>span{flex:1}.physical-equipment small{display:block;color:var(--n-12);font-size:10px;margin-top:2px}.physical-title{padding:18px 16px 14px;position:relative;border-bottom:1px solid var(--n-9)}.physical-title>svg{float:left;margin-right:9px;color:var(--n-13)}.physical-title h3{font-size:15px;margin:0 0 5px;color:var(--n-14)}.physical-title>span{color:var(--n-12);font-size:10px}.physical-readings{display:grid;grid-template-columns:auto 1fr;gap:10px 7px;font-size:11px;margin:0}.physical-readings dt{color:var(--n-12)}.physical-readings dd{color:var(--n-14);font-family:var(--font-mono, monospace);text-align:right;margin:0}.physical-empty-inspector{padding:55px 25px;text-align:center;color:var(--n-12);font-size:12px;line-height:1.8}.physical-empty-inspector>svg{color:var(--n-11);margin-bottom:15px}.physical-empty-inspector h3{font-size:14px;color:var(--n-13)}.physical-polygon-editor{display:block;font-size:11px;color:var(--n-13);margin-top:10px}.physical-polygon-editor textarea{display:block;width:100%;min-height:150px;margin-top:6px;background:var(--n-5);color:var(--n-14);border:1px solid var(--n-10);padding:8px;font:10px monospace}.physical-probes{display:flex;flex-wrap:wrap;gap:5px}.physical-probes button{display:flex;gap:3px;align-items:center;padding:6px;border:1px solid var(--n-10);border-radius:3px;color:var(--n-13);font-size:10px}.physical-workspace{background:var(--n-6);position:relative;overflow:hidden;touch-action:none}.physical-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-user-select:none;user-select:none;touch-action:none}.physical-body{cursor:grab}.physical-body.static{cursor:default}.physical-body.selected{filter:drop-shadow(0 0 2px #d6b97922)}.physical-joint{cursor:pointer}.resize-handle{cursor:nwse-resize}.rotate-handle{cursor:crosshair}.physical-toolbar{position:absolute;z-index:5;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:10px;padding:5px 7px;border:1px solid var(--n-10);border-radius:5px;background:#1b2936ee;box-shadow:0 4px 15px #07121a35}.physical-tool-buttons{display:flex;align-items:center;gap:2px;flex:1}.physical-tool-buttons button{display:flex;align-items:center;justify-content:center;min-width:29px;height:28px;color:var(--n-13);border-radius:3px}.physical-tool-buttons button.active{background:var(--n-10);color:var(--electrical-text)}.physical-tool-buttons button:hover:not(:disabled){background:var(--n-9)}.physical-tool-buttons i{height:18px;width:1px;background:var(--n-10);margin:0 4px}.physical-mode-caption{font:10px monospace;color:var(--n-13);white-space:nowrap}.physical-mode-caption small{color:var(--n-12)}.physical-overlays{font-size:10px}.physical-overlays summary{cursor:pointer;display:flex;align-items:center;gap:5px;color:var(--n-13)}.physical-overlays>div{position:absolute;right:0;top:37px;padding:10px 14px;background:var(--n-7);border:1px solid var(--n-10);border-radius:4px;min-width:160px}.physical-overlays label{display:flex;align-items:center;gap:6px;padding:4px 0;color:var(--n-14)}.physical-overlays input{accent-color:var(--n-13)}.physical-empty{position:absolute;width:min(390px,80%);left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:var(--n-12);font-size:12px;line-height:1.8}.physical-empty h3{font-size:17px;color:var(--n-14);font-weight:500}.physical-empty button{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;margin-top:15px;border:1px solid var(--n-11);border-radius:4px;padding:10px 16px;color:var(--n-14);background:var(--n-8)}.physical-world-status{position:absolute;bottom:12px;left:14px;right:200px;display:flex;align-items:center;gap:18px;color:var(--n-12);font:9px monospace;pointer-events:none}.physical-scale{display:inline-block;border-left:1px solid var(--n-12);border-right:1px solid var(--n-12);border-bottom:1px solid var(--n-12);text-align:center;padding-bottom:4px;color:var(--n-13)}.physical-hint,.physical-measurement{position:absolute;left:50%;top:65px;transform:translate(-50%);background:#293948ed;border:1px solid var(--n-11);color:var(--n-14);padding:9px 14px;border-radius:4px;font-size:11px;white-space:nowrap}.physical-hint button{color:var(--electrical-text);margin-left:13px}.physical-hint{max-width:calc(100% - 40px);width:max-content;box-sizing:border-box;white-space:normal;line-height:1.5}.physical-measurement{top:auto;bottom:40px;color:var(--electrical-text)}.physical-debug{position:absolute;right:12px;bottom:50px;width:225px;background:#1b2936e8;border:1px solid var(--n-10);border-radius:4px;padding:8px 11px;color:var(--n-12);font-size:10px}.physical-debug summary{cursor:pointer;display:flex;gap:7px;align-items:center}.physical-debug dl{display:grid;grid-template-columns:1fr auto;gap:7px 10px;padding-top:10px}.physical-debug dd{margin:0;color:var(--n-14);text-align:right;font-family:monospace}.physical-debug p{font-size:9px;line-height:1.5;border-top:1px solid var(--n-9);padding-top:7px}.danger-text{color:var(--thermal-text)}@media(max-width:1000px){.physical-mode-caption{display:none}.physical-tool-buttons{gap:0}.physical-tool-buttons button{min-width:25px}.physical-toolbar{gap:5px}.physical-world-status>span:nth-child(2){display:none}}@media(max-width:650px){.physical-toolbar{left:6px;right:6px}.physical-tool-buttons button{min-width:23px}.physical-tool-buttons i{margin:0 2px}.physical-tool-buttons button:nth-last-child(-n+2){display:none}.physical-overlays summary{font-size:0;gap:0}.physical-debug{width:190px;right:7px;bottom:47px}.physical-world-status{font-size:8px;gap:7px;right:175px}.physical-scale{display:none}}.solver-status.over-budget strong:last-child{color:var(--electrical-text)}.speed-control select{width:32px}.advance-control{display:flex;align-items:center;gap:5px;height:30px;margin-left:6px;padding:0 8px;border:1px solid var(--n-10);border-radius:3px;color:var(--n-13);font-size:10px}.advance-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--n-14);font:10px var(--mono);cursor:pointer;border:0}.advance-control select option{background:var(--n-4)}.advance-mode{font:8px var(--mono);letter-spacing:.6px;color:var(--n-12)}.transport .advance-button.advancing{color:var(--electrical-text);border-color:var(--n-10);gap:6px}.param-group>summary{list-style:none;margin-bottom:4px}.param-group>summary::-webkit-details-marker{display:none}.param-group>summary:after{content:"▾";color:var(--n-11)}.param-group:not([open])>summary:after{content:"▸"}.property-row{flex-wrap:wrap}.property-label{display:inline-flex;align-items:center;gap:5px;cursor:help;min-width:0;flex:1}.property-label svg{color:var(--n-12);flex-shrink:0}.param-badge{font:7.5px var(--mono);font-style:normal;letter-spacing:.4px;text-transform:uppercase;color:var(--n-13);border:1px solid var(--n-10);border-radius:2px;padding:0 3px}.param-badge.info{color:var(--n-12);border-color:var(--n-10)}.property-row.derived .number-field{border-style:dashed}.lock-reason{flex-basis:100%;font-size:9.5px;line-height:1.45;color:var(--n-12)}.lock-reason.hint{color:var(--electrical)}.number-field.engineering{width:118px}.number-field.has-error{border-color:var(--fault)}.property-row select{max-width:158px}.preset-select{margin-top:7px}.preset-actions{display:grid;gap:6px;margin-top:10px}.preset-actions form,.preset-actions div{display:flex;gap:5px;flex-wrap:wrap}.preset-actions input{flex:1;min-width:90px;font-size:10px;padding:5px 7px;background:var(--n-4);color:var(--n-15);border:1px solid var(--n-9);border-radius:3px}.preset-actions button{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:5px 8px;background:var(--n-5);color:var(--n-14);border:1px solid var(--n-9);border-radius:3px}.preset-actions button:disabled{opacity:.5}.rating-bar{margin:9px 0;font-size:10.5px;color:var(--n-13)}.rating-bar>div{display:flex;justify-content:space-between;gap:6px;margin-bottom:4px}.rating-bar strong{font:10.5px var(--mono);color:var(--n-14);font-weight:400}.rating-bar i{display:block;height:4px;background:var(--n-7);border-radius:2px;overflow:hidden}.rating-bar b{display:block;height:100%;background:var(--n-13)}.rating-bar.near b{background:var(--electrical-text)}.rating-bar.over b{background:var(--fault-text)}.field-hint.warn{color:var(--thermal-text)}.section-label>span{display:inline-flex;align-items:center;gap:5px}.wire-hint{padding:0 17px}.environment-panel{border-top:1px solid var(--n-8)}@media(max-width:900px){.advance-mode{display:none}}.text-parameter{flex-basis:100%;font:10.5px var(--mono);padding:6px 8px;background:var(--n-4);color:var(--n-15);border:1px solid var(--n-10);border-radius:3px}.learning-dialog{width:min(1040px,94vw);max-height:90vh;overflow-y:auto;padding:28px;border:1px solid var(--n-10);border-radius:12px;background:var(--n-6);box-shadow:0 24px 90px #0009}.learning-dialog h2{margin:8px 0 0;font-size:25px}.learning-dialog h3{display:flex;align-items:center;gap:8px;color:var(--n-15)}.learning-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.learning-filters button{padding:8px 12px;border:1px solid var(--n-10);border-radius:20px;color:var(--n-14)}.learning-filters button[aria-pressed=true]{background:var(--n-10);border-color:var(--ok);color:var(--n-15)}.example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.example-card{display:flex;flex-direction:column;padding:20px;border:1px solid var(--n-10);border-radius:8px;background:var(--n-7)}.example-card h3{margin:12px 0 6px;font-size:18px}.example-card p,.guidebook-columns p{color:var(--n-14);font-size:13px;line-height:1.7}.example-card .primary-button{margin-top:auto;justify-content:space-between}.try-next{display:flex;align-items:flex-start;gap:9px;margin:10px 0 20px;color:var(--electrical-text)}.try-next svg{flex-shrink:0;margin-top:4px}.try-next p{margin:0}.try-next strong{display:block;color:var(--electrical-text);font-size:11px}.guidebook-dialog{width:min(850px,94vw)}.mission-story{color:var(--electrical-text);font-size:18px;line-height:1.6;max-width:650px}.mission-stats{display:flex;gap:24px;padding:14px 0;border-top:1px solid var(--n-10);border-bottom:1px solid var(--n-10);color:var(--ok-text)}.mission-stats span{display:flex;align-items:center;gap:6px}.guidebook-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:12px}.mission-objectives{list-style:none;padding:0}.mission-objectives li{display:flex;gap:8px;margin:12px 0;font-size:13px;color:var(--n-14);line-height:1.5}.mission-objectives svg{flex-shrink:0;margin-top:2px;color:var(--ok-text)}.mission-hint{margin:10px 0;border:1px solid var(--n-10);border-radius:6px}.mission-hint summary{padding:13px;cursor:pointer;color:var(--electrical-text);font-size:12px}.mission-hint p{padding:0 13px 13px;margin:0}.learning-footer{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.mission-checks{border-top:1px solid var(--n-10);margin-top:16px;font-size:13px;color:var(--n-14)}@media(max-width:800px){.example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.example-grid,.guidebook-columns{grid-template-columns:1fr}.learning-dialog{padding:18px}.mission-stats{gap:12px;font-size:12px}}.learning-footer .primary-button{width:auto;padding:10px 22px}.learning-footer .text-link{white-space:nowrap}.lab-app{background:var(--n-1)}.app-header{height:56px;gap:14px;padding:0 14px;background:var(--n-2);border-bottom:1px solid var(--n-7)}.brand{min-width:0;gap:10px}.brand-mark{width:32px;height:32px;border-radius:var(--r-md);background:var(--n-6);border:1px solid var(--n-9);color:var(--n-15)}.brand>span:last-child{font-size:15px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.brand small{font-size:var(--fs-xs);letter-spacing:0;color:var(--n-13);font-weight:400;margin-top:1px}.header-divider{margin:0;background:var(--n-7)}.header-menu,.file-menu summary{color:var(--n-14);font-size:var(--fs-sm)}.header-project{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--fs-sm)}.header-project .project-name{font-weight:600;max-width:220px;color:var(--n-15)}.header-project input{width:200px;padding:5px 8px;border:1px solid var(--n-10);background:var(--n-0);border-radius:var(--r-sm)}.save-state{font-size:var(--fs-xs);color:var(--n-13)}.mode-badge{margin:0;font-size:var(--fs-xs);letter-spacing:0;padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--n-9);color:var(--n-14);white-space:nowrap}.mode-badge.challenge{border-color:rgb(var(--electrical-rgb) / .5);color:var(--electrical-text);background:rgb(var(--electrical-rgb) / .1)}.header-transport{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.header-transport .transport{gap:6px}.transport>button{width:36px;height:36px;border-radius:var(--r-md);border:1px solid var(--n-9);background:var(--n-4);color:var(--n-14)}.transport>button:hover:not(:disabled){background:var(--n-6);color:var(--n-15)}.transport .run-button,.transport .run-button:hover{width:auto;min-width:96px;height:38px;padding:0 18px 0 14px;border:none;border-radius:var(--r-md);background:var(--ok);color:var(--on-accent);font-size:var(--fs-md);font-weight:600}.transport .run-button:hover:not(:disabled){background:var(--ok-text);color:var(--on-accent)}.transport .run-button.is-running,.transport .run-button.is-running:hover{background:var(--ok);border:none;color:var(--on-accent)}.control-divider{height:22px;margin:0 4px;background:var(--n-9)}.speed-control>span{display:none}.speed-control{height:36px;padding:0 10px;border:1px solid var(--n-9);border-radius:var(--r-md);background:var(--n-4);color:var(--n-13);font-size:var(--fs-sm);gap:6px}.speed-control select{width:40px;font:500 var(--fs-sm) var(--mono);color:var(--n-15)}.speed-control select option,.advance-control select option{background:var(--n-4)}.transport .advance-button{height:36px;margin-left:0;padding:0 12px;border:1px solid var(--n-9);border-radius:var(--r-md);background:var(--n-4);color:var(--n-14);font-size:var(--fs-sm)}.advance-control{height:36px;margin-left:0;padding:0 10px;border:1px solid var(--n-9);border-radius:var(--r-md);background:var(--n-4);color:var(--n-14);font-size:var(--fs-sm);gap:8px}.advance-control select{font:var(--fs-sm) var(--sans);color:var(--n-14)}.advance-mode{font:500 var(--fs-xs) var(--sans);letter-spacing:0;color:var(--n-13)}.header-transport .simulation-clock{margin-left:4px;height:36px;display:flex;align-items:center;padding:0 12px;border-radius:var(--r-md);background:var(--n-0);border:1px solid var(--n-7);font:var(--fs-xs) var(--sans);color:var(--n-13)}.header-transport .simulation-clock strong{margin-left:8px;font:500 var(--fs-lg) var(--mono);color:var(--n-15);letter-spacing:0}.import-button{font-size:var(--fs-sm);color:var(--n-14);height:36px;padding:0 10px;border-radius:var(--r-md)}.import-button:hover{background:var(--n-6)}.save-button{height:36px;padding:0 14px;font-size:var(--fs-sm);font-weight:600;background:var(--n-6);border:1px solid var(--n-10);border-radius:var(--r-md);color:var(--n-15)}.save-button:hover{background:var(--n-8)}.help-button{width:36px;height:36px;margin:0;border-radius:var(--r-md);color:var(--n-13)}.app-body{flex:1;min-height:0;display:flex}.app-rail{width:56px;flex:0 0 56px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;background:var(--n-2);border-right:1px solid var(--n-7)}.rail-item{position:relative;width:44px;min-height:44px;flex-direction:column;gap:4px;border-radius:var(--r-md);color:var(--n-13);font-size:var(--fs-xs)}.rail-item:hover{color:var(--n-15);background:var(--n-4)}.rail-item.active{color:var(--n-15);background:var(--n-6)}.rail-item.active:before{content:"";position:absolute;left:-6px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--n-15)}.rail-item span{line-height:1}@media(min-width:851px){.rail-item>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.rail-count{position:absolute;top:1px;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--n-8);color:var(--n-15);font:500 var(--fs-xs) var(--mono);font-style:normal;display:grid;place-items:center}.rail-new{margin-top:auto}.app-rail .mobile-library-button,.app-rail .mobile-inspector-button{display:none}.app-body>.lab-grid{flex:1;min-width:0}@media(min-width:1251px){.lab-grid{grid-template-columns:236px minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) 236px}}.library,.inspector,.telemetry{background:var(--n-3);border-color:var(--n-7)}.engineering-area{background:var(--n-5)}.status-footer{height:30px;padding:0 14px;background:var(--n-2);border-top:1px solid var(--n-7);font-size:var(--fs-xs);color:var(--n-13);letter-spacing:0}.status-footer>div{gap:18px}.status-footer button{font-size:var(--fs-xs);color:var(--n-13)}.status-footer .simulation-caption{width:auto;padding:0;font-size:var(--fs-xs);gap:7px}.status-footer .simulation-caption strong{font-weight:600;color:var(--n-15)}.status-dot{width:8px;height:8px;background:var(--n-11)}.status-dot.running{background:var(--ok);box-shadow:0 0 0 3px rgb(var(--ok-rgb) / .2)}.status-footer .solver-status{font:var(--fs-xs) var(--sans);color:var(--n-13);gap:6px}.status-footer .solver-status strong{font:500 var(--fs-xs) var(--mono);color:var(--n-14)}.status-footer .solver-status i{height:12px;margin:0 4px;background:var(--n-9)}.status-footer .warning-count{font-size:var(--fs-xs)}.status-footer .warning-count.has-warning{color:var(--warning-text)}@media(max-width:1500px){.brand small,.save-state{display:none}}@media(min-width:1051px)and (max-width:1250px){.lab-grid{grid-template-columns:220px minmax(0,1fr) 280px}}@media(max-width:1250px){.advance-control{display:none}}@media(max-width:1050px){.header-menu,.header-divider,.speed-control>span,.import-button span{display:none}.transport .advance-button span{display:none}}@media(max-width:850px){.app-header{height:auto;flex-wrap:wrap;row-gap:8px;padding:8px 12px}.header-transport{order:10;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.brand>span:last-child{display:none}.app-body{flex-direction:column}.app-rail{width:auto;flex:0 0 auto;flex-direction:row;justify-content:space-around;padding:4px 6px;border-right:0;border-bottom:1px solid var(--n-7)}.app-rail{gap:0}.rail-item{flex:1 1 0;width:auto;min-width:0;min-height:48px;padding:0 2px}.rail-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-item.active:before{left:12px;right:12px;top:auto;bottom:-4px;width:auto;height:3px}.rail-new{margin-top:0}.app-rail .mobile-library-button,.app-rail .mobile-inspector-button{display:inline-flex}.app-body>.lab-grid{position:relative}.library,.show-inspector .inspector{position:absolute;top:0;bottom:0;grid-area:auto}.status-footer .solver-status,.status-footer>div:last-child>span{display:none}}.status-footer .engine-status i{display:none}.construction-canvas{background:var(--n-5)}.component-body{fill:var(--n-3);stroke:var(--n-9);stroke-width:1}.component-selected{fill:var(--n-4);stroke:var(--n-15);stroke-width:2;filter:drop-shadow(0 0 6px rgb(var(--n-15-rgb) / .25))}.component-failed{stroke:var(--fault);stroke-width:2}.component-id{font:600 12px var(--mono);letter-spacing:0;fill:var(--n-14)}.domain-electrical .component-id{fill:var(--electrical-text)}.domain-thermal .component-id{fill:var(--thermal-text)}.domain-hydraulic .component-id{fill:var(--hydraulic-text)}.domain-mechanical .component-id{fill:var(--mechanical-text)}.component-caption{font:500 13px var(--sans);fill:var(--n-14)}.live-caption{font:500 12px var(--mono);fill:var(--n-13);letter-spacing:0}.scale-label{font-size:9px;letter-spacing:.2px}.wire-line{stroke:var(--electrical);stroke-width:3;stroke-linecap:round}.connection.thermal .wire-line{stroke:var(--thermal);stroke-width:2.5;stroke-dasharray:6 5}.connection.hydraulic .wire-line{stroke:var(--hydraulic);stroke-width:5}.connection.mechanical .wire-line{stroke:var(--mechanical);stroke-width:4;stroke-dasharray:10 6}.connection.control .wire-line{stroke:var(--n-13);stroke-width:1.5;stroke-dasharray:2 4}.connection:hover .wire-line,.selected-wire .wire-line{stroke-width:5;filter:drop-shadow(0 0 4px rgb(var(--n-15-rgb) / .35))}.connection.electrical:hover .wire-line,.connection.electrical.selected-wire .wire-line{stroke:var(--electrical-text)}.connection.hydraulic:hover .wire-line,.connection.hydraulic.selected-wire .wire-line{stroke:var(--hydraulic-text);stroke-width:7}.connection.mechanical:hover .wire-line,.connection.mechanical.selected-wire .wire-line{stroke:var(--mechanical-text)}.connection.thermal:hover .wire-line,.connection.thermal.selected-wire .wire-line{stroke:var(--thermal-text)}.connection.control:hover .wire-line,.connection.control.selected-wire .wire-line{stroke:var(--n-15);stroke-width:2.5}.flow-line{stroke:var(--electrical-text);stroke-width:2.5;stroke-dasharray:3 21;opacity:.9}.connection.control .flow-line{stroke:var(--n-15)}.terminal{color:var(--electrical)}.terminal.thermal{color:var(--thermal)}.terminal.control{color:var(--n-13)}.terminal.hydraulic{color:var(--hydraulic);fill:var(--n-3);stroke:var(--hydraulic)}.terminal.mechanical{color:var(--mechanical);fill:var(--n-3);stroke:var(--mechanical)}.port-circle{fill:var(--n-3);stroke-width:2}.wire-chip rect{fill:var(--n-2);stroke-width:1}.wire-chip text{font:500 12px var(--mono)}.wire-chip.electrical rect{stroke:rgb(var(--electrical-rgb) / .6)}.wire-chip.electrical text{fill:var(--electrical-text)}.wire-chip.hydraulic rect{stroke:rgb(var(--hydraulic-rgb) / .6)}.wire-chip.hydraulic text{fill:var(--hydraulic-text)}.wire-chip.mechanical rect{stroke:rgb(var(--mechanical-rgb) / .6)}.wire-chip.mechanical text{fill:var(--mechanical-text)}.header-project{flex:1 1 0}.header-project .project-name{min-width:0;justify-content:flex-start}.project-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-transport{flex:0 0 auto}.header-actions{flex:1 1 0;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}@media(max-width:850px){.header-project,.header-actions{flex:0 1 auto}.header-project{flex-grow:1}}.inspector-component{padding:4px 16px 16px}.inspector-icon{width:42px;height:42px;border-radius:var(--r-md);background:var(--n-6);border-color:var(--n-9);color:var(--electrical-text)}.inspector-component h3{font-size:var(--fs-lg);font-weight:600;color:var(--n-15);margin-bottom:2px}.inspector-component .mono{font-size:var(--fs-xs)}.inspector-tabs{height:40px;border-color:var(--n-7)}.inspector-tabs button{font-size:var(--fs-sm);color:var(--n-13)}.inspector-tabs button.active{color:var(--n-15);font-weight:600}.inspector-tabs button.active:after{background:var(--n-15)}.inspector-section{padding:16px;border-bottom:1px solid var(--n-7)}.section-label{color:var(--n-14);font-size:var(--fs-sm);font-weight:600;letter-spacing:0;margin-bottom:12px}.section-label svg{color:var(--n-13)}.live-badge,.paused-badge,.invalid-badge{font:600 var(--fs-xs) var(--sans);letter-spacing:0;padding:2px 8px;border-radius:var(--r-pill);gap:6px}.live-badge{color:var(--ok-text);background:rgb(var(--ok-rgb) / .12)}.live-badge:before{width:6px;height:6px;background:var(--ok)}.invalid-badge{color:var(--warning-text);background:rgb(var(--warning-rgb) / .12)}.primary-reading,.primary-reading.thermal-text,.primary-reading.electrical-text{color:var(--n-15)!important;font-size:40px;font-weight:500;letter-spacing:-.5px}.primary-reading small{font:400 var(--fs-lg) var(--sans);color:var(--n-13)}.reading-caption{font-size:var(--fs-xs);color:var(--n-13);margin-bottom:14px}.measurement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.measurement-list>div{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:9px 10px;border-radius:var(--r-md);background:var(--n-4);font-size:var(--fs-xs);color:var(--n-13);min-width:0}.measurement-list>div>span{line-height:1.3}.measurement-list strong{font:500 var(--fs-md) var(--mono);color:var(--n-15);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.measurement-list small{font:var(--fs-xs) var(--sans);color:var(--n-13)}.rating-bar{margin:10px 0;font-size:var(--fs-xs);color:var(--n-14)}.rating-bar strong{font:500 var(--fs-xs) var(--mono)}.rating-bar i{height:6px;border-radius:3px;background:var(--n-8)}.rating-bar b{background:var(--ok);border-radius:3px}.rating-bar.near b{background:var(--warning)}.rating-bar.over b{background:var(--fault)}.rating-bar.over strong{color:var(--fault-text)}.property-row{font-size:var(--fs-sm);color:var(--n-14);margin:12px 0}.number-field{height:34px;width:128px;min-width:110px;border-color:var(--n-9);background:var(--n-0);border-radius:var(--r-sm)}.number-field:focus-within{border-color:var(--n-12)}.number-field input{font:500 var(--fs-sm) var(--mono);padding:6px 0 6px 10px}.number-field span{font:var(--fs-xs) var(--sans);color:var(--n-13);padding-right:9px}.property-row select,.wide-select{min-height:34px;border-radius:var(--r-sm);font-size:var(--fs-sm)}.param-badge{font:500 11px var(--sans);letter-spacing:0;text-transform:none;border-radius:var(--r-sm);padding:1px 6px}.field-hint{font-size:var(--fs-xs);color:var(--n-13);line-height:1.55}.param-group>summary:after{color:var(--n-13)}.inspector-footer{height:40px;padding:0 16px;font-size:var(--fs-xs);color:var(--n-13);border-top:1px solid var(--n-7)}.inspector-footer strong{font:500 var(--fs-sm) var(--mono);color:var(--n-15)}.panel-heading{font-size:var(--fs-md)}.text-link{font-size:var(--fs-sm)}.physical-inspector input[type=number]::-webkit-inner-spin-button,.physical-inspector input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.physical-inspector input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.physical-tool-section h3{font-size:var(--fs-sm);font-weight:600;letter-spacing:0;color:var(--n-14)}.challenge-dialog,.model-dialog{background:var(--n-3);border-color:var(--n-9);border-radius:var(--r-lg);padding:28px;max-width:980px}.eyebrow{font:500 var(--fs-xs) var(--sans);letter-spacing:0;color:var(--n-13);margin-bottom:6px}.dialog-header h2{font-size:var(--fs-xxl);font-weight:600;letter-spacing:-.2px}.dialog-header>button{width:36px;height:36px;border-radius:var(--r-md);border-color:var(--n-9)}.dialog-intro{font-size:var(--fs-md);color:var(--n-14);max-width:70ch;line-height:1.5}.challenge-cards{gap:16px;align-items:stretch;max-height:none;overflow:visible}.challenge-card{display:flex;flex-direction:column;background:var(--n-4);border-color:var(--n-9);border-radius:var(--r-lg);padding:18px}.challenge-card-top{font:500 var(--fs-xs) var(--sans);letter-spacing:0;color:var(--n-13);align-items:center}.difficulty:first-letter{text-transform:uppercase}.difficulty{display:inline-block;font-size:var(--fs-xs);text-transform:lowercase;color:var(--n-14);border-color:var(--n-9);border-radius:var(--r-pill);padding:2px 9px}.challenge-card h3{font-size:var(--fs-xl);font-weight:600}.challenge-card>p,.challenge-card li{font-size:var(--fs-sm);line-height:1.5;color:var(--n-14)}.challenge-card .challenge-meta{margin-top:auto;padding-top:12px;font-size:var(--fs-xs)}.challenge-card .primary-button{margin-top:12px;min-height:40px;border-radius:var(--r-md);background:var(--ok);color:var(--on-accent);font-weight:600;border:none}.challenge-card .primary-button:hover{background:var(--ok-text);color:var(--on-accent)}.telemetry-tabs button{font-size:var(--fs-sm)}.chart-heading{height:auto;min-height:40px;flex-wrap:wrap;gap:6px 18px;padding:8px 20px 4px;font-size:var(--fs-xs);color:var(--n-13)}.chart-heading label,.chart-heading select,.chart-heading button{font-size:var(--fs-xs)}.chart-heading select{color:var(--n-15)}.chart-heading button{color:var(--n-14)}.chart-heading input[type=range]{accent-color:var(--n-14)}.trace-readouts{font-size:var(--fs-xs)}.trace-plot text{font-family:var(--mono);fill:var(--n-13)}@media(max-width:580px){.transport>button[aria-label="Single simulation step"],.control-divider{display:none}.transport .run-button,.transport .run-button:hover{min-width:84px}.header-transport .simulation-clock{padding:0 10px;font-size:0}.header-transport .simulation-clock strong{margin-left:0;font-size:var(--fs-md)}.chart-heading>span{flex-basis:100%}.show-inspector .inspector{left:0;right:0;top:auto;width:auto;height:min(70%,560px);border-left:0;border-top:1px solid var(--n-9);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -12px 40px #00000080}}
