:root{color-scheme:light;--navy:#172c42;--teal:#078b95;--accent:#078a9b;--ink:#24374a;--muted:#758391;--line:#d9e0e7;--panel:#fff;--soft:#f4f6f9;--tree-width:226px;--settings-width:282px;--bottom-height:193px;font:12px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--soft)}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:disabled{opacity:.38;cursor:not-allowed}button:hover:not(:disabled){background:#e5edf2}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #149aaa;outline-offset:-1px}input,select,textarea{border:1px solid #cdd7df;border-radius:3px;background:white;padding:5px 7px;min-width:0;max-width:100%}input[type=checkbox]{accent-color:var(--teal)}input[type=range]{accent-color:var(--teal);padding:0}select{padding-right:22px}textarea{resize:vertical;min-height:55px;line-height:1.65}kbd{font:10px/1.4 ui-monospace,monospace;color:#83909b;padding:1px 3px;border:1px solid #dae0e7;border-radius:3px}.spacer{flex:1}#app{height:100dvh;min-width:760px;display:flex;flex-direction:column}
.titlebar{height:42px;background:var(--navy);color:#d4dde6;display:flex;align-items:center;gap:20px;padding:0 15px;flex-shrink:0}.brand{display:flex;align-items:center;gap:8px;color:#fff;font-size:18px;font-weight:650;letter-spacing:-.45px;line-height:1}.brand-light{font-weight:350}.brand-mark{font-size:28px;color:#7de2df;line-height:1;transform:translateY(-1px)}.edition{display:block;font-size:7px;letter-spacing:2.3px;margin-top:4px;color:#94b3c3;font-weight:500}.quick-actions{display:flex;align-items:center;gap:1px}.quick-actions button{color:#b7c9d6;font-size:17px;padding:3px 7px;border-radius:3px}.quick-actions button:hover,.title-right button:hover{background:#2a4157!important}.quick-actions>span{height:17px;border-left:1px solid #3a4c60;margin:0 5px}#document-title{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;max-width:35%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#c1cdd8}.title-right{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;color:#a9bccb}.title-right button{border:1px solid #687c8c;border-radius:50%;font-size:10px;width:17px;height:17px;padding:0;margin-left:15px;color:#c5d6e3}.local-dot{width:5px;height:5px;background:#5ac4ac;border-radius:50%}.ribbon-tabs{height:32px;border-bottom:1px solid var(--line);display:flex;align-items:stretch;background:#fff;flex-shrink:0;padding-right:17px}.ribbon-tabs>button{padding:0 16px;font-size:11px;position:relative}.ribbon-tabs>button.active{color:var(--teal);font-weight:600}.ribbon-tabs>button.active:after{content:"";position:absolute;bottom:0;height:2px;background:var(--teal);left:14px;right:14px}.ribbon-tabs .file-tab{background:#edf3f6;color:#344f65;font-weight:600;padding:0 24px}.dimension-badge{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--teal);font-size:11px}.dimension-badge span{color:#8a97a3;font-size:8px;letter-spacing:1px;font-weight:500}
.ribbon{height:91px;display:flex;gap:0;background:linear-gradient(#fff,#f6f8fa);border-bottom:1px solid #cdd7df;flex-shrink:0;padding:7px 10px 3px;overflow-x:auto;overflow-y:hidden}.ribbon-group{border-right:1px solid #dce3e8;padding:0 11px;display:flex;flex-direction:column;justify-content:space-between;min-width:max-content}.ribbon-group:last-child{border:0}.ribbon-controls{display:flex;align-items:center;gap:3px;height:54px}.ribbon-label{text-align:center;font-size:9px;color:#82909e;letter-spacing:.1px;line-height:15px}.ribbon-button{height:55px;min-width:51px;padding:3px 8px;border-radius:3px;display:flex;flex-direction:column;align-items:center;gap:4px;white-space:nowrap;font-size:10px;line-height:1.25}.ribbon-button .ribbon-icon{font-size:23px;line-height:26px;color:#537287;font-weight:300}.ribbon-button.primary{background:#078b94;color:#fff;min-width:74px;margin-right:4px}.ribbon-button.primary .ribbon-icon{color:#fff}.ribbon-button.primary:hover{background:#066e79}.ribbon-button.active{background:#dfedf2;color:#067c89}.ribbon-button.thermal .ribbon-icon{color:#d68b46}.ribbon-button.electric .ribbon-icon{color:#2993b4}.ribbon-stack{display:flex;flex-direction:column;gap:3px}.ribbon-small{display:flex;align-items:center;gap:7px;text-align:left;padding:4px 7px;font-size:10px;white-space:nowrap}.ribbon-small>span:first-child{width:15px;color:#668297;font-size:13px}.ribbon-select{font-size:10px;width:166px;padding:4px 5px}.ribbon-note{font-size:9px;color:#87949f;max-width:160px;white-space:normal;line-height:1.4}
.workspace{display:grid;grid-template-columns:var(--tree-width) 4px var(--settings-width) 4px minmax(260px,1fr);flex:1;min-height:0}.panel{background:var(--panel);min-width:0;min-height:0}.panel-heading{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#f4f6f8;border-bottom:1px solid var(--line);font-weight:600;font-size:11px}.panel-heading button{color:#7c8b98;font-size:15px;padding:0 3px}.tree-panel{display:flex;flex-direction:column}.tree-search{margin:10px 10px 8px;border:1px solid #dfe5eb;border-radius:4px;display:flex;align-items:center;padding:0 6px;gap:3px;height:28px}.tree-search>span{font-size:20px;line-height:1;color:#8a9baa}.tree-search input{border:0;background:transparent;font-size:10px;padding:2px 4px;flex:1;width:0}.tree-search kbd{white-space:nowrap;border:0;font-size:9px}.tree{flex:1;overflow:auto;padding:4px 0 10px}.tree-node{display:flex;align-items:center;width:100%;text-align:left;height:27px;font-size:11px;white-space:nowrap;gap:6px;position:relative}.tree-node .tree-label{overflow:hidden;text-overflow:ellipsis}.tree-node.selected{background:#e1edf3;color:#126478}.tree-node.selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal)}.tree-arrow{font-size:8px;color:#8fa0ad;width:9px;text-align:center}.tree-icon{width:15px;text-align:center;font-size:14px;color:#758da0}.tree-icon.heat{color:#d99147}.tree-icon.electric{color:#3c9ec1}.tree-icon.green{color:#70a18c}.tree-icon.result{color:#9477ac}.tree-icon.shape{color:#6490ad}.tree-check{margin-left:auto;margin-right:12px;font-size:10px;color:#4d9c8c}.tree-count{font-size:9px;color:#8997a3;margin-left:auto;margin-right:10px}.model-footer{margin:8px 12px 13px;border-top:1px solid #e4e9ee;padding-top:12px;display:flex;gap:9px;align-items:center}.tiny-orbit{color:#5d9caa;font-size:22px}.model-footer strong{display:block;font-size:10px;font-weight:500}.model-footer div span{display:block;font-size:9px;color:#8b99a4;margin-top:2px}.splitter{background:#e3e8ed;cursor:col-resize;border-left:1px solid #d4dde4;border-right:1px solid #f8fafc;z-index:5}.splitter:hover,.horizontal-splitter:hover{background:#add6df}.settings-panel{overflow:auto}.settings-title{display:flex;align-items:center;gap:10px;padding:17px 14px 14px}.settings-title .setting-symbol{height:34px;width:34px;display:flex;align-items:center;justify-content:center;background:#e9f3f4;color:var(--teal);border:1px solid #daeaed;border-radius:5px;font-size:20px}.settings-title h2{font-weight:600;font-size:14px;margin:0;line-height:1.3}.settings-title p{margin:3px 0 0;color:#8a98a5;font-size:9px}.settings-section{border-top:1px solid #e3e8ec;padding:12px 13px}.settings-section h3{font-size:10px;letter-spacing:.3px;margin:0 0 12px;display:flex;align-items:center;gap:6px;color:#536b7e}.settings-section h3:before{content:"⌄";font-size:11px;color:#8b9aa6}.form-row{margin-bottom:10px}.form-row label{display:block;font-size:10px;color:#526779;margin-bottom:4px}.form-row input,.form-row select,.form-row textarea{width:100%;font-size:11px;height:28px}.form-row textarea{height:auto;font:10px/1.6 ui-monospace,monospace}.form-row .field-unit{font-size:9px;color:#94a0aa;float:right}.form-row small{display:block;margin-top:4px;color:#8e9ba7;font-size:9px;line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-grid .form-row{margin-bottom:4px}.equation{border:1px solid #e0e7ec;background:#f5f8fa;padding:10px 6px;text-align:center;font:italic 14px/1.9 Georgia,serif;color:#37556c;margin:2px 0 8px;border-radius:3px}.equation sup{font-size:10px}.help-text{font-size:10px;line-height:1.65;color:#82919d;margin:8px 0}.settings-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:5px}.button{border:1px solid #cdd9e0;border-radius:3px;background:#f7fafc;padding:6px 10px;font-size:10px}.button.teal{background:var(--teal);color:white;border-color:var(--teal)}.button.teal:hover{background:#087681}.button.danger{color:#ba6368}.selection-box{border:1px solid #d6e2e8;background:#f7fbfc;padding:7px 9px;font-size:10px;color:#588394;min-height:31px;display:flex;align-items:center;gap:7px}.selection-box:before{content:"▦";color:#269aa7}.badge{padding:2px 6px;font-size:9px;line-height:1.3;border-radius:3px;color:#428b7f;background:#eaf5f1}.warning{background:#fff6e5;border:1px solid #f0ddba;padding:8px 10px;color:#9d772f;font-size:10px;line-height:1.6;border-radius:3px}.switch-row{display:flex;align-items:center;gap:7px;font-size:11px;margin:8px 0}.info-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.info-metric{border:1px solid #e2e9ef;padding:9px;border-radius:4px;background:#fafcfd}.info-metric strong{font-weight:600;font-size:17px;display:block;color:#314f61}.info-metric span{font-size:9px;color:#83929d}.param-row{display:grid;grid-template-columns:63px minmax(80px,1fr) 20px;gap:4px;margin-bottom:5px}.param-row input{width:100%;font-size:10px;padding:5px}.param-row button{font-size:14px;color:#9a7479;padding:0}.param-value{font:9px ui-monospace,monospace;color:#6d8998;margin:-1px 0 9px 2px}.mini-table{width:100%;font-size:10px;border-collapse:collapse}.mini-table td,.mini-table th{text-align:left;padding:5px;border-bottom:1px solid #e8edf1}.mini-table th{font-weight:500;color:#83929f}.check-line{display:flex;align-items:center;gap:7px;margin:8px 0;font-size:10px}.empty-state{color:#8a98a5;text-align:center;padding:28px 16px;font-size:11px;line-height:1.8}.empty-state strong{display:block;font-size:13px;font-weight:500;color:#567081;margin-bottom:5px}
.main-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff}.view-tabs{height:34px;display:flex;align-items:stretch;flex-shrink:0;background:#f0f3f6;border-bottom:1px solid #d7e0e7}.view-tabs>button{padding:0 14px;border-right:1px solid #dce3e9;font-size:10px;color:#738695}.view-tabs>button.active{background:#fff;color:#326c80;border-top:2px solid #218fa2;padding-top:0;border-bottom:1px solid white;margin-bottom:-1px}.view-tabs>button:first-child{min-width:155px}.render-status{align-self:center;font-size:9px;color:#8495a2;margin-right:12px;display:flex;align-items:center;gap:5px;white-space:nowrap}.render-status:before{content:"";width:5px;height:5px;background:#39a58e;border-radius:50%}.settings-toggle{display:none}.graphics-toolbar{height:36px;border-bottom:1px solid #e0e7ee;display:flex;align-items:center;padding:0 8px;gap:7px;flex-shrink:0;background:#fff}.graphics-toolbar button{font-size:17px;line-height:1;padding:5px 7px;color:#607d90;border-radius:2px}.graphics-toolbar button.active{background:#e4eff3;color:#15869a}.tool-group{display:flex;border-right:1px solid #dce3e8;padding-right:6px;gap:1px}.graphics-toolbar select{font-size:10px;padding:3px 20px 3px 7px;border-color:#dce4ea;max-width:180px;min-width:90px;height:25px}.viewport{position:relative;flex:1;min-height:155px;overflow:hidden;background-color:#f7f9fb;background-image:radial-gradient(#c8d5df85 .6px,transparent .6px);background-size:20px 20px}.viewport canvas{position:absolute;top:0;left:0;display:block;touch-action:none}#overlay-canvas{z-index:2;cursor:crosshair}.plot-heading{position:absolute;left:22px;top:19px;z-index:3;pointer-events:none}.plot-eyebrow{font-size:8px;color:#8297a6;letter-spacing:1.05px;font-weight:600}.plot-heading h1{font-size:20px;font-weight:450;letter-spacing:-.5px;margin:5px 0 3px;color:#324d61}.plot-heading p{font-size:10px;color:#82929f;margin:0}.result-pill{position:absolute;right:16px;top:18px;display:flex;align-items:center;gap:5px;background:#eff6f3;border:1px solid #d9e8e2;color:#438874;z-index:3;pointer-events:none;font-size:9px;padding:4px 8px;border-radius:11px}.pulse{background:#5baf93;width:5px;height:5px;border-radius:50%}.tool-hint{position:absolute;bottom:11px;left:80px;font-size:9px;color:#8c9ca9;pointer-events:none;z-index:3;max-width:calc(100% - 270px)}.probe-tooltip{position:absolute;z-index:6;pointer-events:none;background:#1d3449eb;color:#fff;border-radius:4px;font-size:10px;padding:7px 9px;box-shadow:0 3px 12px #1c30451f;white-space:nowrap}.busy-overlay{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);background:#fff;border:1px solid #cfdde5;box-shadow:0 4px 16px #25436112;border-radius:5px;padding:10px 12px 9px;display:flex;gap:12px;align-items:center;z-index:7;min-width:300px;font-size:10px;max-width:85%}.busy-overlay[hidden]{display:none}.busy-overlay span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.busy-overlay button{color:#518091;border-left:1px solid #d5dfe5;padding:1px 3px 1px 12px;font-size:10px}.busy-track{position:absolute;top:0;left:0;right:0;height:2px;overflow:hidden;border-radius:4px}.busy-track div{height:100%;width:30%;background:#2eacb3;animation:busy 1.5s ease-in-out infinite}@keyframes busy{from{transform:translateX(-100%)}to{transform:translateX(440%)}}.framebar{height:31px;border-top:1px solid #dfe6ec;display:flex;align-items:center;gap:9px;padding:0 13px;flex-shrink:0;background:#fbfcfd}.dataset-label{font-size:8px;letter-spacing:.8px;color:#8499a6}.framebar select{font-size:10px;border:0;background:transparent;padding:2px 20px 2px 0;max-width:220px}.framebar input[type=range]{width:130px;height:10px}.framebar>span:last-child{font-size:9px;color:#8094a4;min-width:105px;white-space:nowrap}.framebar button{color:#528295;font-size:10px;padding:2px}.horizontal-splitter{height:4px;background:#e6ebef;border-top:1px solid #d6dfe6;cursor:row-resize;flex-shrink:0}.diagnostics{height:var(--bottom-height);flex-shrink:0;display:flex;flex-direction:column;min-height:80px;background:#fff}.diagnostic-tabs{display:flex;align-items:stretch;height:32px;border-bottom:1px solid #e0e6eb;flex-shrink:0}.diagnostic-tabs button{font-size:10px;padding:0 13px;color:#8694a0;border-right:1px solid transparent;white-space:nowrap}.diagnostic-tabs button.active{color:#286d81;font-weight:600;border-bottom:2px solid #158e9f;background:#f8fbfc}.diagnostic-tabs button span{font-size:8px;font-weight:500;display:inline-block;padding:0 4px;background:#e6eef2;margin-left:5px;color:#6991a0;border-radius:3px}#diagnostic-content{flex:1;overflow:auto;min-height:0}.log-row{display:flex;gap:13px;font-size:10px;padding:4px 15px;border-bottom:1px solid #f0f3f5;align-items:baseline}.log-row .time{color:#9cabb6;font:9px ui-monospace,monospace;min-width:63px}.log-row .level{font-size:8px;letter-spacing:.3px;color:#73939d;min-width:43px}.log-row.warning .level,.log-row.warning .message{color:#b5893f}.log-row.error .level,.log-row.error .message{color:#bf5c62}.log-row.complete .level{color:#3b9c7b}.log-row .message{color:#6f8290;overflow-wrap:anywhere}.data-table{border-collapse:collapse;font-size:10px;width:100%;white-space:nowrap}.data-table th{position:sticky;top:0;background:#f5f8fa;font-weight:500;color:#6e8292;text-align:right;padding:6px 12px;border-bottom:1px solid #dfe7ec;z-index:1}.data-table td{text-align:right;padding:4px 12px;border-bottom:1px solid #edf1f5;font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;color:#5a7183}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table tr:hover td{background:#f3f9fb}.table-note{font-size:9px;padding:7px 12px;background:#f8fafc;color:#8293a0;border-bottom:1px solid #e4ecf1}.convergence-wrap{height:100%;padding:10px 14px;display:flex;gap:20px}.convergence-wrap svg{flex:1;width:100%;height:100%;min-height:100px;overflow:visible}.convergence-metrics{width:154px;padding:3px 5px;flex-shrink:0}.convergence-metrics strong{font:15px ui-monospace,monospace;display:block;color:#267b86;margin:3px 0 8px}.convergence-metrics span{font-size:9px;color:#8b9ca8}.convergence-metrics p{font-size:9px;color:#7f92a1;margin:5px 0}.validation-pass{color:#268d73}.validation-fail{color:#bf5c62}.statusbar{height:25px;flex-shrink:0;display:flex;align-items:center;padding:0 12px;gap:7px;font-size:9px;background:#f1f4f7;border-top:1px solid #d1dce5;color:#7e90a0}.ready-dot{width:5px;height:5px;background:#3fa58a;border-radius:50%}.status-separator{height:11px;border-left:1px solid #ccd8e1;margin:0 4px}#mesh-status{color:#627f93}#compute-status{font-size:8px;color:#5c8896}
#modal{padding:0;border:1px solid #cfdae1;border-radius:8px;box-shadow:0 20px 90px #11293e40;max-width:min(680px,90vw);width:630px;color:var(--ink)}#modal::backdrop{background:#172d4350;backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 23px;border-bottom:1px solid #e1e8ee;background:#f8fafc}.modal-head h2{font-size:17px;font-weight:550;margin:0}.modal-head button{font-size:22px;color:#8396a5;padding:0 3px}#modal-content{padding:18px 24px 23px;line-height:1.7;max-height:75vh;overflow:auto}#modal-content h3{font-size:12px;color:#427386;margin:18px 0 6px}#modal-content p{font-size:11px;color:#738697;margin:8px 0}#modal-content code{background:#eff4f6;padding:2px 4px;border-radius:2px;color:#4e7c8b;font:10px ui-monospace,monospace}.example-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.example-card{text-align:left;border:1px solid #dce5eb;border-radius:6px;padding:17px;background:#fbfcfd}.example-card>span{font-size:24px;color:#4d95a4;display:block;margin-bottom:8px}.example-card strong{font-size:12px;font-weight:550;display:block}.example-card small{font-size:10px;color:#8a9ba7;display:block;margin-top:5px}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}#toast{position:fixed;right:20px;bottom:38px;max-width:470px;padding:12px 17px;background:#203b50;color:#f1f7fa;font-size:11px;line-height:1.55;border-radius:5px;box-shadow:0 5px 24px #17334833;z-index:30}.settings-hidden .workspace{grid-template-columns:var(--tree-width) 4px 0 0 minmax(260px,1fr)}.settings-hidden .settings-panel,.settings-hidden #settings-splitter{display:none}.settings-hidden .settings-toggle{display:block}.dragging-panel{cursor:col-resize!important;user-select:none}.quality-histogram{display:flex;align-items:end;gap:3px;height:52px;padding:0 4px;border-bottom:1px solid #d5e2e8}.quality-histogram div{flex:1;background:#65aeb6;min-height:2px;border-radius:2px 2px 0 0}.quality-labels{display:flex;justify-content:space-between;font-size:9px;color:#8b9faa;margin-top:3px}.settings-view-checks{display:flex;gap:9px;flex-wrap:wrap}.value-alert{color:#ba675b!important}.invalid{border-color:#c96d6d!important;background:#fff8f7!important}
@media(min-width:1700px){:root{--tree-width:250px;--settings-width:304px;--bottom-height:220px}.ribbon{height:97px}.tree-node{height:29px}.settings-section{padding:15px 17px}}
@media(max-width:1150px){:root{--tree-width:196px;--settings-width:244px;--bottom-height:174px}.ribbon-group{padding:0 7px}.ribbon-button{padding:3px 5px;min-width:44px}.plot-heading h1{font-size:18px}.graphics-toolbar{gap:3px}.graphics-toolbar button{padding:5px}.ribbon-tabs>button{padding:0 13px}.dimension-badge{display:none}.view-tabs>button{padding:0 10px}.render-status{font-size:8px}.diagnostic-tabs button{padding:0 9px}}
@media(max-width:950px){:root{--tree-width:188px;--settings-width:238px;--bottom-height:160px}.workspace{grid-template-columns:var(--tree-width) 4px 0 0 minmax(260px,1fr)}.settings-panel,#settings-splitter{display:none}.settings-toggle{display:block}.mobile-settings .settings-panel{display:block;position:fixed;left:192px;top:165px;bottom:25px;width:280px;z-index:15;border-right:1px solid #c7d7e2;box-shadow:10px 0 25px #203b5018}.title-right span:not(.local-dot){display:none}.plot-heading{left:15px;top:17px}.quick-actions{gap:0}.ribbon-tabs>button{padding:0 12px}.titlebar{gap:13px}.tool-hint{font-size:8px;left:75px}.framebar input[type=range]{width:80px}#document-title{left:60%;max-width:30%;font-size:10px}}
@media(max-height:760px){:root{--bottom-height:150px}.ribbon{height:80px;padding-top:4px}.ribbon-controls{height:49px}.ribbon-button{height:49px}.ribbon-button .ribbon-icon{font-size:21px;line-height:23px}.plot-heading{top:14px}.plot-heading h1{font-size:18px}.settings-title{padding:13px}.model-footer{display:none}}

/* Keep three-row ribbon stacks within their group; never clip commands. */
.ribbon-stack{gap:1px}.ribbon-small{height:17px;line-height:15px;padding:1px 7px}.ribbon-small>span:first-child{font-size:12px}
.convergence-metrics select{display:block;max-width:100%;width:100%;font-size:9px;padding:2px;margin:0 0 4px}
