:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:#101116;--bg-inset:#0e0f14;--bg-panel:#14151c;--bg-panel-alt:#161a26;--bg-raised:#1b1d26;--bg-elevated:#24262f;--bg-control:#2e313d;--bg-control-hover:#3a3d4a;--border-subtle:#24262f;--border:#2e313d;--border-strong:#3a3d4a;--fg:#e6e7eb;--fg-1:#cfd1db;--fg-2:#b7b9c4;--fg-muted:#8b8d98;--fg-dim:#6b6d78;--fg-faint:#4a4d59;--fg-on-accent:#fff;--fg-on-bright:#14151c;--on-accent-hairline:#ffffff59;--on-accent-warn:#ffc75a;--on-accent-ok:#6fd6a8;--accent:#3a6df0;--accent-hover:#4f7cf5;--accent-fg:#a8c0f5;--accent-soft:#6fa8e0;--accent-bg:#1c2540;--accent-bg-strong:#1f2a4a;--accent-border:#223252;--ok:#6fd6a8;--ok-strong:#40d966;--ok-bg:#17342a;--ok-bg-strong:#2d6a4a;--ok-solid:#2d6a4a;--ok-border:#2d6a4a;--warn:#e0a866;--warn-soft:#f3d3a4;--warn-strong:#ffd933;--warn-bg:#34281a;--warn-border:#6b562b;--danger:#f3b4bb;--danger-strong:#f25a4c;--danger-bg:#3a1d22;--danger-border:#6b2b34;--info:#4cb2ff;--cyan:#66e6f2;--teal:#7fd9d9;--purple:#b49bf5;--purple-bg:#1e1a26;--purple-border:#362d4f;--magenta:#f25cc4;--magenta-soft:#f7a5da;--lime:#b4e63c;--lime-soft:#d3f086;--lime-bg:#1d240f;--scrim:#06070b66;--scrim-strong:#06070bb3;--overlay:#14151ceb;--overlay-strong:#14151cf5;--overlay-soft:#14151cd9;--overlay-faint:#14151c99;--shadow:#0006;--shadow-soft:#00000059;--hairline-02:#ffffff05;--hairline-05:#ffffff0d;--hairline-07:#ffffff12;--hairline-25:#ffffff40;--chart-1:#3a6df0;--chart-2:#e0a866;--chart-3:#6fd6a8;--chart-4:#f3b4bb;--chart-5:#b78af0;--chart-6:#66c2e0;--chart-7:#e066c2;--chart-8:#a8d66f;--chart-9:#d6a86f;--chart-10:#6fa8d6;--scene-inlet:#40d966;--scene-outlet:#f25a4c;--scene-farfield:#4cb2ff;--scene-hover:#ffd933;--viewer-bg:#12141c}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-app:#f4f5f8;--bg-inset:#eceef3;--bg-panel:#fff;--bg-panel-alt:#fafbfd;--bg-raised:#f1f2f6;--bg-elevated:#e7e9ef;--bg-control:#e0e3ea;--bg-control-hover:#d0d4de;--border-subtle:#e3e5ec;--border:#d2d5df;--border-strong:#b6bac7;--fg:#171922;--fg-1:#2b2f3a;--fg-2:#444956;--fg-muted:#5d6270;--fg-dim:#787d8c;--fg-faint:#9aa0ae;--fg-on-accent:#fff;--fg-on-bright:#14151c;--accent:#2c5fd6;--accent-hover:#1f4fc4;--accent-fg:#24499e;--accent-soft:#2d63c4;--accent-bg:#e9effc;--accent-bg-strong:#d8e4fa;--accent-border:#bfd2f4;--ok:#12805a;--ok-strong:#14884a;--ok-bg:#e6f6ee;--ok-bg-strong:#bfe6d2;--ok-solid:#12805a;--ok-border:#a4dcc0;--warn:#8f5c14;--warn-soft:#7a4f12;--warn-strong:#a97c00;--warn-bg:#fdf1de;--warn-border:#e7c48f;--danger:#bd2438;--danger-strong:#c8392a;--danger-bg:#fdecee;--danger-border:#f0b8c0;--info:#0b6fbf;--cyan:#0d7a87;--teal:#12787a;--purple:#6a4bd0;--purple-bg:#f1ecfd;--purple-border:#d8ccf7;--magenta:#b4238c;--magenta-soft:#a82f86;--lime:#5f7a12;--lime-soft:#5f7a12;--lime-bg:#f2f7e2;--scrim:#161a2a47;--scrim-strong:#161a2a73;--overlay:#fffffff0;--overlay-strong:#fffffff7;--overlay-soft:#ffffffe0;--overlay-faint:#ffffffbf;--shadow:#14192d29;--shadow-soft:#14192d1c;--hairline-02:#00000005;--hairline-05:#0000000a;--hairline-07:#0000000f;--hairline-25:#0000002e;--chart-1:#2c5fd6;--chart-2:#a06a12;--chart-3:#12805a;--chart-4:#c0364c;--chart-5:#6a45c4;--chart-6:#1f7ea6;--chart-7:#b02a92;--chart-8:#5f7a12;--chart-9:#8c5f1c;--chart-10:#2a6ea0;--viewer-bg:#dce0e8}:root{-webkit-font-smoothing:antialiased;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-app);color:var(--fg)}.app{flex-direction:column;height:100%;display:flex}.app-header{z-index:30;border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);align-items:baseline;gap:12px;padding:10px 20px;display:flex;position:relative}.app-header h1{margin:0;font-size:16px;font-weight:600}.app-brand{align-self:center;display:flex}.app-brand-logo{width:auto;height:15px;color:var(--fg);display:block}.logo-mark{stroke:var(--accent)}.app-subtitle{color:var(--fg-muted);font-size:12px}.app-nav{gap:4px;margin-left:auto;display:flex}.app-nav a,.app-nav button{color:var(--fg-2);font-size:13px;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;text-decoration:none}.app-nav a:hover,.app-nav button:hover{background:var(--bg-raised);color:var(--fg)}.app-nav a.active,.app-nav button.active{background:var(--accent);color:#fff}.app-nav button.open{background:var(--bg-control);color:var(--fg)}.model-lab-backdrop{z-index:20;background:var(--scrim);position:fixed;inset:0}.model-lab-dropdown{pointer-events:none;justify-content:center;padding:16px;display:flex;position:absolute;top:100%;left:0;right:0}.app-header .icon-btn{margin-left:8px}.app-header .icon-btn.active{border-color:var(--accent);color:var(--fg)}.model-lab-crumb{border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);color:var(--fg-dim);flex:none;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.model-lab-crumb button{font:inherit;color:var(--info);cursor:pointer;background:0 0;border:none;padding:0}.model-lab-crumb button:hover{text-decoration:underline}.model-lab-page{flex:1;justify-content:center;padding:32px 16px;display:flex;overflow-y:auto}.model-lab-hero{background:var(--bg-panel);border:1px solid var(--border);width:min(720px,90vw);color:var(--fg);text-align:center;pointer-events:auto;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:28px 32px;display:flex}.model-lab-hero-header{align-items:center;gap:12px;display:flex}.model-lab-hero-icon{width:32px;height:32px;color:var(--accent);flex-shrink:0}.model-lab-hero-header h2{margin:0;font-size:16px}.model-lab-hero-description{color:var(--fg-muted);margin:0 0 12px;font-size:12px;line-height:1.5}.model-lab-grid{grid-template-columns:repeat(3,1fr);gap:14px;width:100%;margin-top:8px;display:grid}.model-lab-card{background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:18px 14px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.model-lab-card:hover{border-color:var(--accent);background:var(--accent-bg)}.model-lab-card-icon{width:28px;height:28px;color:var(--accent-soft)}.model-lab-card-title{color:var(--fg);font-size:13px;font-weight:600}.model-lab-card-description{color:var(--fg-muted);font-size:12px;line-height:1.4}.subtabs{border-bottom:1px solid var(--border-subtle);background:var(--bg-panel);flex:none;gap:4px;padding:8px 12px;display:flex}.subtabs button{color:var(--fg-2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:13px}.subtabs button:hover{background:var(--bg-raised);color:var(--fg)}.subtabs button.active{background:var(--accent);color:#fff}.app-body{flex:1;min-height:0;display:flex}.error-boundary{flex-direction:column;flex:1;align-items:flex-start;gap:12px;padding:24px;display:flex;overflow:auto}.error-boundary h2{color:var(--danger);margin:0}.error-boundary pre{white-space:pre-wrap;word-break:break-word;background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);border-radius:6px;max-width:100%;padding:12px;font-size:12px}.case-viewer{flex:1;width:100%;min-width:0;height:100%;min-height:0;display:flex}.case-viewer-compact{flex-direction:column}.case-viewer-compact .viewer{flex:1;min-height:260px}.viewer-empty{color:var(--fg-muted);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.split-page{flex:1;min-height:0;display:flex}.list-pane{border-right:1px solid var(--border-subtle);background:var(--bg-panel);flex-direction:column;flex-shrink:0;gap:20px;width:300px;padding:16px;display:flex;overflow-y:auto}.page{flex:1;align-items:flex-start;gap:16px;padding:16px;display:flex;overflow-y:auto}.page .panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:8px;padding:16px}.pipeline-config-panel{width:100%}.pipeline-config-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.pipeline-config-panel-header h2{margin:0}.icon-btn{background:var(--bg-raised);border:1px solid var(--border);width:30px;height:30px;color:var(--fg-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{border-color:var(--accent);color:var(--fg)}.icon-btn-icon{width:16px;height:16px}.icon-btn-danger{border-color:var(--danger-border);color:var(--danger);position:relative}.icon-btn-danger:hover{border-color:var(--danger);color:var(--fg-on-accent)}.icon-btn-badge{background:var(--danger-strong);min-width:16px;height:16px;color:var(--fg-on-accent);text-align:center;border-radius:8px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-6px;right:-6px}.job-panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.job-panel-header h2{margin:0}.train-page .job-panel{flex-direction:column;flex:.8;align-self:stretch;min-width:260px;display:flex}.train-page .chart-panel{flex:1.4;min-width:360px}.pipeline-flow{align-items:stretch;gap:14px;margin:16px 0 20px;display:flex}.pipeline-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;flex:1;min-width:220px;padding:16px}.pipeline-card-wide{flex:1.8;min-width:340px}.pipeline-card-header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.pipeline-card-header h3{flex:1;margin:0;font-size:14px}.pipeline-card-icon{width:32px;height:32px;color:var(--accent);flex-shrink:0}.pipeline-mini-status{background:var(--bg-control);border-radius:50%;flex-shrink:0;width:10px;height:10px}.pipeline-mini-status-pending{background:var(--bg-control)}.pipeline-mini-status-queued{background:var(--warn)}.pipeline-mini-status-running{background:var(--warn);box-shadow:0 0 0 3px #e0a86633}.pipeline-mini-status-success{background:var(--ok)}.pipeline-mini-status-failed{background:var(--danger)}.pipeline-mini-status-cancelled{background:var(--fg-2)}.pipeline-arrow{width:24px;height:24px;color:var(--fg-faint);flex-shrink:0;align-self:center}.button-run{padding:12px 28px;font-size:14px}.checkbox-list{flex-direction:column;gap:6px;max-height:160px;padding:4px 0;display:flex;overflow-y:auto}.checkbox-list .checkbox-row{margin-top:0}.pager{justify-content:center;align-items:center;gap:10px;margin-top:10px;display:flex}.pager-label{color:var(--fg-muted);font-size:12px}.card-list{flex-direction:column;gap:8px;display:flex}.dataset-card,.case-row,.job-row{background:var(--bg-raised);border:1px solid var(--border);width:100%;color:var(--fg);text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;font-size:13px;display:flex}.case-row{flex-direction:row;justify-content:space-between;align-items:center;padding:14px 16px;font-size:14px}.case-row-badges{align-items:center;gap:8px;display:flex}.case-row-badges .badge{padding:3px 10px;font-size:12px}.dataset-card.active,.case-row.active,.job-row.active{border-color:var(--accent);background:var(--accent-bg)}.job-row.marked{border-color:var(--danger-border);background:var(--danger-bg)}.dataset-card-name{font-weight:600}.dataset-card-meta,.job-row-meta{color:var(--fg-muted);font-size:12px}.job-row{cursor:pointer}.job-row-static{cursor:default}.queue-row-actions{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.queue-row-actions>.job-row-meta{flex:auto;min-width:0}.button-small{flex:none;padding:4px 10px;font-size:12px}.job-row-id{word-break:break-all;font-weight:600}.job-row-with-thumb{flex-direction:row;align-items:center;gap:10px}.job-row-thumb{background:var(--bg-inset);object-fit:contain;cursor:zoom-in;border-radius:4px;flex:none;width:48px;height:48px}.job-row-body{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.modal-backdrop{background:var(--scrim-strong);z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:16px}.modal-card-viewer{width:min(720px,90vw)}.modal-card-stage{width:min(1100px,94vw);max-height:90vh;overflow-y:auto}.modal-card-params{width:min(560px,90vw);max-height:80vh;overflow-y:auto}.modal-card-confirm{width:min(420px,90vw)}.mesh-picker-modal{flex-direction:column;width:min(640px,90vw);max-height:85vh;display:flex}.mesh-picker-list{max-height:60vh;overflow-y:auto}.modal-card-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.export-grid{grid-template-columns:repeat(auto-fill,minmax(100px,140px));gap:10px;display:grid}.export-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:14px 10px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.export-card:hover{border-color:var(--accent);background:var(--accent-bg)}.export-card-format{letter-spacing:.03em;color:var(--fg);font-size:15px;font-weight:700}.export-card-label{text-transform:uppercase;letter-spacing:.03em;color:var(--fg-muted);font-size:11px}.add-item-modal{width:min(640px,90vw);max-height:85vh;overflow-y:auto}.add-item-supergroup{background:var(--hairline-02);border:1px solid var(--border);border-left-width:3px;border-radius:12px;padding:14px}.add-item-supergroup-simulation{border-left-color:#3a6df08c}.add-item-supergroup-physics-ai{border-left-color:#9e7af099}.add-item-supergroup-gpu-solve{border-left-color:#3ddc978c}.add-item-supergroup+.add-item-supergroup{margin-top:12px}.add-item-supergroup-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.add-item-supergroup-icon-badge{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.add-item-supergroup-icon{width:22px;height:22px}.add-item-supergroup-simulation .add-item-supergroup-icon-badge{background:#3a6df024;box-shadow:inset 0 0 0 1px #3a6df04d,0 0 18px #3a6df038}.add-item-supergroup-simulation .add-item-supergroup-icon{color:var(--accent-soft)}.add-item-supergroup-physics-ai .add-item-supergroup-icon-badge{background:#9e7af029;box-shadow:inset 0 0 0 1px #9e7af059,0 0 18px #9e7af047}.add-item-supergroup-physics-ai .add-item-supergroup-icon{color:var(--purple)}.add-item-supergroup-gpu-solve .add-item-supergroup-icon-badge{background:#3ddc9724;box-shadow:inset 0 0 0 1px #3ddc9752,0 0 18px #3ddc9738}.add-item-supergroup-gpu-solve .add-item-supergroup-icon{color:var(--ok)}.add-item-supergroup-title{color:var(--fg);font-size:14px;font-weight:600}.add-item-supergroup-subtitle{color:var(--fg-muted);margin-top:2px;font-size:11.5px}.add-item-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.mesher-picker{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),260px));gap:10px;display:grid}.add-item-card{background:var(--bg-raised);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:14px;transition:border-color .15s,background .15s;display:flex}.add-item-card:hover,.add-item-card.active{border-color:var(--accent);background:var(--accent-bg)}.add-item-card-icon{width:22px;height:22px;color:var(--fg-muted)}.add-item-card-import{border-style:dashed}.add-item-card-icon-plus{width:44px;height:44px;color:var(--accent);stroke-width:3px}.add-item-card-title{color:var(--fg);overflow-wrap:break-word;min-width:0;font-size:13px;font-weight:600}.add-item-card-description{color:var(--fg-muted);font-size:11.5px;line-height:1.4}.add-item-card-badge{text-transform:uppercase;letter-spacing:.03em;color:var(--accent);font-size:10.5px;font-weight:600}.add-item-card-icon-row .add-item-card-badge{white-space:nowrap;flex:none}.picker-search{margin-bottom:12px;position:relative}.picker-search-icon{width:15px;height:15px;color:var(--fg-dim);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.picker-search-input{padding-left:32px}.add-item-card-icon-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;width:100%;min-width:0;display:flex}.picker-card-description-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.picker-modal-actions{justify-content:space-between}.picker-pagination{align-items:center;gap:10px;display:flex}.picker-pagination-label{color:var(--fg-muted);font-size:12px}.picker-pagination .button{padding:6px 12px}.stage-settings-summary{background:var(--bg-panel);border:1px solid var(--border-subtle);color:var(--fg-2);border-radius:6px;flex-wrap:wrap;gap:8px 20px;margin:4px 0 12px;padding:10px 14px;font-size:12px;display:flex}.stage-settings-summary strong{color:var(--fg-muted);margin-right:4px;font-weight:600}.pipeline-card-header-clickable{cursor:pointer}.pipeline-card-expand-btn{flex-shrink:0;padding:3px 10px;font-size:12px}.config-section{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:6px;margin-top:12px;padding:12px}.config-section:first-of-type{margin-top:0}.config-section-header strong{font-size:13px}.config-section-summary{margin:4px 0 10px}.config-section .button{width:100%}.select-face-btn{width:100%;margin-top:10px}.farfield-editor{align-items:stretch;gap:16px;display:flex}.farfield-editor-viewer{flex:1.6;min-width:0;height:min(70vh,640px)}.farfield-editor-panel{flex-direction:column;flex:1;gap:12px;min-width:300px;display:flex;overflow-y:auto}.farfield-editor-panel h4{margin:0 0 10px;font-size:13px}.cad-bc-editor{display:flex}.cad-bc-editor-viewer{flex:1;min-width:0;height:min(78vh,900px)}.cad-bc-editor-viewer canvas{outline:none}.studio-page-header{color:var(--fg-1);justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}.studio-page-header-empty{justify-content:flex-start;gap:14px}.studio-project-title{color:var(--fg);font-weight:600}.studio-page-header-file,.studio-save-state{color:var(--fg-muted);font-size:12px}.studio-projects-back{flex:none}.studio-projects{flex:1;min-height:0;padding:24px 28px 40px;overflow-y:auto}.studio-projects-header h2{margin:0 0 4px;font-size:18px}.studio-projects-header .hint{margin:0 0 20px}.studio-project-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.studio-project-card{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:10px;flex-direction:column;min-height:200px;display:flex;position:relative;overflow:hidden}.studio-project-card:hover{border-color:var(--border-strong)}.studio-project-open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:6px;padding:0 0 12px;display:flex}.studio-project-thumb{background:var(--viewer-bg);border-bottom:1px solid var(--border-subtle);justify-content:center;align-items:center;height:150px;margin-bottom:6px;display:flex;overflow:hidden}.studio-project-thumb img{object-fit:cover;width:100%;height:100%}.studio-project-thumb-icon{width:34px;height:34px;color:var(--fg-faint)}.studio-project-body{flex-direction:column;flex:1;gap:6px;padding:0 12px;display:flex}.studio-project-name{color:var(--fg);font-size:13px;font-weight:600}.studio-project-description{-webkit-line-clamp:2;color:var(--fg-2);-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.studio-project-chips{flex-wrap:wrap;gap:4px;display:flex}.studio-project-chip{background:var(--bg-raised);border:1px solid var(--border-subtle);color:var(--fg-2);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px}.studio-project-chip-empty{color:var(--fg-dim)}.studio-project-meta{color:var(--fg-muted);flex-direction:column;gap:2px;margin-top:auto;padding-top:4px;font-size:11px;display:flex}.studio-project-meta-row{justify-content:space-between;gap:10px;display:flex}.studio-project-meta-label{color:var(--fg-dim)}.studio-project-actions{opacity:0;gap:6px;transition:opacity .12s;display:flex;position:absolute;top:8px;right:8px}.studio-project-card:hover .studio-project-actions,.studio-project-actions:focus-within{opacity:1}.studio-project-card-new{background:0 0;border-style:dashed}.studio-project-new-btn{font:inherit;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.studio-project-card-new:hover .studio-project-new-btn{color:var(--accent)}.studio-project-plus{font-size:34px;font-weight:300;line-height:1}.studio-project-description-input{font:inherit;resize:vertical;font-size:13px;line-height:1.45}.studio-project-details{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:6px;flex-direction:column;gap:4px;margin-bottom:14px;padding:10px 12px;font-size:12px;display:flex}.studio-project-detail{justify-content:space-between;gap:12px;display:flex}.studio-project-detail-label{color:var(--fg-muted)}.studio-project-modal-delete{margin-right:auto}.studio-full-viewer{flex:1;min-height:0;position:relative}.studio-full-viewer .cad-bc-editor,.studio-full-viewer .cad-bc-editor-viewer{height:100%}.viewer-tree-card-stack.studio-tree-card-stack{top:auto;bottom:12px}.studio-results-layout,.studio-geometry-layout{flex-direction:column;height:100%;min-height:0;display:flex}.studio-geometry-body{flex:1;min-height:0;position:relative}.studio-setup-tabs{align-items:center}.studio-setup-tab-add{width:28px;height:28px;color:var(--fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:2px;padding:0;display:inline-flex}.studio-setup-tab-add:hover{background:var(--bg-raised);border-color:var(--border-subtle);color:var(--fg)}.studio-setup-tab-add-icon{width:14px;height:14px}.studio-page-header-setup{color:var(--fg-1);font-weight:600}.studio-setup-tab-rename{width:130px;margin:4px 6px}.studio-run-tabs-strip{flex:none;display:flex;position:relative}.studio-run-tabs{background:var(--bg-inset);border-bottom:1px solid var(--border);scrollbar-width:thin;flex:none;align-items:stretch;gap:4px;padding:6px 6px 0;display:flex;overflow-x:auto}.studio-run-tabs-strip .studio-run-tabs{flex:1;min-width:0}.studio-run-tabs-scroll{z-index:1;background:var(--bg-inset);width:26px;color:var(--fg-muted);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:1px}.studio-run-tabs-scroll:hover{color:var(--fg)}.studio-run-tabs-scroll-left{box-shadow:6px 0 8px -6px var(--shadow);left:0}.studio-run-tabs-scroll-right{box-shadow:-6px 0 8px -6px var(--shadow);right:0}.studio-run-tabs-scroll-icon{width:14px;height:14px}.studio-run-tabs-scroll-left .studio-run-tabs-scroll-icon{transform:rotate(180deg)}.studio-run-tab{background:var(--bg-panel);border:1px solid var(--border);max-width:230px;color:var(--fg-2);border-bottom:none;border-radius:10px 10px 0 0;align-items:center;padding-right:4px;transition:background .12s,color .12s;display:flex}.studio-run-tab:hover{background:var(--bg-elevated);color:var(--fg)}.studio-run-tab.active{background:var(--accent);border-color:var(--accent);color:var(--fg-on-accent)}.studio-run-tab.active .studio-run-tab-name,.studio-run-tab.active .studio-run-tab-meta,.studio-run-tab.active .studio-run-tab-delete{color:var(--fg-on-accent)}.studio-run-tab.active .studio-run-tab-meta{opacity:.8}.studio-run-tab.active .studio-status-dot-pending{background:var(--on-accent-hairline)}.studio-run-tab.active .studio-status-dot-running{background:var(--on-accent-warn)}.studio-run-tab.active .studio-status-dot-done{background:var(--on-accent-ok)}.studio-run-tab-open{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:5px 4px 5px 9px;display:flex}.studio-run-tab-open .studio-status-dot{margin-left:0}.studio-run-tab-text{flex-direction:column;min-width:0;display:flex}.studio-run-tab-name{white-space:nowrap;font-size:12px;font-weight:600}.studio-run-tab-rename{border:none;border-bottom:1px solid var(--accent);width:108px;color:var(--fg);background:0 0;border-radius:0;outline:none;padding:0;font-size:12px;font-weight:600}.studio-run-tab-meta{color:var(--fg-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.studio-run-tab-delete{width:22px;height:22px;color:var(--fg-dim);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.studio-run-tab:hover .studio-run-tab-delete,.studio-run-tab.active .studio-run-tab-delete,.studio-run-tab-delete:focus-visible{opacity:1}.studio-run-tab-delete:hover{background:var(--danger-bg);color:var(--danger)}.studio-run-tab-delete-icon{width:13px;height:13px}.studio-run-tab-cancel,.studio-run-tab-cancel:focus-visible{opacity:1;color:var(--danger)}.studio-run-tab-cancel:disabled{cursor:default}.studio-run-tab-cancel .spinner{border-width:2px;width:12px;height:12px}.studio-run-actions{gap:6px;display:flex}.studio-results-viewer{border-left:1px solid #0000;border-right:1px solid #0000;border-bottom:1px solid var(--border-subtle);background:var(--viewer-bg);background-clip:padding-box;border-radius:0 0 8px 8px;flex:1;min-height:0;position:relative;overflow:hidden}.studio-stats-panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:8px;flex-direction:column;min-height:0;padding-top:8px;display:flex;overflow:hidden}.studio-dock-divider{cursor:ns-resize;touch-action:none;border-radius:6px;flex:none;justify-content:center;align-items:center;height:14px;margin:2px 0;transition:background .12s;display:flex}.studio-dock-divider:hover,.studio-dock-divider.dragging{background:var(--accent-bg)}.studio-dock-divider-grip{background:var(--border-strong);border-radius:2px;width:28px;height:3px;transition:background .12s}.studio-dock-divider:hover .studio-dock-divider-grip,.studio-dock-divider.dragging .studio-dock-divider-grip{background:var(--accent)}.studio-results-row{flex:1;align-items:stretch;min-height:0;display:flex;overflow-x:auto}.studio-results-section{border-right:1px solid var(--border-subtle);flex-direction:column;flex:none;gap:6px;padding:4px 18px 12px;display:flex;overflow-y:auto}.studio-results-section:last-child{border-right:none}.studio-results-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim);align-items:center;gap:6px;margin:0;font-size:10px;font-weight:600;display:flex}.studio-results-section-icon{flex-shrink:0;width:12px;height:12px}.studio-results-section-title .badge{letter-spacing:0}.studio-resource-rows{flex-direction:column;gap:6px;display:flex}.studio-metrics{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));align-content:start;gap:8px}.studio-metrics .metric{gap:2px;padding:8px 10px}.studio-metrics .metric-value{font-variant-numeric:tabular-nums;font-size:16px}.studio-metrics .metric-label{letter-spacing:.05em;font-size:10px}.studio-metric-warn .metric-value{color:var(--warn)}.studio-section-note{color:var(--fg-dim);margin:0;font-size:11px}.studio-results-meta{color:var(--fg-muted);margin:0;font-size:12px;line-height:1.5}.studio-results-error{color:var(--danger);margin:0;font-size:12px;line-height:1.4}.studio-queue-status,.studio-resource-summary{width:215px}.studio-resource-row{justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px;display:flex}.studio-resource-row-label{color:var(--fg-muted)}.studio-resource-row-value{color:var(--fg);text-align:right;white-space:nowrap;font-weight:600}.studio-pipeline-track{width:220px}.studio-pipeline-row{align-items:flex-start;padding-top:2px;display:flex}.studio-pipeline-node{flex-direction:column;flex:none;align-items:center;gap:5px;display:flex}.studio-pipeline-node-icon{border:2px solid var(--border);background:var(--bg-raised);width:30px;height:30px;color:var(--fg-dim);border-radius:50%;justify-content:center;align-items:center;display:flex}.studio-pipeline-node-svg{width:15px;height:15px}.studio-pipeline-node-queued,.studio-pipeline-node-running{border-color:var(--warn);color:var(--warn)}.studio-pipeline-node-running{box-shadow:0 0 0 3px #e0a8662e}.studio-pipeline-node-done{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.studio-pipeline-node-failed{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.studio-pipeline-node-cancelled{border-color:var(--border);color:var(--fg-2)}.studio-pipeline-node-label{color:var(--fg-muted);font-size:11px}.studio-pipeline-row-split .studio-pipeline-node{flex:1 1 0;min-width:0}.studio-pipeline-row-split .studio-pipeline-node-label{white-space:nowrap}.studio-pipeline-connector{background:var(--bg-control);flex:1;min-width:20px;height:2px;margin:14px 6px 0}.studio-pipeline-connector-done{background:var(--ok)}.studio-residuals-section{flex:1;min-width:420px}.studio-mesh-stats{flex:1;min-width:240px}.studio-mesh-stats-summary{flex:none;width:215px;min-width:0}.studio-mesh-stats-summary .studio-resource-row-value{white-space:normal;text-align:right}.studio-downloads{flex:none;width:210px;min-width:0}.studio-downloads .export-grid{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px}.studio-downloads .export-card{gap:2px;padding:10px 6px}.studio-downloads .export-card-format{font-size:13px}.studio-charts-stack{flex-direction:column;flex:1;min-height:0;display:flex}.studio-chart-card{flex-direction:column;min-height:0;display:flex}.studio-chart-card+.studio-chart-card{border-top:1px solid var(--border-subtle);margin-top:6px;padding-top:6px}.studio-chart-card .viewer-tree-heading{padding-left:0;padding-right:0}.studio-chart-card.open{flex:1}.studio-chart-card-body{flex:1;min-height:0}.studio-linear-solves{flex-direction:column;gap:6px;height:100%;min-height:0;display:flex}.studio-linear-solves-controls{align-items:center;gap:8px;display:flex}.studio-linear-solves-metric{flex:none}.studio-linear-solves-metric button{flex:none;padding:4px 10px;font-size:11px}.studio-linear-solves-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.studio-linear-solves-chart-wrap{flex:1;min-height:0}.studio-model-summary{flex:1;min-width:260px}.viewer-tree-heading-label{align-items:center;gap:6px;display:inline-flex}.viewer-tree-heading-toggle{cursor:pointer}.viewer-tree-heading-toggle+.viewer-tree-group{border-top:none;margin-top:0}.studio-left-column{z-index:20;flex-direction:column;gap:8px;width:320px;display:flex;position:absolute;top:12px;left:12px;overflow-y:auto}.viewer-tree-bc.studio-bc-nested,.viewer-tree-card-stack.studio-meshphysics-stack{width:100%;max-height:none;position:static;overflow:visible}.studio-subentry{margin-left:4px}.viewer-tree-row-btn:disabled{opacity:.45;cursor:not-allowed}.studio-status-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-left:6px;display:inline-block}.studio-status-dot-pending{background:var(--fg-dim)}.studio-status-dot-running{background:var(--warn)}.studio-status-dot-done{background:var(--ok)}.farfield-legend{background:var(--overlay-soft);border:1px solid var(--border);color:var(--fg-2);pointer-events:none;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex;position:absolute;top:10px;left:10px}.farfield-legend button{pointer-events:auto}.legend-dot{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.legend-dot-inlet{background:var(--scene-inlet)}.legend-dot-outlet{background:var(--scene-outlet)}.legend-dot-farfield{background:var(--scene-farfield)}.legend-dot-hover{background:var(--scene-hover)}.bc-summary{color:var(--fg-1);flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:13px;display:flex}.bc-summary strong{color:var(--fg)}.vec3-input{gap:6px;display:flex}.vec3-input input{min-width:0}.link-button{color:var(--info);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:12px}.link-button.active{color:var(--cyan);font-weight:600}.bc-group-list{background:var(--bg-panel);border:1px dashed var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:6px 8px;display:flex}.bc-group-list .link-button{margin-left:0}.cad-context-menu{z-index:1000;background:var(--bg-panel);border:1px solid var(--border);min-width:180px;box-shadow:0 4px 16px var(--shadow);border-radius:6px;flex-direction:column;padding:4px;display:flex;position:fixed}.cad-context-menu button{color:var(--fg);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-size:13px}.cad-context-menu button:hover:not(:disabled){background:var(--bg-elevated)}.cad-context-menu button:disabled{color:var(--fg-faint);cursor:default}.cad-context-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.bc-face-list{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.bc-face-chips{flex-wrap:wrap;gap:6px;width:100%;display:flex}.bc-face-chip{background:var(--bg-elevated);border:1px solid var(--border);color:var(--fg-1);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12px;display:inline-flex}.bc-face-chip button{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:2px;font-size:11px;line-height:1}.bc-face-chip button:hover{color:var(--danger-strong)}.bc-face-card{background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;gap:8px;width:100%;min-width:0;margin:0;padding:8px 10px;display:flex}.bc-face-card:hover{border-color:var(--border-strong)}.bc-face-card:disabled{opacity:.55;cursor:default}.bc-face-card.active{background:var(--accent-bg);border-color:var(--accent)}.bc-face-card-reference.active{background:var(--ok-bg);border-color:var(--teal)}.bc-face-card-iv-seed.active{background:var(--danger-bg);border-color:var(--magenta)}.bc-face-card-iv-boundary.active{background:var(--lime-bg);border-color:var(--lime)}.bc-face-card-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.bc-face-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.bc-face-card-header .hint,.bc-face-card .bc-face-card-hint{margin:0}.bc-face-card.active .bc-face-card-header .hint{color:var(--accent-fg)}.bc-face-card-reference.active .bc-face-card-header .hint{color:var(--teal)}.bc-face-card-iv-seed.active .bc-face-card-header .hint{color:var(--magenta-soft)}.bc-face-card-iv-boundary.active .bc-face-card-header .hint{color:var(--lime-soft)}.stage-confirmed-badge{background:var(--ok-bg-strong);width:16px;height:16px;color:var(--ok);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.stage-confirmed-badge-icon{width:10px;height:10px}.mesh-reuse-badge{background:var(--accent-bg-strong);width:16px;height:16px;color:var(--accent-fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.mesh-reuse-badge-icon{width:10px;height:10px}.wizard-modal{width:min(720px,90vw);max-height:90vh;padding:0;overflow-y:auto}.wizard-modal-wide{width:min(1700px,96vw);max-height:95vh}.wizard-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.wizard-modal-header h3{margin:0;font-size:16px}.wizard-modal-actions{gap:8px;display:flex}.wizard-icon-btn{border:1px solid var(--border);background:var(--bg-raised);width:30px;height:30px;color:var(--fg-1);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:flex}.wizard-icon-btn-confirm{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok)}.wizard-icon-btn-confirm:hover{background:var(--ok-solid);color:var(--fg-on-accent)}.wizard-icon-btn-close:hover{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.wizard-steps{border-bottom:1px solid var(--border-subtle);gap:4px;padding:12px 20px 0;display:flex}.wizard-step{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.wizard-step-index{background:var(--bg-control);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:inline-flex}.wizard-step.active{color:var(--fg);border-bottom-color:var(--accent)}.wizard-step.active .wizard-step-index{background:var(--accent);color:var(--fg-on-accent)}.wizard-step-done .wizard-step-index{background:var(--ok-bg-strong);color:var(--ok)}.wizard-modal-body{padding:20px}.studio-settings-layout{gap:18px;height:68vh;display:flex}.studio-settings-nav{border-right:1px solid var(--border-subtle);flex-direction:column;flex:none;gap:2px;width:220px;padding-right:8px;display:flex;overflow-y:auto}.studio-settings-nav-item{text-align:left;width:100%}.studio-settings-content{flex:1;min-width:0;padding-right:4px;overflow-y:auto}.mesh-settings-page,.settings-page{border:none;flex-direction:column;gap:16px;min-width:0;margin:0;padding:0;display:flex}.mesh-settings-page:disabled{opacity:.5;pointer-events:none}.geometry-card-fields{border:none;min-width:0;margin:0;padding:0}.geometry-card-fields:disabled{opacity:.5;pointer-events:none}.mesh-reuse-banner{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.mesh-reuse-banner .icon-btn-icon{flex-shrink:0;width:18px;height:18px}.mesh-reuse-banner span{flex:1}.mesh-settings-toolbar{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:8px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.mesh-settings-toolbar .suggest-settings-btn{width:auto;margin-bottom:0}.mesh-settings-toolbar .suggest-note{margin:0}.mesh-estimate-footer{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;margin:0;padding:12px 16px}.settings-section{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:16px}.settings-section h5{border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);margin:0 0 12px;padding-bottom:10px;font-size:12px}.settings-section>.form-grid{margin-bottom:4px}.settings-group{margin-top:14px}.settings-group:first-child{margin-top:0}.settings-group h6{text-transform:uppercase;letter-spacing:.03em;color:var(--fg-dim);margin:0 0 2px;font-size:11px;font-weight:600}.settings-group-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.settings-group-header h6{margin:0}.settings-row{border-bottom:1px solid var(--border-subtle);color:var(--fg-1);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.settings-row:last-child{border-bottom:none}.settings-input{text-align:right;width:100px}.info-tip{background:var(--bg-control);width:14px;height:14px;color:var(--fg-muted);text-transform:none;cursor:help;vertical-align:middle;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:5px;font-family:Georgia,serif;font-size:10px;font-style:italic;display:inline-flex;position:relative}.info-tip-popover{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--fg);white-space:normal;text-align:left;pointer-events:none;z-index:10000;width:max-content;max-width:220px;box-shadow:0 4px 16px var(--shadow);border-radius:6px;padding:7px 10px;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:11.5px;font-weight:400;line-height:1.4;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.info-tip-popover-below{transform:translate(-50%,8px)}.settings-row .info-tip{margin-left:6px}.suggest-settings-btn{width:100%;margin-bottom:12px}.suggest-note{margin:-6px 0 12px}.modal-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-card-header h3{word-break:break-all;margin:0;font-size:14px}.domain-size-readout{color:var(--accent-fg);font-weight:600}.postprocess-panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:8px;gap:20px;margin-top:12px;padding:12px 16px;display:flex}.postprocess-col{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.postprocess-col h4{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin:0;font-size:12px}.force-coeffs-row{background:var(--bg-panel-alt);border:1px solid var(--accent-border);color:var(--accent-fg);border-radius:6px;flex-wrap:wrap;gap:8px 20px;margin-bottom:12px;padding:10px 14px;font-weight:600;display:flex}.convergence-criteria{flex-direction:column;gap:16px;margin-top:12px;display:flex}.convergence-criterion h5{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);align-items:center;gap:8px;margin:0 0 8px;font-size:12px;display:flex}.convergence-table{border-collapse:collapse;width:100%;font-size:13px}.convergence-table th{text-align:left;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);padding:4px 10px 6px 0;font-size:11px;font-weight:600}.convergence-table td{border-bottom:1px solid var(--border-subtle);color:var(--fg-1);padding:6px 10px 6px 0}.convergence-table tr:last-child td{border-bottom:none}.job-status-row{color:var(--fg-2);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.params-list{flex-direction:column;gap:6px;margin:0;display:flex}.params-row{justify-content:space-between;gap:12px;font-size:13px;display:flex}.params-row dt{color:var(--fg-muted);flex-shrink:0}.params-row dd{color:var(--fg);text-align:right;overflow-wrap:break-word;min-width:0;margin:0}.param-slider-row{background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;flex-direction:column;padding:8px 10px;display:flex}.pipeline-graph{align-items:center;margin-bottom:20px;display:flex}.pipeline-stage{background:var(--bg-panel-alt);border:1px solid var(--border-subtle);font:inherit;color:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px 20px;transition:border-color .15s,background .15s,transform .15s;display:flex}.pipeline-stage-preprocess{background:var(--ok-bg);border-color:var(--ok-border)}.pipeline-stage-train{background:var(--bg-panel-alt);border-color:var(--accent-border)}.pipeline-stage-geometry{background:var(--purple-bg);border-color:var(--purple-border)}.pipeline-stage-mesh{background:var(--ok-bg);border-color:var(--ok-border)}.pipeline-stage-simulate{background:var(--bg-panel-alt);border-color:var(--accent-border)}.pipeline-stage-convergence{background:var(--purple-bg);border-color:var(--purple-border)}.pipeline-stage-dataset{background:var(--warn-bg);border-color:var(--warn-border)}.pipeline-stage-clickable{cursor:pointer}.pipeline-stage-clickable:hover{border-color:var(--border-strong);transform:translateY(-1px)}.pipeline-stage-selected,.pipeline-stage-selected:hover{background:var(--accent-bg);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 6px 18px #3a6df047;transform:translateY(-1px)}.pipeline-stage-selected .pipeline-label{color:var(--accent-fg);font-weight:600}.pipeline-graph-arrow{width:20px;height:20px;color:var(--fg-faint);flex-shrink:0;margin:0 18px}.pipeline-graph-arrow-done{color:var(--ok)}.pipeline-node{border:2px solid var(--border);background:var(--bg-raised);width:36px;height:36px;color:var(--fg-muted);border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.pipeline-node-pending{border-color:var(--border);color:var(--fg-dim)}.pipeline-node-queued,.pipeline-node-running{border-color:var(--warn);color:var(--warn)}.pipeline-node-success{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.pipeline-node-failed{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.pipeline-node-cancelled{border-color:var(--border);color:var(--fg-2)}.pipeline-node-warning{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.pipeline-spinner{border:2px solid var(--warn);border-top-color:#0000;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite pipeline-spin}.pipeline-node-icon{width:16px;height:16px}@keyframes pipeline-spin{to{transform:rotate(360deg)}}.pipeline-label{color:var(--fg-muted);font-size:11px}.pipeline-substat{color:var(--ok);margin-top:-4px;font-size:10px}.pipeline-substat-warning{color:var(--warn)}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--bg-control);color:var(--fg-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-train{background:var(--accent-bg);color:var(--accent-soft)}.badge-test{background:var(--warn-bg);color:var(--warn)}.badge-available,.badge-completed,.badge-done{background:var(--ok-bg);color:var(--ok)}.badge-queued,.badge-running,.badge-training,.badge-preparing,.badge-awaiting_gpu,.badge-awaiting_cpu_mesh,.badge-meshing,.badge-awaiting_cpu_solve,.badge-simulating,.badge-converting{background:var(--warn-bg);color:var(--warn)}.badge-failed{background:var(--danger-bg);color:var(--danger)}.badge-cancelled,.badge-not_implemented{background:var(--bg-control);color:var(--fg-2)}.pass-icon{color:var(--ok);width:16px;height:16px}.fail-icon{color:var(--danger);width:16px;height:16px}.form-row{color:var(--fg-muted);flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;display:flex}.preprocess-panel{flex-direction:column;gap:16px;margin-top:8px;display:flex}.log-tail{background:var(--bg-app);border:1px solid var(--border-subtle);color:var(--fg-muted);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:200px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.progress-bar{background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--accent);height:100%;transition:width .2s ease-out}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;display:grid}.metric{background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:12px;display:flex}.metric-value{color:var(--fg);font-size:20px;font-weight:600}.metric-label{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-size:11px}.form-row-header{justify-content:space-between;align-items:center;display:flex}.switch-toggle{color:var(--fg-muted);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.switch-toggle input{appearance:none;background:var(--bg-control);cursor:pointer;border-radius:999px;width:30px;height:17px;transition:background .15s;position:relative}.switch-toggle input:before{content:"";background:var(--fg-2);border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch-toggle input:checked{background:var(--accent)}.switch-toggle input:checked:before{background:var(--fg-on-accent);transform:translate(13px)}.form-grid{grid-template-columns:repeat(2,1fr);gap:0 16px;display:grid}.button{background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);cursor:pointer;border-radius:6px;padding:9px 16px;font-size:13px}.button:hover:not(:disabled){border-color:var(--accent)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.button-primary:hover:not(:disabled){background:var(--accent-hover)}.button-primary .spinner{border-color:var(--on-accent-hairline);border-top-color:var(--fg-on-accent)}.button-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.button-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.chart-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.loss-chart-wrap{flex-direction:column;gap:20px;display:flex}.loss-chart-section h4{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:12px;font-weight:600}.panel h2{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin:0 0 8px;font-size:11px;font-weight:600}.select{background:var(--bg-raised);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:13px}.select:disabled{opacity:.5}.segmented{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.segmented button{white-space:nowrap;background:var(--bg-raised);color:var(--fg-2);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:inline-flex}.segmented button .studio-status-dot{margin-left:0}.segmented button.active .studio-status-dot-pending{background:var(--on-accent-hairline)}.segmented button.active .studio-status-dot-running{background:var(--on-accent-warn)}.segmented button.active .studio-status-dot-done{background:var(--on-accent-ok)}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--accent);color:#fff}.segmented button:disabled{opacity:.4;cursor:not-allowed}.field-select{margin-top:12px}.field-select label{color:var(--fg-muted);margin-bottom:6px;font-size:12px;display:block}.hint{color:var(--fg-muted);margin:0 0 12px;font-size:12px;line-height:1.5}.checkbox-row{color:var(--fg);cursor:pointer;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.checkbox-row input{accent-color:var(--accent);cursor:pointer;width:14px;height:14px}.file-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.file-label{text-align:center;background:var(--bg-raised);border:1px dashed var(--border-strong);color:var(--fg);cursor:pointer;border-radius:6px;padding:9px 10px;font-size:13px;display:block}.file-label:hover{border-color:var(--accent)}.file-label.disabled{opacity:.6;cursor:default}.preset-toolbar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.preset-toolbar .select{width:auto;min-width:220px}.file-input-button{justify-content:center;align-items:center;display:inline-flex}.error-banner{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.5}.warning-banner{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-soft);border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.5}.viewer{flex:1;min-width:0;min-height:0;position:relative}.viewer-tree{z-index:20;background:var(--overlay);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;width:280px;max-height:calc(100% - 24px);padding:6px;display:flex;position:absolute;top:12px;left:12px;overflow-y:auto}.viewer-tree-card-stack{z-index:20;flex-direction:column;gap:8px;width:280px;max-height:calc(100% - 24px);display:flex;position:absolute;top:12px;right:12px;overflow-y:auto}.viewer-tree-card{background:var(--overlay);border:1px solid var(--border);border-radius:8px;flex:none;padding:6px}.viewer-tree-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim);justify-content:space-between;align-items:center;padding:4px 8px 6px;font-size:10px;font-weight:600;display:flex}.viewer-tree-add-btn{border:1px solid var(--border-strong);width:18px;height:18px;color:var(--fg-2);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:flex}.viewer-tree-add-btn:hover{border-color:var(--accent);color:var(--fg)}.viewer-tree-add-btn-icon{width:12px;height:12px}.viewer-tree-row{width:100%;color:var(--fg-1);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.viewer-tree-row:hover{background:var(--hairline-05)}.viewer-tree-row.active{background:var(--accent-bg-strong);color:var(--accent-fg)}.viewer-tree-row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.viewer-tree-row-btn{color:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.viewer-tree-row-btn.active{color:var(--accent-fg)}.viewer-tree-rename-input{background:var(--bg-raised);min-width:0;color:var(--fg);border:1px solid var(--accent);border-radius:4px;flex:1;padding:2px 6px;font-size:12px}.viewer-tree-rename-input:focus{outline:none;box-shadow:0 0 0 2px #3a6df040}.viewer-tree-row-icon-wrap{width:24px;height:24px;color:var(--fg-dim);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.viewer-tree-row-icon{width:15px;height:15px}.viewer-tree-chevron{width:12px;height:12px;color:var(--fg-dim);flex-shrink:0;transition:transform .15s}.viewer-tree-chevron.expanded{color:var(--accent-fg);transform:rotate(90deg)}.viewer-tree-inline-form{flex-direction:column;gap:12px;padding:8px 8px 10px 48px;display:flex}.viewer-tree-inline-form .form-row{gap:5px;margin-bottom:0}.viewer-tree-color-swatch{width:10px;height:10px;box-shadow:0 0 0 1px var(--hairline-25);border-radius:50%;flex-shrink:0}.viewer-tree-row-custom{padding:2px 2px 2px 8px}.viewer-tree-group{border-top:1px solid var(--border);margin-top:4px;padding-top:6px}.viewer-tree-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim);padding:2px 8px 6px;font-size:10px;font-weight:600}.viewer-tree-group-label-row{justify-content:space-between;align-items:center;padding-right:4px;display:flex}.viewer-tree-group-label-row .viewer-tree-group-label{padding-right:0}.viewer-tree-eye-btn{width:24px;height:24px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.viewer-tree-eye-btn:hover{color:var(--fg)}.viewer-tree-eye-icon{width:16px;height:16px}.viewer-tree-delete-btn{width:22px;height:22px;color:var(--fg-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.viewer-tree-delete-btn:hover{color:var(--danger-strong);background:#e0665c1f}.viewer-tree-delete-icon{width:15px;height:15px}.viewer-tree-right{left:auto;right:12px}.viewer-tree-bc{width:320px}.viewer-tree-face-count{font-variant-numeric:tabular-nums;color:var(--fg-dim);flex-shrink:0;padding:0 2px;font-size:11px}.viewer-tree-chevron-btn{cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.viewer-tree-face-leaves{padding-left:26px}.face-leaf{padding-left:8px}.face-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin:0 2px}.viewer-tree-hover-readout{border-top:1px solid var(--border);color:var(--warn-strong);margin-top:4px;padding:6px 8px 2px;font-size:12px}.cad-face-labels{z-index:12;pointer-events:none;position:absolute;inset:0}.cad-face-label-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cad-face-label-line{stroke-width:1.25px;opacity:.75}.cad-face-label-badge{border:2px solid var(--overlay-soft);width:32px;height:32px;box-shadow:0 2px 8px var(--shadow);color:var(--fg-on-bright);border-radius:50%;justify-content:center;align-items:center;margin:-16px 0 0 -16px;display:inline-flex;position:absolute}.cad-face-label-icon{width:17px;height:17px}.viewer-scale-bar{z-index:15;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.viewer-scale-bar-line{border-left:2px solid var(--fg-1);border-right:2px solid var(--fg-1);border-bottom:2px solid var(--fg-1);width:100%;height:6px}.viewer-scale-bar-label{font-variant-numeric:tabular-nums;color:var(--fg-1);white-space:nowrap;margin-top:4px;font-size:11px}.viewer-scale-bar--raised{bottom:56px}.playbar{z-index:20;background:var(--overlay-strong);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:5px 10px;display:flex;position:absolute;bottom:10px;left:40px;right:40px}.playbar-btn{background:var(--bg-elevated);width:26px;height:26px;color:var(--fg);cursor:pointer;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.playbar-btn:hover{background:var(--bg-control)}.playbar-icon{width:12px;height:12px}.playbar-slider{flex:1;min-width:0}.playbar-label{font-variant-numeric:tabular-nums;color:var(--fg-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.viewer-center-toolbar{z-index:20;background:var(--overlay);border:1px solid var(--border);box-shadow:0 4px 16px var(--shadow-soft);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.viewer-center-btn{width:38px;height:38px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.viewer-center-icon{width:20px;height:20px}.viewer-center-btn:hover:not(:disabled){background:var(--hairline-07);color:var(--fg)}.viewer-center-btn.active{background:var(--accent-bg-strong);color:var(--accent-fg)}.viewer-center-btn:disabled{opacity:.35;cursor:not-allowed}.viewer-center-divider{background:var(--bg-control);flex-shrink:0;width:1px;height:22px;margin:0 2px}.farfield-settings-dropdown{z-index:25;background:var(--overlay-strong);border:1px solid var(--border);width:220px;box-shadow:0 4px 16px var(--shadow-soft);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex;position:absolute;top:56px;right:12px}.internal-volume-panel{z-index:25;background:var(--overlay-strong);border:1px solid var(--border);width:260px;box-shadow:0 4px 16px var(--shadow-soft);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex;position:absolute;top:56px;left:50%;transform:translate(-50%)}.farfield-settings-heading{color:var(--fg);justify-content:space-between;align-items:center;margin-bottom:2px;font-size:13px;font-weight:600;display:flex}.farfield-settings-close{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:13px}.farfield-settings-close:hover{color:var(--fg)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:40;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:500;line-height:1.2;transition:opacity .1s .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1;visibility:visible}.viewer-tool-popover{z-index:20;background:var(--overlay-strong);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;width:240px;max-height:calc(100% - 76px);padding:12px;display:flex;position:absolute;top:60px;left:50%;overflow-y:auto;transform:translate(-50%)}.viewer-tool-popover h4{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);margin:0;font-size:12px}.loading-overlay{background:var(--overlay-soft);border:1px solid var(--border);color:var(--fg);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex;position:absolute;top:16px;left:16px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.loading-mask{background:var(--bg-inset);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.loading-card{width:260px;color:var(--fg);flex-direction:column;align-items:center;gap:10px;font-size:13px;display:flex}.viewer-nodata{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:var(--overlay-faint);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.viewer-nodata-card{background:var(--bg-panel);border:1px solid var(--border);color:var(--fg);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:20px 28px;font-size:13px;display:flex}.viewer-nodata-card .hint{margin:0}.geometry-chooser-card{width:min(720px,90vw);padding:28px 32px}.geometry-chooser-options{gap:14px;width:100%;margin-top:8px;display:flex}.geometry-chooser-option{background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:18px 14px;display:flex}.geometry-chooser-option:hover{border-color:var(--accent);background:var(--accent-bg)}.geometry-chooser-option-icon{width:28px;height:28px;color:var(--accent-soft)}.geometry-chooser-option-title{font-size:13px;font-weight:600}.geometry-chooser-option-desc{color:var(--fg-muted);font-size:12px}.progress-track{background:var(--bg-control);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .15s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.auth-screen{background:var(--bg-app);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.auth-card{border:1px solid var(--border-subtle);background:var(--bg-panel);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:18px;max-width:360px;padding:36px 32px;display:flex}.auth-logo{height:34px}.auth-lead{color:var(--fg-muted);margin:0;font-size:13px;line-height:1.5}.auth-error{color:var(--danger);margin:0;font-size:12px}.auth-actions{gap:10px;display:flex}.auth-user{align-self:center;align-items:center;gap:8px;min-width:0;display:flex}.auth-user-avatar{border:1px solid var(--border);object-fit:cover;border-radius:50%;flex:none;width:24px;height:24px}.auth-user-initial{background:var(--accent-bg);color:var(--accent-fg);justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.auth-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--fg-muted);font-size:12px;overflow:hidden}.studio-project-chip-shared{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-fg)}.studio-compare{flex-direction:column;height:100%;min-height:0;display:flex}.studio-compare-bar{background:var(--bg-inset);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:16px;padding:8px 12px;display:flex}.studio-compare-field{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.studio-compare-field .select{min-width:160px}.studio-compare-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:flex}.studio-compare-range{color:var(--accent-fg);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.studio-compare-panes{background:var(--border);flex:1;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1px;min-height:0;display:grid}.studio-compare-pane{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex}.studio-compare-pane-header{border-bottom:1px solid var(--border-subtle);flex:none;align-items:center;gap:10px;min-width:0;padding:6px 10px;display:flex}.studio-compare-pane-header .select{flex:none;max-width:220px}.studio-compare-pane-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}.studio-compare-pane-viewer{flex:1;min-height:0;position:relative}.page-loading{flex:1;justify-content:center;align-items:center;min-height:200px;display:flex}.studio-results-loading{color:var(--text-muted);flex:1;justify-content:center;align-items:center;gap:10px;padding:16px 20px;font-size:13px;display:flex}.mesh-import-row{align-items:stretch;gap:8px;display:flex}.mesh-import-row>.job-row{flex:1;min-width:0}.case-viewer-with-plot{flex-direction:column}.viewer-line-plot{background:var(--bg-panel);border-top:1px solid var(--border);flex-direction:column;flex:none;height:260px;display:flex}.viewer-line-plot.collapsed{height:auto}.viewer-line-plot-header{align-items:center;gap:8px;min-width:0;padding:6px 8px;display:flex}.viewer-line-plot-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim);white-space:nowrap;font-size:10px;font-weight:600}.viewer-line-plot-quantity{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.viewer-line-plot-tabs{min-width:0;overflow-x:auto}.viewer-line-plot-tabs button{padding:4px 8px}.viewer-line-plot-stale,.viewer-line-warn{color:var(--warn)}.viewer-line-plot-stale{white-space:nowrap;font-size:11px}.viewer-line-plot-csv{margin-left:auto;padding:3px 10px;font-size:12px}.viewer-line-plot-body{flex:1;min-height:0;padding:0 8px 4px}.viewer-line-plot-empty{text-align:center;color:var(--fg-muted);flex:1;justify-content:center;align-items:center;padding:16px;font-size:13px;display:flex}.viewer-line-coords{grid-template-columns:14px repeat(2,minmax(0,1fr));align-items:center;gap:4px 6px;font-size:12px;display:grid}.viewer-line-coords input{width:100%;min-width:0}.viewer-line-coords-head{color:var(--fg-dim);font-size:11px}.viewer-line-coords-axis{color:var(--fg-dim);text-transform:uppercase;font-size:11px}
