@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{font-family:IBM Plex Sans,sans-serif;color:#dce4e8;background:#101418;font-synthesis:none;font-weight:400;font-size:14px;--bg: #101418;--panel: #1b2228;--border: #303a42;--muted: #82939f;--green: #99ceb6;--electrical: #dfba76;--thermal: #eaa17b;--blue: #71b1c6;--mono: "IBM Plex Mono", monospace}*{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:#fff}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #99ceb6;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:#8bb9a5}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:#6f828e;border:1px solid #38434c;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:#171d22;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:#283a34;color:#b5dbc8;border:1px solid #475d51;border-radius:6px}.brand>span:last-child{font-size:17px;letter-spacing:1.1px;font-weight:650;line-height:1.15}.brand-light{color:#9bacae;font-weight:400;margin-left:5px}.brand small{display:block;font-size:9px;letter-spacing:1.7px;color:#7e919a;margin-top:4px;font-weight:450}.header-divider{height:20px;width:1px;background:#364149;margin-left:-5px}.header-menu,.file-menu summary{color:#b5c1c9;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}.header-center{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;min-width:0;font-size:13px}.workspace-breadcrumb{color:#7e8f9b}.header-center>svg{color:#596c76}.project-name{padding:4px 0;font-weight:500;white-space:nowrap;max-width:270px;overflow:hidden;text-overflow:ellipsis}.header-center input{width:220px;padding:5px 8px;border:1px solid #618a78;background:#111b20;border-radius:3px}.save-state{font-size:11px;white-space:nowrap;color:#819990;display:flex;align-items:center;gap:4px}.import-button{font-size:13px;color:#b5c1c9}.save-button{font-size:12px;height:32px;padding:0 12px;background:#293c34;border:1px solid #475e51;border-radius:4px;color:#bddcc9;white-space:nowrap}.save-button:hover{background:#354c40}.help-button{color:#84949e;margin-left:-7px;padding:5px}.workspace-bar{height:45px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:#151b20;border-bottom:1px solid var(--border);padding-right:20px}.workspace-tabs{display:flex;align-items:stretch;height:100%;padding-left:16px;gap:3px}.workspace-tab{padding:0 17px;font-size:13px;color:#899ba7;border-left:1px solid transparent;border-right:1px solid transparent;position:relative}.workspace-tab.active{background:#1d252c;color:#d9e6df;border-color:var(--border)}.workspace-tab.active:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:-1px;background:#9fc7af}.workspace-tab.active svg{color:#9dc3b0}.tab-indicator{width:5px;height:5px;background:#8eaf9d;border-radius:50%;margin-left:15px}.tab-count{font:10px var(--mono);background:#2a333b;padding:1px 5px;color:#b8c3cd;border-radius:3px;margin-left:6px}.add-experiment{width:37px;font-size:20px;color:#768a98}.workspace-info{display:flex;align-items:center;gap:10px;font:10px var(--mono);letter-spacing:.5px;color:#94a3ae}.workspace-info>span:first-child{color:#c8ae7f}.workspace-info>span:nth-of-type(2){color:#d2a08b}.workspace-info i{height:10px;width:1px;background:#3d484f}.mode-badge{border:1px solid #344149;border-radius:3px;font-size:9px;letter-spacing:.8px;padding:5px 8px;margin-left:10px;color:#92a6b3}.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:#1b2228;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:#9aabb6}.panel-heading h2{font-weight:500;font-size:13px;color:#d6dee3}.count{font:10px var(--mono);padding:2px 5px;border:1px solid #3a444c;border-radius:3px;color:#9baab5;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:#151c22;border:1px solid #323d45;border-radius:4px;color:#81949f;flex-shrink:0}.search-field input{width:100%;font-size:12px}.search-field input::placeholder{color:#7d8e99}.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:#6f8491;transition:transform .2s}.category-heading .collapsed{transform:rotate(-90deg)}.electrical .category-heading{color:#d5b579}.thermal .category-heading{color:#dba084}.sensors .category-heading{color:#b0a3ce}.category-count{font:10px var(--mono);color:#758a97}.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:#252e35;border-color:#3a4750}.library-component:active{cursor:grabbing}.library-icon{height:35px;width:35px;background:#242b30;border:1px solid #3a4145;border-radius:4px;display:grid;place-items:center;color:#cbb383;flex-shrink:0}.thermal .library-icon{color:#dda386;background:#2b2927;border-color:#453e39}.sensors .library-icon{color:#b4a5ca;background:#292831;border-color:#3c3948}.library-item-copy{flex:1;min-width:0}.library-item-copy strong{font-size:12px;font-weight:450;display:block;white-space:nowrap;color:#c5d0d7}.library-item-copy>span{font:10px var(--mono);color:#7d919e;display:block;margin-top:5px}.add-component{color:#6b7f8b;opacity:0}.library-component:hover .add-component{opacity:1}.drag-component{color:#596b76;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:#a0b1bc}.library-note>svg{margin-top:2px;color:#849b9f}.library-note span span{color:#6f8491}.models-link{height:38px;margin:0 10px 8px;padding:0 7px;justify-content:flex-start;font-size:11px;color:#98aaa9}.library-version{display:flex;justify-content:space-between;padding:11px 16px;font:9px var(--mono);letter-spacing:.6px;color:#6c808e;border-top:1px solid #2e383f}.no-results{color:#93a3ae;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:#141b20}.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:#20292f;border:1px solid #3a474f;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:#8ca1af;border-radius:3px;padding:0;flex-shrink:0}.canvas-toolbar button:hover{background:#344149;color:#d2dce3}.canvas-toolbar button.active{background:#3b5048;color:#c4e2d1}.canvas-toolbar button.active.subtle{background:#2b373c;color:#b3c3cb}.tool-group{display:flex;gap:2px;padding-right:5px;border-right:1px solid #3a454d;margin-right:2px}.tool-group:last-of-type{border:0}.toolbar-spacer{width:8px}.component-body{fill:#1f2930;stroke:#46525b;stroke-width:1}.component-selected{stroke:#93c4b3;stroke-width:1.5;fill:#233038;filter:drop-shadow(0 0 6px #9ec5ab0a)}.component-failed{stroke:#d5797d}.component-id{font:11px var(--mono);fill:#c9d9e0;letter-spacing:.4px}.component-domain{font:8px var(--mono);fill:#9ba8b0;letter-spacing:.5px}.component-state{font:8px var(--mono);fill:#9fb2be;letter-spacing:.7px}.component-caption{font:12px IBM Plex Sans,sans-serif;fill:#bccbd5}.live-caption{font:9px var(--mono);fill:#8299a9;letter-spacing:.15px}.supply-number,.tank-number{font:24px var(--mono);fill:#b4d0bd;letter-spacing:-.7px}.tank-number{fill:#acd1df;font-size:22px}.unit{font:11px var(--mono);fill:#8ca9b6;letter-spacing:0}.scale-label{font:7px var(--mono);fill:#81a0ad;letter-spacing:.5px}.polarity{font:10px var(--mono);fill:#c4ab7e}.meter-number{font:12px var(--mono);fill:#b2c7d4}.terminal{cursor:crosshair;color:#c8a76b}.terminal.thermal{color:#e7a07e}.port-circle{fill:#182127;stroke:currentColor;stroke-width:1.5}.terminal:hover .port-circle,.terminal.pending .port-circle{fill:currentColor;stroke:#fff;stroke-width:2}.terminal:hover{filter:drop-shadow(0 0 5px currentColor)}.wire-line{stroke:#c6a46b;stroke-width:1.7;fill:none;stroke-linejoin:round}.connection.thermal .wire-line{stroke:#da936e;stroke-dasharray:5 4}.wire-hit{stroke:transparent;stroke-width:15;fill:none;cursor:pointer}.connection:hover .wire-line,.selected-wire .wire-line{stroke:#e7d7b2;stroke-width:3}.connection.thermal:hover .wire-line{stroke:#fbc9ac}.flow-line{stroke:#f6d293;stroke-width:2;fill:none;stroke-dasharray:2 23;animation:flow 1.4s linear infinite;opacity:.8}.thermal .flow-line{stroke:#f4be9e;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:#748a99;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:#6a8b7d;border-radius:50%}.canvas-hint{position:absolute;left:18px;bottom:17px;color:#708592;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:#202a32;border:1px solid #3b4850;border-radius:4px;z-index:5}.zoom-controls button{height:27px;width:27px;color:#a1b3bf}.zoom-controls span{width:43px;text-align:center;font:10px var(--mono);color:#b6c5ce}.zoom-controls i{height:14px;width:1px;background:#3c4b55;margin:0 3px}.context-menu{position:absolute;z-index:15;background:#202a31;border:1px solid #44535c;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:#334047}.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:#afc2ce;margin:16px 0 10px}.empty-canvas p{font-size:12px;line-height:1.8;color:#7e95a4}.empty-cross{font:36px var(--mono);color:#5c7f75}.empty-canvas button{pointer-events:auto;border:1px solid #415e50;color:#bed5c7;border-radius:4px;padding:8px 13px;font-size:12px;margin-top:20px;background:#21332c}.selection-info{position:absolute;left:20px;bottom:53px;background:#253d33;border:1px solid #4a6959;border-radius:4px;padding:6px 9px;font-size:11px;display:flex;align-items:center;gap:8px}.selection-info button{color:#b8d7c7;text-decoration:underline;font-size:11px}.inspector{background:#1b232a;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 #4b443b;background:#302d28;color:#d4b277;display:grid;place-items:center;border-radius:5px}.inspector-component.thermal .inspector-icon{color:#dda386;background:#302c29;border-color:#4b4038}.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:#6e838f}.inspector-tabs{border-top:1px solid #303b43;border-bottom:1px solid #303b43;display:flex;height:35px;flex-shrink:0;padding-left:10px;gap:7px}.inspector-tabs button{padding:0 10px;font-size:11px;color:#8398a6;position:relative}.inspector-tabs button.active{color:#c5d6cd}.inspector-tabs button.active:after{position:absolute;content:"";bottom:-1px;left:10px;right:10px;height:2px;background:#a3c8b2}.inspector-scroll{flex:1;min-height:0;overflow:auto}.inspector-section{padding:17px 17px 13px;border-bottom:1px solid #2c383f}.section-label{display:flex;align-items:center;justify-content:space-between;color:#8ca1ae;font-size:9px;letter-spacing:.9px;font-weight:500;margin-bottom:15px}.live-badge,.paused-badge{color:#a7cdb7;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:#9ac3ad}.paused-badge{color:#7b8d96}.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:#b29d8e;font-weight:400}.reading-caption{font-size:11px;color:#8399a6;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:#97aab6}.measurement-list strong{font:11px var(--mono);color:#c7d5de}.measurement-list small{font-size:10px;color:#7e95a3}.property-row{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:11px;color:#b2c0ca;margin:10px 0}.number-field{display:flex;align-items:center;height:28px;min-width:95px;width:102px;border:1px solid #3d4a54;background:#161f26;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:#7a929f;flex-shrink:0;padding-right:7px}.field-hint{font-size:10px;color:#768f9f;line-height:1.6;margin-top:9px}.interface-status{display:flex;align-items:center;gap:7px;font-size:10px;color:#9aa9b1}.interface-status.connected{color:#c5ad94}.inspector-footer{height:37px;flex-shrink:0;padding:0 17px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8299a6;background:#1c262d;border-top:1px solid #303c43}.inspector-footer strong{font:11px var(--mono);color:#b5c5ce}.switch-control{font-size:10px;background:#151f25;border:1px solid #3c4a53;padding:4px 8px;border-radius:3px;color:#a8bdc8}.switch-control i{height:6px;width:6px;border-radius:50%;background:#81919a}.switch-control.on i{background:#a0c9af}.model-description{padding:18px;font-size:12px;color:#95abb8;line-height:1.75}.model-description h3{font-size:14px;color:#c9d7df;margin:10px 0}.model-description p{margin-bottom:16px}.text-link{color:#a6cbb9;font-size:12px;justify-content:flex-start;padding:0}.component-warning{display:flex;gap:8px;align-items:center;background:#402c30;border:1px solid #69414a;color:#e6a6ac;margin:12px;padding:10px;font-size:11px;border-radius:4px}.inspector-empty{padding:65px 25px;color:#8da4b2;line-height:1.7;text-align:center}.inspector-empty h3{font-size:14px;color:#b8cbd4;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:#192128;border-top:1px solid #3c484f;overflow:hidden}.telemetry-top{height:39px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2f3b43;padding:0 17px}.telemetry-tabs{height:100%;display:flex;gap:23px}.telemetry-tabs button{padding:0;font-size:11px;color:#8da1af;position:relative}.telemetry-tabs button.active{color:#d6e1e5}.telemetry-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#a4c8b4}.telemetry-tabs .count{font-size:8px;min-width:16px;padding:1px 4px}.csv-button{font-size:10px;color:#9dafbd;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 #29363f}.telemetry-metrics>div{padding:0 22px;border-right:1px solid #334049}.telemetry-metrics>div:last-child{border-right:0}.telemetry-metrics>div>span{font-size:8px;letter-spacing:.9px;color:#829aaa;display:flex;align-items:center;gap:6px;white-space:nowrap;margin-bottom:6px}.telemetry-metrics strong{font:21px var(--mono);color:#d6e0e6;letter-spacing:-.5px;white-space:nowrap}.telemetry-metrics strong small{font-size:10px;color:#8a9fad;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:#849aa9}.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:#a7bbc8}.chart-heading label>svg{color:#697e8d}.chart{height:103px;padding:0 17px 8px}.chart svg{width:100%;height:100%;overflow:visible}.chart text{font:9px var(--mono);fill:#7d95a5}.chart text.chart-empty{font:11px IBM Plex Sans,sans-serif;fill:#778d9c}.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 #29363f;color:#b8c7d1}.log-row time{font:10px var(--mono);color:#6e8a9d;white-space:nowrap}.event-level{font:9px var(--mono);color:#81a9b9;width:46px;flex-shrink:0}.log-row.error .event-level,.log-row.error>span:last-child{color:#e6a1a4}.log-row.success .event-level,.log-row.success>span:last-child{color:#b0d9bc}.log-row.warning .event-level{color:#dfba76}.energy-panel{display:flex;align-items:center;gap:30px;flex-wrap:wrap;padding:27px 30px}.energy-panel>div>span{font-size:11px;color:#98aebb;display:block;margin-bottom:8px}.energy-panel strong{font:22px var(--mono);color:#c9d9df}.energy-panel small{font-size:12px;color:#839dab}.energy-equals{font:20px var(--mono);color:#729382}.energy-panel .energy-error{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;border-top:1px solid #33424b;padding-top:15px;color:#98baa5}.energy-panel .energy-error>span{margin:0}.energy-error strong{font-size:11px;color:#b5d8c0;margin-left:10px}.energy-error p{font-size:11px;color:#7d96a5;line-height:1.5}.simulation-bar{height:55px;flex-shrink:0;display:flex;align-items:center;border-top:1px solid #39474f;background:#1c262d;padding-right:18px;gap:17px}.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:#b5c5ce}.status-dot{width:5px;height:5px;border-radius:50%;background:#a6b1ad}.status-dot.running{background:#a8d7b9;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:#99aebb}.transport .run-button{width:76px;background:#acd0b9;border:1px solid #c1e0cb;color:#1e342b;border-radius:4px;font-size:12px;font-weight:600;gap:8px}.transport .run-button:hover{background:#c5e3d0;color:#193125}.transport .run-button.is-running{background:#394b42;border:1px solid #5b7564;color:#c7e3d0}.control-divider{width:1px;height:18px;background:#3b4b55;margin:0 8px}.speed-control{display:flex;align-items:center;gap:8px;color:#8198a6;font-size:11px}.speed-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#c5d5de;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 #354750;border-radius:3px;margin-left:10px;color:#a2b5c0}.simulation-clock{margin-left:auto;font:12px var(--mono);color:#78929f;white-space:nowrap}.simulation-clock strong{font-weight:400;color:#c7d8e1;letter-spacing:.2px;margin-left:7px}.solver-status{display:flex;align-items:center;gap:6px;font:8px var(--mono);color:#768f9d;white-space:nowrap}.solver-status strong{font-size:9px;font-weight:400;color:#b9cbd6}.solver-status i{width:1px;height:12px;background:#3c4a54;margin:0 8px}.warning-count{color:#8399a6;font-size:10px;white-space:nowrap;gap:5px}.warning-count.has-warning{color:#d5a486}.status-footer{height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:#141b21;border-top:1px solid #2d3941;padding:0 17px;font-size:9px;color:#728999;letter-spacing:.1px}.status-footer>div{display:flex;align-items:center;gap:20px}.status-footer button{font-size:9px;color:#8299a7;gap:5px;padding:0}.engine-status{color:#95b7a6;display:flex;align-items:center;gap:6px}.engine-status i{width:4px;height:4px;background:#8eb59c;border-radius:50%}.dropdown{position:absolute;left:-12px;top:27px;min-width:250px;background:#222d34;border:1px solid #43535d;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:#bdcdd7}.dropdown button:hover{background:#35434b}.dropdown kbd{margin-left:auto;font-size:9px}.dropdown hr{border:0;border-top:1px solid #3b4c56;margin:6px}.toast{position:fixed;bottom:94px;left:50%;transform:translate(-50%);z-index:110;display:flex;align-items:center;gap:20px;background:#2a3b34;border:1px solid #668271;padding:13px 16px;box-shadow:0 7px 24px #0007;color:#d1e1d7;border-radius:5px;font-size:12px;max-width:min(600px,90vw)}.toast button{padding:0;color:#9fbeaa}.challenge-strip{height:40px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 18px;background:#27362f;border-bottom:1px solid #4b5f51;color:#b8d4bf;font-size:11px}.challenge-number{font:9px var(--mono);border:1px solid #6a7e65;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:#3d4c3e;border-radius:2px;margin:0 7px}.challenge-progress i{display:block;height:100%;background:#b4cf9b;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:#3e2b2e;border:1px solid #865258;color:#e1adb2;padding:10px 12px;border-radius:4px;display:flex;align-items:center;gap:10px;font-size:11px}.solver-error button{margin-left:auto;color:#f0c5ca;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:#1b252d;border:1px solid #465760;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:#94bba5;display:block;margin-bottom:10px}.dialog-header h2{font-size:25px;font-weight:450;letter-spacing:-.5px;color:#dce8e7}.dialog-header>button{height:29px;width:29px;color:#92a8b7;border:1px solid #41535d;border-radius:4px}.dialog-intro{font-size:13px;color:#9cb0be;margin-bottom:25px}.challenge-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.challenge-card{border:1px solid #3c5057;background:#1c2931;padding:20px;border-radius:5px}.challenge-card-top{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);letter-spacing:.5px;color:#a9bcc5}.difficulty{color:#8ea995;font-size:8px;border:1px solid #41584a;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:#c4b283;border-bottom:1px solid #3a474b;margin-bottom:18px}.challenge-illustration span{font:19px var(--mono);color:#a19677}.heat .challenge-illustration{color:#d3a187}.heat .challenge-illustration span{color:#b88f78}.challenge-card h3{font-size:22px;font-weight:450;margin-bottom:12px}.challenge-card>p{font-size:12px;color:#97aebb;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:#b7cad2;display:flex;align-items:center;gap:8px}.challenge-card li svg{color:#8db59e;flex-shrink:0}.challenge-meta{display:flex;align-items:center;gap:24px;color:#91a5ae;font-size:10px;border-top:1px solid #3b4c54;padding-top:17px;margin-bottom:20px}.challenge-meta>span{display:flex;gap:6px;align-items:center}.primary-button{background:#accdb8;color:#1e352a;border:1px solid #c5e0cf;border-radius:4px;padding:9px 13px;font-size:12px;font-weight:500;width:100%}.primary-button:hover{color:#183023;background:#c1dfcd}.challenge-footnote{display:flex;gap:12px;color:#97b8a5;background:#24352d;border:1px solid #405b49;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:#95afa0}.challenge-footnote strong{font-weight:500;color:#b5d2bc}.challenge-dialog>.text-link{margin-top:18px}.model-dialog{max-width:800px}.reference-content{padding-top:7px;color:#a4bac7;font-size:13px;line-height:1.85}.reference-content h3{font-size:16px;font-weight:500;color:#d0dfe4;margin:25px 0 10px}.reference-content p{margin-bottom:13px}.formula{padding:16px;border-left:2px solid #b69e73;background:#172128;font:12px/1.9 var(--mono);color:#d3c6ab;margin-bottom:16px;overflow-x:auto}.mobile-library-button{display:none}.construction-canvas g[data-component]{cursor:move}select option{background:#223039;color:#d2e0e6}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#415460;border-radius:3px}::-webkit-scrollbar-track{background:transparent}::selection{background:#658a76;color:#fff}@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}.header-menu{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-center{font-size:12px}.header-divider{display:none}.workspace-info>span,.workspace-info>i{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}.simulation-bar{gap:12px}.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}.header-center{justify-content:flex-start;padding-left:15px}.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}.workspace-bar{height:42px}.workspace-tabs{padding-left:8px}.workspace-tab{padding:0 13px;font-size:12px}.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:#9cbaab}.simulation-caption{width:auto;padding-left:15px}.simulation-caption strong{display:none}.simulation-bar{gap:12px}.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}.workspace-info .mode-badge{font-size:8px}.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}.brand-light{margin-left:3px}.header-center{display:none}.file-menu{margin-left:auto;margin-right:7px}.save-button{width:31px;padding:0}.save-button span{display:none}.workspace-bar{padding-right:10px}.workspace-tabs{gap:0}.workspace-tab{font-size:11px;gap:5px;padding:0 10px}.tab-indicator{margin-left:5px}.tab-count{margin-left:0}.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}.simulation-bar{gap:5px;padding-right:10px;height:51px}.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:#9cbaab}.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:#d9a08f}.control,.terminal.control{color:#a58ae3}.connection.control .wire-line{stroke:#a58ae3}.connection.control .flow-line{stroke:#d0b8fa}.node-reading{font:10px IBM Plex Mono,monospace;fill:#e9bd6a;paint-order:stroke;stroke:#101418;stroke-width:3px}.bend-handle{fill:#18232b;stroke:#e9bd6a;stroke-width:2;cursor:move}.wide-select{width:100%;padding:7px;background:#151b21;color:#d9e3e9;border:1px solid #303b45;border-radius:3px;font-size:11px}.property-row select{max-width:145px;background:#141b21;color:#dce5eb;border:1px solid #303b45;font-size:10px;padding:5px}.number-field input:disabled{color:#7e909d;cursor:not-allowed}.fault-button{padding:7px 10px;border:1px solid #665443;background:#24201c;color:#e9bd6a;font-size:11px;border-radius:3px}.assembly-tools{border-top:1px solid #303b45;padding:10px;display:grid;gap:7px}.assembly-tools button,.assembly-tools input{font-size:10px;padding:6px;background:#172028;color:#afbdc7;border:1px solid #303b45;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 #303b45;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:#141c22;color:#c7d5dd;border:1px solid #303b45;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:#879ca9}.trace-readouts{display:flex;gap:22px;padding:10px 20px;flex-wrap:wrap}.trace-readouts label{font-size:10px;color:#8c9eac;display:flex;align-items:center;gap:5px}.trace-readouts i{width:5px;height:5px;border-radius:50%}.trace-readouts strong{color:#e1e9ed;font:12px IBM Plex Mono,monospace;margin-left:6px}.trace-readouts small{font-size:9px;color:#8c9eac}.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:#8296a3}.trace-unit{font:10px IBM Plex Mono,monospace;color:#a7b8c3;padding:0 12px}.trace-unit span{margin-left:15px;color:#c7d5dd}.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:#a58ae3}.chart-heading input[type=range]{width:95px;accent-color:#a58ae3}.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:#a58ae3}.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:#8c9eac;padding:12px 0}.runaway-details p{margin:5px 0}.hydraulic .category-heading,.hydraulic-text{color:#75b3cf}.connection.hydraulic .wire-line{stroke:#5e9fbc;stroke-width:3}.connection.mechanical .wire-line{stroke:#9caeb5;stroke-dasharray:9 4}.terminal.hydraulic{fill:#173441;stroke:#78b8d1}.terminal.mechanical{fill:#24303a;stroke:#b1c5cc}.connection.hydraulic.flowing .wire-line{stroke-dasharray:10 5;animation:flow 1.5s linear infinite;animation-direction:inherit}.hydraulic .flow-line{stroke:#8fc3d7;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 #283640}.physical-mode>span{font:10px var(--font-mono, monospace);letter-spacing:.12em;color:#99c7b2;border:1px solid #36594c;border-radius:3px;padding:4px 7px}.physical-mode>span.sim-mode{color:#e9bd6a;border-color:#685833}.physical-mode p{color:#899da9;font-size:11px;line-height:1.6;margin:11px 0 0}.physical-tool-section{padding:15px 16px;border-bottom:1px solid #293641}.physical-tool-section h3{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:600;letter-spacing:.09em;color:#9badb9;margin:0 0 11px}.physical-tool-section h3 small{text-transform:none;letter-spacing:0;font-weight:400;font-size:9px;color:#728894}.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:#1b2933;border:1px solid #34434e;border-radius:4px;font-size:11px;color:#bbcad4}.shape-grid button:hover:not(:disabled),.joint-tool-grid button:hover:not(:disabled),.physical-wide:hover:not(:disabled){border-color:#7196ad;background:#253541}.shape-grid svg{color:#8caabd}.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 #34434e;border-radius:4px;background:#1b2933;color:#bacbd5;font-size:11px}.physical-tool-section details{color:#92a5b3;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:#14212a;border:1px solid #34434e;color:#c5d3dc;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:#9bafbc}.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:#708a99}.physical-field select{max-width:125px}.physical-check{display:flex;gap:7px;align-items:center;font-size:11px;color:#99afbd;line-height:1.6;margin:9px 0}.physical-check input{accent-color:#87b5a3}.physical-equipment{display:flex;align-items:center;gap:9px;width:100%;padding:8px 0;font-size:11px;color:#b4c6d1;text-align:left}.physical-equipment>span{flex:1}.physical-equipment small{display:block;color:#728c9b;font-size:10px;margin-top:2px}.physical-title{padding:18px 16px 14px;position:relative;border-bottom:1px solid #2c3b46}.physical-title>svg{float:left;margin-right:9px;color:#8eabbc}.physical-title h3{font-size:15px;margin:0 0 5px;color:#d3dfe7}.physical-title>span{color:#7b97a8;font-size:10px}.physical-readings{display:grid;grid-template-columns:auto 1fr;gap:10px 7px;font-size:11px;margin:0}.physical-readings dt{color:#819cae}.physical-readings dd{color:#c3d1dc;font-family:var(--font-mono, monospace);text-align:right;margin:0}.physical-empty-inspector{padding:55px 25px;text-align:center;color:#7f99aa;font-size:12px;line-height:1.8}.physical-empty-inspector>svg{color:#536d7e;margin-bottom:15px}.physical-empty-inspector h3{font-size:14px;color:#a3b8c6}.physical-polygon-editor{display:block;font-size:11px;color:#8fa6b5;margin-top:10px}.physical-polygon-editor textarea{display:block;width:100%;min-height:150px;margin-top:6px;background:#14212a;color:#becdd7;border:1px solid #34434e;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 #34434e;border-radius:3px;color:#a3bbc9;font-size:10px}.physical-workspace{background:#18242e;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 #34434e;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:#8da6b8;border-radius:3px}.physical-tool-buttons button.active{background:#35434e;color:#e9bd6a}.physical-tool-buttons button:hover:not(:disabled){background:#2b3b49}.physical-tool-buttons i{height:18px;width:1px;background:#3b4a56;margin:0 4px}.physical-mode-caption{font:10px monospace;color:#9cbaac;white-space:nowrap}.physical-mode-caption small{color:#7b92a2}.physical-overlays{font-size:10px}.physical-overlays summary{cursor:pointer;display:flex;align-items:center;gap:5px;color:#9eb7c7}.physical-overlays>div{position:absolute;right:0;top:37px;padding:10px 14px;background:#1c2c39;border:1px solid #3b4a56;border-radius:4px;min-width:160px}.physical-overlays label{display:flex;align-items:center;gap:6px;padding:4px 0;color:#adbfcb}.physical-overlays input{accent-color:#8bb5a4}.physical-empty{position:absolute;width:min(390px,80%);left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:#7e97a8;font-size:12px;line-height:1.8}.physical-empty h3{font-size:17px;color:#b9cbd6;font-weight:500}.physical-empty button{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;margin-top:15px;border:1px solid #466171;border-radius:4px;padding:10px 16px;color:#a9c3d2;background:#243541}.physical-world-status{position:absolute;bottom:12px;left:14px;right:200px;display:flex;align-items:center;gap:18px;color:#7896a8;font:9px monospace;pointer-events:none}.physical-scale{display:inline-block;border-left:1px solid #849eae;border-right:1px solid #849eae;border-bottom:1px solid #849eae;text-align:center;padding-bottom:4px;color:#9bb3c3}.physical-hint,.physical-measurement{position:absolute;left:50%;top:65px;transform:translate(-50%);background:#293948ed;border:1px solid #637b89;color:#c0d3de;padding:9px 14px;border-radius:4px;font-size:11px;white-space:nowrap}.physical-hint button{color:#e9bd6a;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:#e9bd6a}.physical-debug{position:absolute;right:12px;bottom:50px;width:225px;background:#1b2936e8;border:1px solid #34434e;border-radius:4px;padding:8px 11px;color:#849eaf;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:#b7cbd7;text-align:right;font-family:monospace}.physical-debug p{font-size:9px;line-height:1.5;border-top:1px solid #32424e;padding-top:7px}.danger-text{color:#dba58f}@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:#e9bd6a}.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 #354750;border-radius:3px;color:#a2b5c0;font-size:10px}.advance-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:#c5d5de;font:10px var(--mono);cursor:pointer;border:0}.advance-control select option{background:#151b21}.advance-mode{font:8px var(--mono);letter-spacing:.6px;color:#7f97a4}.transport .advance-button.advancing{color:#e9bd6a;border-color:#665443;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:#63798a}.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:#6f8594;flex-shrink:0}.param-badge{font:7.5px var(--mono);font-style:normal;letter-spacing:.4px;text-transform:uppercase;color:#9ac3ad;border:1px solid #3c5a4c;border-radius:2px;padding:0 3px}.param-badge.info{color:#a59a83;border-color:#5a5242}.property-row.derived .number-field{border-style:dashed}.lock-reason{flex-basis:100%;font-size:9.5px;line-height:1.45;color:#7c909c}.lock-reason.hint{color:#b39d74}.number-field.engineering{width:118px}.number-field.has-error{border-color:#b36b5f}.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:#151b21;color:#d9e3e9;border:1px solid #303b45;border-radius:3px}.preset-actions button{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:5px 8px;background:#172028;color:#afbdc7;border:1px solid #303b45;border-radius:3px}.preset-actions button:disabled{opacity:.5}.rating-bar{margin:9px 0;font-size:10.5px;color:#97aab6}.rating-bar>div{display:flex;justify-content:space-between;gap:6px;margin-bottom:4px}.rating-bar strong{font:10.5px var(--mono);color:#c7d5de;font-weight:400}.rating-bar i{display:block;height:4px;background:#222d34;border-radius:2px;overflow:hidden}.rating-bar b{display:block;height:100%;background:#8fbfa6}.rating-bar.near b{background:#e9bd6a}.rating-bar.over b{background:#e26d72}.rating-bar.over strong{color:#eba29a}.field-hint.warn{color:#e2a28f}.section-label>span{display:inline-flex;align-items:center;gap:5px}.wire-hint{padding:0 17px}.environment-panel{border-top:1px solid #2c383f}@media(max-width:900px){.advance-mode{display:none}}.text-parameter{flex-basis:100%;font:10.5px var(--mono);padding:6px 8px;background:#161f26;color:#d9e3e9;border:1px solid #3d4a54;border-radius:3px}.learning-dialog{width:min(1040px,94vw);max-height:90vh;overflow-y:auto;padding:28px;border:1px solid #43535d;border-radius:12px;background:#1c282f;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:#e7eee9}.learning-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.learning-filters button{padding:8px 12px;border:1px solid #42565d;border-radius:20px;color:#b6c8cc}.learning-filters button[aria-pressed=true]{background:#345447;border-color:#75b69a;color:#e0f5e9}.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 #384b54;border-radius:8px;background:#233139}.example-card h3{margin:12px 0 6px;font-size:18px}.example-card p,.guidebook-columns p{color:#b7c7cd;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:#e9bd6a}.try-next svg{flex-shrink:0;margin-top:4px}.try-next p{margin:0}.try-next strong{display:block;color:#e9bd6a;font-size:11px}.guidebook-dialog{width:min(850px,94vw)}.mission-story{color:#e4d0a5;font-size:18px;line-height:1.6;max-width:650px}.mission-stats{display:flex;gap:24px;padding:14px 0;border-top:1px solid #3c5058;border-bottom:1px solid #3c5058;color:#95d5b3}.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:#c2d1d5;line-height:1.5}.mission-objectives svg{flex-shrink:0;margin-top:2px;color:#82bda0}.mission-hint{margin:10px 0;border:1px solid #40565f;border-radius:6px}.mission-hint summary{padding:13px;cursor:pointer;color:#e9bd6a;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 #40565f;margin-top:16px;font-size:13px;color:#b7c7cd}@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}
