body[data-physics=true] .rail{background:#fbfcfd}body[data-physics=true] .inspector{background:#fff}body[data-physics=true] #rail-body{padding:12px 10px}body[data-physics=true] #insp-body{padding:22px 20px}body[data-physics=true] .pane-head{height:44px}body[data-physics=true] .pane-head>span:first-child{letter-spacing:.04em}body[data-physics=true] .cad-inspector-controls{top:72px}body[data-physics=true] .cad-inspector-controls label:has([data-cut]){display:none}body[data-physics=true] .cad-trim-control{display:none}.physics-search{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;margin:0 2px 14px!important;padding:0 10px;height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink-3)}.physics-search input{border:0;background:transparent;min-width:0;width:100%;padding:0;box-shadow:none}.physics-search svg{flex:none}.physics-search:focus-within{border-color:var(--accent)}.physics-part-list{display:flex;flex-direction:column;gap:3px}.physics-part{width:100%;min-height:55px;padding:10px 12px;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink-2)}.physics-part:hover{background:#edf2f5}.physics-part.selected{background:#e5f0f5;border-color:#c8dfe9;color:var(--accent-ink)}.physics-part>svg{flex-shrink:0;opacity:.75}.physics-part>span{flex:1;min-width:0}.physics-part strong{display:block;font-size:12px;font-weight:550;line-height:1.45;overflow-wrap:anywhere}.physics-part small{display:block;font-size:10px;color:var(--ink-3);line-height:1.5}.physics-part.physics-all{min-height:40px;margin-bottom:9px}.physics-missing{width:6px;height:6px;border-radius:50%;background:#bd803c}.physics-no-results{padding:14px 12px}.physics-toolbar{position:absolute;z-index:5;top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;white-space:nowrap}.physics-pick-mode{display:flex;padding:3px;border:1px solid #d2dde5;border-radius:8px;background:#ffffffef;box-shadow:0 2px 8px #102e4410}.physics-pick-mode button{display:flex;align-items:center;gap:6px;border:0;border-radius:5px;padding:7px 10px;background:transparent;color:var(--ink-2);font-size:12px}.physics-pick-mode button[aria-pressed=true]{color:#fff;background:var(--accent)}body[data-physics=true] .canvas-body>.trim-tools{top:66px}.physics-general-open.btn{height:38px;padding:0 12px;border-radius:7px;background:#ffffffef;box-shadow:0 2px 8px #102e4410;font-size:12px}.physics-focus-tools{position:absolute;z-index:4;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;max-width:calc(100% - 32px);padding:6px 8px 6px 14px;border:1px solid #d2dde5;border-radius:8px;background:#ffffffef;box-shadow:0 2px 10px #102e4410}.physics-focus-tools[hidden]{display:none}.physics-focus-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;margin-right:8px}.physics-focus-tools .iconbtn{flex-shrink:0;border:0}.physics-focus-tools .iconbtn[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.physics-editor-heading{margin:0 0 24px}.physics-editor-heading h2{font-size:19px;font-weight:550;line-height:1.35;margin:0;letter-spacing:-.02em}.physics-detail-tabs{display:flex;gap:16px;margin:-6px 0 24px;border-bottom:1px solid var(--line)}.physics-detail-tabs button{display:flex;align-items:center;gap:7px;padding:9px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink-3);font-size:12px}.physics-detail-tabs button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--accent-ink);font-weight:600}.physics-detail-tabs span,.physics-interfaces summary span{font-size:10px;color:var(--ink-3);font-variant-numeric:tabular-nums}.physics-back-parts{display:flex;align-items:center;gap:7px;padding:8px 4px;margin-bottom:16px;border:0;background:transparent;color:var(--ink-2);font-size:12px}.physics-back-parts:hover{color:var(--accent-ink)}.physics-list-position.iconbtn{flex-shrink:0;color:var(--accent-ink)}.physics-surface-panel.physics-surface-list .assignment-faces{max-height:none;overflow:visible}body[data-physics=true] #rail-body:has(.physics-surface-list){padding:12px 18px}body[data-physics=true] .physics-surface-panel>.boundary-editor{padding-top:0}.physics-interfaces{margin:16px 0;padding:12px 0;border-block:1px solid var(--line)}.physics-interfaces summary{font-size:12px}.physics-interfaces summary span{margin-left:6px}.physics-interface-list{max-height:180px;overflow:auto;margin-top:10px}.physics-interface-list button{display:block;width:100%;padding:8px 6px;border:0;border-bottom:1px solid #eef1f3;background:transparent;text-align:left}.physics-interface-list button:hover{background:var(--accent-soft)}.physics-interface-list strong{display:block;font-size:11px;font-weight:550}.physics-interface-list small{display:block;margin-top:3px;color:var(--ink-3);font-size:10px}.physics-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 4px;color:var(--ink-3)}.physics-empty p{margin:0;font-size:12px}.physics-body-panel label{display:flex;flex-direction:column;gap:7px;margin:16px 0;font-size:11px;color:var(--ink-2)}.physics-body-panel input:not([type=checkbox]),.physics-body-panel select{width:100%;min-height:35px;font-size:12px;border-radius:5px}.physics-body-panel input[type=checkbox]{width:14px}.physics-body-panel label:has(input[type=checkbox]){flex-direction:row;align-items:center}.physics-body-panel h3{margin:22px 0 12px;font-size:12px;font-weight:600}.physics-body-panel details{margin:20px 0;border-top:1px solid var(--line);padding-top:14px}.physics-body-panel summary{font-size:12px;font-weight:550}.physics-body-panel small{display:block;color:var(--ink-3);line-height:1.5;font-size:10px;margin-top:4px}.physics-body-panel dl{font-size:12px;row-gap:10px}.physics-body-panel .physics-error,.physics-body-panel [role=alert]{color:var(--bad);font-size:11px}.physics-body-panel .physics-problems{margin-top:14px;padding:2px 12px 4px;border:1px solid var(--bad);border-radius:6px}.physics-body-panel .physics-problems h3{margin:10px 0 6px}.physics-body-panel .physics-problems p{margin:0 0 8px;line-height:1.45}.physics-body-panel input[aria-invalid=true]{border-color:var(--bad)}.physics-surface-panel .assignment-filters{grid-template-columns:1fr}.physics-surface-panel [hidden]{display:none!important}.physics-surface-panel .assignment-filters input{min-height:34px}.physics-surface-panel .assignment-faces{max-height:200px;border:0;margin:16px 0}.physics-surface-panel .assignment-face{border-bottom:1px solid #eef1f3;gap:9px;padding:6px;border-radius:4px;-webkit-user-select:none;user-select:none}.physics-surface-panel .assignment-face strong{font-weight:550;font-size:11px}.physics-surface-panel .assignment-face small{color:var(--ink-3);font-size:10px;margin-top:3px}.physics-surface-panel .boundary-editor{padding-top:20px}.physics-surface-panel .boundary-editor h3{font-size:13px;margin-bottom:16px}.physics-surface-panel .boundary-editor label{margin:14px 0;gap:7px}.physics-surface-panel .boundary-editor input,.physics-surface-panel .boundary-editor select{min-height:35px;border-radius:5px}.physics-gas-link{width:100%;margin-top:20px}.physics-owner-choice{display:flex;flex-direction:column;gap:8px}.physics-body-panel .physics-muted{font-size:10px;line-height:1.5;color:var(--ink-3)}.physics-body-panel .physics-readonly-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #f0f3f5;font-size:12px}.physics-body-panel .physics-property-label{color:var(--ink-2)}.physics-body-panel .physics-property-value{font-weight:550;text-align:right;font-variant-numeric:tabular-nums}.physics-body-panel .physics-property-value small{display:block;font-weight:400;margin-top:3px}.physics-body-panel .physics-composition{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.physics-body-panel .physics-section+.physics-section{margin-top:22px}.physics-phase-chip{display:inline-flex;padding:4px 8px;margin-top:-10px;border-radius:4px;background:#edf3f6;color:var(--ink-2);font-size:10px}.physics-composition-actions{display:flex;justify-content:flex-end;margin:10px 0 16px}.physics-velocity-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}body[data-physics=true] .view-cube-host{top:78px;right:16px;width:88px;height:88px}@media(min-width:700px)and (max-width:1179px){body[data-physics=true] .work{grid-template-columns:var(--physics-rail,0px) minmax(0,1fr) var(--physics-inspector,0px)}body[data-physics=true][data-rail=open] .work{--physics-rail:264px}body[data-physics=true][data-inspector=open] .work{--physics-inspector:300px}body[data-physics=true] .rail,body[data-physics=true] .inspector{position:relative;inset:auto;width:auto;box-shadow:none;z-index:2}}@media(max-width:899px){body[data-physics=true] .rail{width:264px}body[data-physics=true] .inspector{width:300px}.physics-toolbar{top:14px;gap:8px}.physics-pick-mode button{padding:7px 8px}.physics-focus-tools{bottom:16px}}@media(max-width:550px){.physics-toolbar{left:46px;right:46px;transform:none;justify-content:center;gap:6px}.physics-pick-mode button{font-size:11px;padding:7px}.physics-general-open.btn{padding:0 8px;font-size:11px}.physics-general-open svg{display:none}}@media(max-width:699px){body[data-physics=true] .work{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}body[data-physics=true][data-rail=open] .work,body[data-physics=true][data-inspector=open] .work{grid-template-rows:minmax(0,55fr) minmax(0,45fr)}body[data-physics=true] .canvas{grid-column:1;grid-row:1;min-height:0}body[data-physics=true] .rail,body[data-physics=true] .inspector{grid-column:1;grid-row:2;position:relative;inset:auto;width:auto;min-height:0;border:0;border-top:1px solid var(--line);box-shadow:none}body[data-physics=true][data-rail=open][data-inspector=open] .work{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body[data-physics=true][data-rail=open][data-inspector=open] .canvas{grid-column:1 / -1}body[data-physics=true][data-rail=open][data-inspector=open] .inspector{grid-column:2;border-left:1px solid var(--line)}}.physics-body-panel .physics-check{gap:8px;margin:8px 0;font-size:12px}.physics-surface-summary{margin:0 0 10px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.physics-surface-summary.needs{color:var(--warn)}.physics-interface-group{margin-top:8px}.physics-interface-group summary{display:flex;list-style:none;flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:12px;cursor:pointer}.physics-interface-group summary strong{font-weight:550}.physics-interface-group summary small{color:var(--ink-3);font-size:10px;font-variant-numeric:tabular-nums}.physics-interface-group summary:before{content:"▸";flex:0 0 12px;color:var(--ink-3)}.physics-interface-group[open]>summary:before{content:"▾"}.physics-interface-group .physics-interface-list{margin-top:6px;padding-left:10px}.physics-interfaces summary:focus-visible,.physics-interface-group summary:focus-visible,.physics-interface-list button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.physics-species{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:10px 0 4px}.species-chips{display:flex;flex-wrap:wrap;gap:4px}.species-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border-radius:4px;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;font-weight:550}.species-chip-remove{border:0;background:none;color:inherit;cursor:pointer;padding:0 4px;font-size:13px;line-height:1;border-radius:3px}.species-chip-remove:hover{background:var(--danger-soft);color:var(--danger)}.species-picker{width:100%;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.species-picker-search{width:100%;min-height:30px;border:0;border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;padding:0 8px;font-size:12px}.species-picker-list{list-style:none;margin:0;padding:2px;max-height:150px;overflow:auto}.species-picker-item{display:flex;justify-content:space-between;gap:8px;width:100%;padding:5px 6px;border:0;border-radius:3px;background:none;font-size:12px;text-align:left;cursor:pointer}.species-picker-item:hover,.species-picker-item:focus-visible{background:var(--accent-soft)}.species-picker-item small,.species-picker-empty{color:var(--ink-3);font-size:11px}.species-picker-empty{padding:6px}.physics-composition-actions{align-items:center;gap:10px}.physics-composition-sum{margin-right:auto;color:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}.physics-composition-sum.off{color:var(--danger);font-weight:600}.physics-body-panel .physics-psd{margin:16px 0}.physics-body-panel .physics-psd table{margin-top:8px}.physics-body-panel .physics-psd th{padding:4px 3px;letter-spacing:0;text-transform:none}.physics-body-panel .physics-psd td{padding:2px 3px}.physics-body-panel .physics-psd td input{min-height:28px;padding:0 4px;font-size:11px}.physics-body-panel .physics-psd td:last-child{width:28px}.physics-body-panel .physics-charge-readouts{margin:12px 0}.physics-body-panel .physics-reaction-warning{margin:8px 0;font-size:11px;line-height:1.45}.physics-body-panel .physics-interface-exchange{margin:6px 0 10px;padding-left:18px;font-size:12px}.model-list .model-rows{list-style:none;margin:0 0 var(--s3);padding:0}.model-row{border-top:1px solid var(--line);font-size:12px}.model-row:last-child{border-bottom:1px solid var(--line)}.model-row-head{display:flex;align-items:center;gap:var(--s2);min-width:0;padding:3px 0}.model-toggle{flex:1 1 auto;min-width:0;text-align:left;font:inherit;font-size:12px;color:var(--ink);background:none;border:0;padding:3px var(--s2);border-radius:var(--r-1);overflow-wrap:anywhere;cursor:pointer}button.model-toggle:before{content:"▸";display:inline-block;width:12px;color:var(--ink-3)}button.model-toggle[aria-expanded=true]:before{content:"▾"}span.model-toggle{cursor:default;padding-left:calc(var(--s2) + 12px)}button.model-toggle:hover{background:var(--accent-soft)}.model-chip{flex:none;font-size:10px;line-height:1.4;padding:0 var(--s3);border-radius:var(--r-1);color:var(--accent-ink);background:var(--accent-soft)}.model-reset{flex:none;font-size:10px;padding:1px var(--s3);min-height:0}.model-remove{flex:none;width:20px;height:20px;padding:0;min-height:0;line-height:1;font-size:14px;color:var(--ink-2)}.model-warning{display:block;padding:0 var(--s2) var(--s2) calc(var(--s2) + 12px);font-size:10px;color:var(--ink-2)}.model-settings{padding:var(--s3) var(--s2) var(--s4)}.model-settings[hidden]{display:none}.model-add-button{width:100%}.model-add-popover{position:fixed;inset:auto;margin:0;width:min(280px,calc(100vw - 24px));max-height:min(420px,calc(100vh - 24px));overflow:auto;padding:var(--s4);border:1px solid var(--line-strong);border-radius:var(--r-2);box-shadow:var(--sh-2);color:var(--ink);background:var(--surface)}.model-add-popover::backdrop{background:transparent}.model-add-popover:not(:popover-open){display:none}.model-search{width:100%;box-sizing:border-box;margin-bottom:var(--s3);font-size:12px}.model-options{display:flex;flex-direction:column;gap:var(--s3)}.model-group-head{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);padding:0 var(--s2)}.model-group-reason{display:block;font-size:10px;color:var(--ink-3);padding:0 var(--s2) 2px}.model-option{display:flex;flex-direction:column;gap:1px;padding:3px var(--s3);border-radius:var(--r-1);font-size:12px;cursor:pointer}.model-option small{font-size:10px;color:var(--ink-3)}.model-option:hover,.model-option.active{background:var(--accent-soft)}.model-option[aria-disabled=true]{color:var(--ink-3);cursor:not-allowed}.model-option[aria-disabled=true]:hover:not(.active){background:none}.model-empty{font-size:11px;color:var(--ink-3);padding:var(--s3)}.model-toggle:focus-visible,.model-reset:focus-visible,.model-remove:focus-visible,.model-search:focus-visible,.model-add-button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.model-option.active{outline:2px solid var(--focus);outline-offset:-2px}:root{--s1:2px;--s2:4px;--s3:6px;--s4:8px;--s5:12px;--s6:16px;--s7:24px;--s8:32px;--bg:#e9edf0;--surface:#fff;--surface-2:#f5f7f9;--surface-3:#eaeef1;--canvas:#e4e9ed;--chrome:#1d2b36;--chrome-2:#2a3c4a;--line:#d5dde3;--line-strong:#bcc8d1;--focus:#3a93bd;--ink:#1c2a34;--ink-2:#566874;--ink-3:#7f8f9b;--ink-invert:#f2f6f8;--accent:#1d6684;--accent-hover:#175473;--accent-soft:#e2eff4;--accent-ink:#12495f;--ok:#2b7a58;--ok-soft:#e2f1e9;--warn:#8a6410;--warn-soft:#faf0d9;--danger:#a4382a;--danger-soft:#fae7e3;--live:#a85d00;--ramp:linear-gradient(90deg,#2a31dc,#22bfd6,#33d74f,#e3d722,#dd2929);--sh-1:0 1px 2px rgb(20 40 55/.08);--sh-2:0 2px 8px rgb(20 40 55/.12);--sh-3:0 12px 40px rgb(15 35 50/.22);--r-1:3px;--r-2:6px;--r-3:10px;--rail:280px;--inspector:300px;--font:"Segoe UI",Inter,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",monospace;font-family:var(--font);font-size:12px;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html,body,#app{height:100%;width:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px}svg{flex:none}#app{display:grid;grid-template-rows:36px minmax(0,1fr) 40px}.topbar{grid-row:1;display:flex;align-items:stretch;min-width:0;background:var(--chrome);color:var(--ink-invert)}.topbar .brand{width:36px;flex:0 0 36px;display:grid;place-items:center;background:#16222b;font-weight:650;font-size:15px;color:#cfe3ec;text-decoration:none}.topbar .project{display:flex;align-items:center;gap:var(--s3);padding:0 var(--s5);font-weight:600;white-space:nowrap;border-right:1px solid #31434f;max-width:240px;overflow:hidden;text-overflow:ellipsis;flex:none}nav{display:flex;align-items:stretch;flex:1;min-width:0;overflow:hidden}nav button{display:flex;align-items:center;gap:var(--s3);padding:0 var(--s5);background:none;border:0;border-bottom:2px solid transparent;color:#a8bcc8;white-space:nowrap;min-width:0;max-width:170px;overflow:hidden;text-overflow:ellipsis}nav button:hover:not([disabled]){background:var(--chrome-2);color:#e8f1f5}nav button[disabled]{opacity:.45;cursor:not-allowed}nav span{font-size:10px;color:#8ea2ae}nav .selected{color:#fff;font-weight:600;background:var(--chrome-2);border-bottom-color:#54a8c9}nav .selected span{color:#cfe3ec}nav b,nav .step-check{display:inline-flex;align-items:center;color:#93cfb0}nav .step-check>svg{display:block}.topbar-right{display:flex;align-items:center;gap:var(--s4);padding:0 var(--s5);flex:none;border-left:1px solid #31434f}.app-links{display:flex;align-items:center;gap:var(--s4)}.app-links a{font-size:11px;color:#a8bcc8;text-decoration:none;white-space:nowrap}.app-links a:hover{color:#e8f1f5;text-decoration:underline}.engine{display:flex;align-items:center;gap:var(--s3);font-size:11px;color:#a8bcc8;white-space:nowrap}.engine i{width:7px;height:7px;border-radius:50%;background:#5cbf8e}#state-label{font-size:11px;color:#a8bcc8;white-space:nowrap}.topbar .btn{background:transparent;border-color:#445a68;color:#dceaf1;height:24px;min-height:24px}.topbar .btn:hover:not(:disabled){background:var(--chrome-2)}.topbar .btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.topbar .settings-launcher{margin:0}.topbar .settings-popover{color:var(--ink)}.work{grid-row:2;display:grid;min-height:0;position:relative;grid-template-columns:var(--rail) minmax(0,1fr) var(--inspector);transition:grid-template-columns .12s ease}body[data-rail=closed] .work,body[data-rail-available=false] .work{--rail:0px}body[data-inspector=closed] .work,body[data-inspector-available=false] .work{--inspector:0px}body[data-rail-available=false] .rail,body[data-inspector-available=false] .inspector{display:none}body[data-rail-available=false] .edgetoggle.left,body[data-inspector-available=false] .edgetoggle.right{display:none!important}.rail{grid-column:1;border-right:1px solid var(--line)}.canvas{grid-column:2}.inspector{grid-column:3;border-left:1px solid var(--line)}.rail,.inspector{background:var(--surface);min-width:0;display:flex;flex-direction:column;overflow:hidden}body[data-rail=closed] .rail,body[data-inspector=closed] .inspector{display:none}.pane-head{height:28px;flex:none;display:flex;align-items:center;gap:var(--s3);padding:0 var(--s4) 0 var(--s5);background:var(--surface-2);border-bottom:1px solid var(--line);font:650 10px/12px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.pane-head .spacer,.btnrow .spacer{flex:1}.pane-body{flex:1;min-height:0;overflow:auto;padding:var(--s4) var(--s5) var(--s7)}.pane-body::-webkit-scrollbar{width:9px}.pane-body::-webkit-scrollbar-thumb{background:#c8d3da;border-radius:9px;border:3px solid var(--surface)}[role=tabpanel][hidden]{display:none!important}.canvas{position:relative;background:var(--canvas);min-width:0;overflow:hidden}.canvas-body{position:absolute;inset:0}#viewport,#assembly-viewport{position:absolute;inset:0;overflow:hidden}#viewport canvas,#assembly-viewport canvas{display:block;width:100%;height:100%}.canvas-body>.cad-inspector-controls,.canvas-body>.viewbar,.canvas-body>.trim-tools,.canvas-body>.section-actions,.canvas-body>#probe,.canvas-body>.legend,.canvas-body>#selection,.canvas-body>.pick-tools,#viewport>.picked{position:absolute;z-index:6;margin:0;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--sh-1);max-width:calc(100% - 16px)}.canvas-body>.cad-inspector-controls{top:var(--s4);left:var(--s4);padding:3px 5px}.canvas-body>.trim-tools{top:var(--s4);right:132px;padding:3px 5px}.canvas-body>.section-actions{top:var(--s4);left:var(--s4);padding:3px 5px}.canvas-body>.pick-tools{top:44px;left:var(--s4);padding:3px}body[data-rail=closed] .canvas-body>.pick-tools{left:34px}.canvas-body>.viewbar{bottom:var(--s4);right:var(--s4);padding:4px var(--s4);font-size:11px;color:var(--ink-2);display:flex;align-items:center;gap:var(--s3)}.canvas-body>.viewbar:empty{display:none}.canvas-body>#probe,.canvas-body>#selection,#viewport>.picked{bottom:var(--s4);left:var(--s4);padding:4px var(--s4);font-size:11px;color:var(--ink-2)}.canvas-body>#selection:empty{display:none}.canvas-body>.legend{bottom:var(--s4);left:50%;transform:translate(-50%);padding:4px var(--s4)}body[data-rail=closed] .canvas-body>.cad-inspector-controls,body[data-rail=closed] .canvas-body>.section-actions{left:34px}body[data-inspector=closed] .view-cube-host{right:34px}.edgetoggle{position:absolute;top:var(--s4);z-index:7;width:24px;height:28px;display:none;place-items:center;background:#ffffffe6;border:1px solid var(--line);box-shadow:var(--sh-1);color:var(--ink-2)}.edgetoggle.left{left:0;border-left:0;border-radius:0 var(--r-2) var(--r-2) 0}.edgetoggle.right{right:0;border-right:0;border-radius:var(--r-2) 0 0 var(--r-2)}body[data-rail=closed] .edgetoggle.left,body[data-inspector=closed] .edgetoggle.right{display:grid}body[data-layout=sheet] .canvas{background:var(--bg)}body[data-layout=sheet] .canvas-body{overflow:auto;padding:var(--s5)}body[data-layout=log] .canvas{background:#172633}body[data-layout=log] #logs{position:absolute;inset:0;margin:0;border-radius:0;height:auto;max-height:none}.actionbar{grid-row:3;display:flex;align-items:center;gap:var(--s4);padding:0 var(--s5);background:var(--surface);border-top:1px solid var(--line-strong);min-width:0}.actionbar .status{display:flex;align-items:center;gap:var(--s3);color:var(--ink-2);min-width:0}.actionbar .status>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actionbar .status.bad{color:var(--danger)}.actionbar .status.ok{color:var(--ok)}.actionbar .spacer{flex:1}.actionbar .notice{margin:0;padding:3px var(--s4);border-radius:var(--r-1);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46%}.btnrow{display:flex;align-items:center;gap:var(--s3)}h2{font-size:12px;font-weight:650;margin:0 0 var(--s4);display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}h3{font-size:12px;font-weight:600;margin:var(--s5) 0 var(--s3)}p{font-size:12px;line-height:1.45;margin:var(--s3) 0 var(--s4)}small,.muted{font-size:11px;color:var(--ink-3)}a,.link{color:var(--accent)}.link{border:0;background:none;padding:2px 0;text-decoration:underline}dl{display:grid;grid-template-columns:1fr auto;gap:var(--s2) var(--s4);margin:var(--s4) 0;font-size:11px}dt{color:var(--ink-2)}dd{margin:0;text-align:right;font-variant-numeric:tabular-nums slashed-zero;overflow-wrap:anywhere}hr{border:0;border-top:1px solid var(--line);margin:var(--s5) 0}.fingerprint{font:10px var(--mono);color:var(--ink-3)}details{padding:var(--s3) 0}summary{cursor:pointer;color:var(--ink-2);font-size:11px}pre{font:11px/1.55 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;max-height:320px}.panel{border:0;padding:0;background:transparent;min-width:0}.pane-body>.panel+.panel{margin-top:var(--s5)}.sec{display:flex;align-items:center;gap:var(--s3);margin:var(--s6) 0 var(--s4);font:650 10px/12px var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.sec:first-child{margin-top:0}label{display:flex;flex-direction:column;gap:var(--s2);font-size:11px;color:var(--ink-2);min-width:0;margin:var(--s3) 0}input,select,textarea{width:100%;min-width:0;min-height:24px;padding:2px 6px;border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--surface);color:var(--ink)}input[type=number]{font-variant-numeric:tabular-nums slashed-zero}input:hover,select:hover{border-color:#a7b6c1}input:disabled,select:disabled,input[readonly]{background:var(--surface-2);color:var(--ink-3)}textarea{padding:6px}label:has(>input[type=checkbox]){flex-direction:row;align-items:center;gap:var(--s3)}label>input[type=checkbox]{width:14px;height:14px;min-height:0;margin:0;flex:0 0 14px}.row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.row h2,.row h3{margin-right:auto;margin-bottom:0}.row select,.row input{width:auto}.two-col,.three-col{display:grid;gap:var(--s2) var(--s4)}.two-col{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.three-col{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}.material{padding:var(--s4) 0;border-bottom:1px solid var(--line)}.material .row{margin-bottom:var(--s3)}.material h3{flex:1 1 100%;margin:var(--s2) 0}table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}th{text-align:left;font:650 10px/12px var(--font);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:5px 6px;background:var(--surface-2);border-bottom:1px solid var(--line)}td{padding:3px 6px;border-bottom:1px solid var(--line)}td select{width:100%;min-height:22px;font-size:11px}.boundary-list{overflow:auto}.technical-details summary{font-size:10px}.notice{padding:var(--s3) var(--s4);background:var(--ok-soft);color:var(--ok);border-radius:var(--r-1)}.notice.error{background:var(--danger-soft);color:var(--danger)}.error-text{font-size:11px;color:var(--danger)}.body-row{display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:var(--r-1);background:none;margin:1px 0;padding:4px 6px;color:var(--ink)}.body-row:hover{background:var(--surface-2)}.body-row small{display:block;font-size:10px;color:var(--ink-3)}.body-row.chosen{background:var(--accent-soft);border-color:#bcd8e4}.jobs{margin-top:var(--s4)}.job{padding:var(--s3) 0;border-top:1px solid var(--line)}.job>div:first-child{display:flex;justify-content:space-between;gap:var(--s3);font-size:11px}.job strong{text-transform:capitalize;font-weight:600}.job small{display:block;margin-top:2px;color:var(--ink-3);font-size:10px}.job-status{font-size:10px;padding:1px 5px;background:var(--surface-3);border-radius:var(--r-1)}.completed{color:var(--ok);background:var(--ok-soft)}.failed,.cancelled{color:var(--danger);background:var(--danger-soft)}.running{color:var(--accent-ink);background:var(--accent-soft)}#logs{background:#172633;color:#ccdae5;padding:var(--s5);border-radius:var(--r-1)}.results-tools>label{margin:var(--s3) 0}.slice-bar{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin:var(--s4) 0;font-size:11px}.slice-bar label{flex-direction:row;align-items:center;white-space:nowrap;margin:0}.slice-bar select{width:54px}.slice-bar input[type=range]{flex:1;min-width:90px}.second-cut{border-left:2px solid #d98c3e;padding-left:var(--s3)}#cut-position{min-width:44px;font-variant-numeric:tabular-nums}.legend{display:flex;align-items:center;gap:var(--s3);font:10px var(--mono);color:var(--ink-2)}.legend i{display:block;width:150px;height:8px;border-radius:2px;background:var(--ramp)}.legend:is(button){cursor:pointer}.legend:is(button):hover{border-color:var(--accent)}.settings-popover.color-scale-popover{position:fixed;inset:auto;margin:0;width:min(360px,calc(100vw - 24px))}.settings-popover.color-scale-popover::backdrop{background:transparent}.color-scale-actions{grid-column:1 / -1;justify-content:flex-end}.results-footer{position:absolute;z-index:6;bottom:var(--s4);left:var(--s4);right:var(--s4);display:flex;flex-direction:column;gap:var(--s3);pointer-events:none}.results-footer :is(#probe,.legend,.viewbar){pointer-events:auto;margin:0;padding:4px var(--s4);max-width:100%;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--sh-1);color:var(--ink-2)}.results-footer #probe{align-self:flex-start;overflow-wrap:anywhere}.results-scale-row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--s3);min-width:0}.results-scale-row .legend{margin-inline:auto;min-width:0}.results-scale-row .legend i{flex:0 1 150px;min-width:24px}.results-scale-row .legend span{overflow-wrap:anywhere}.results-scale-row .viewbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);font-size:11px}.result-probe-marker{position:absolute;z-index:5;width:18px;height:18px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:#18384d;box-shadow:0 0 0 2px #18384d,0 2px 8px #0008;pointer-events:none}.result-probe-marker:before,.result-probe-marker:after{content:"";position:absolute;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%)}.result-probe-marker:before{width:10px;height:2px}.result-probe-marker:after{width:2px;height:10px}.result-probe-marker span{position:absolute;left:17px;top:-12px;padding:1px 5px;border:1px solid #fff;border-radius:4px;color:#fff;background:#18384d;font:600 11px var(--mono)}.result-line-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:hidden}.result-line-overlay circle{fill:#18384d;stroke:#fff;stroke-width:2px}.result-line-overlay text{font:700 14px var(--mono);fill:#18384d;stroke:#fff;stroke-width:3px;paint-order:stroke}.line-snap-overlay [data-centres]{fill:none;stroke:#087d91;stroke-width:1.5;opacity:.65}.line-snap-overlay [data-guide]{stroke:#087d91;stroke-width:1.5;stroke-dasharray:6 5}.line-snap-overlay [data-preview]{stroke:#18384d;stroke-width:2;stroke-dasharray:4 3}.line-snap-overlay [data-cursor] path{stroke:#087d91;stroke-width:1.5}.line-snap-overlay [data-cursor] circle{fill:#fff;stroke:#087d91;stroke-width:2}.line-snap-overlay text{font-size:11px}.reader-precision{min-width:0;margin:2px 0 4px;padding:0;border:0}.reader-precision legend{padding:0;margin-bottom:6px;color:var(--ink-2);font-size:12px}.reader-precision-options{display:grid;grid-template-columns:1fr 1fr;padding:3px;gap:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.reader-precision-options label{position:relative;min-width:0;margin:0;cursor:pointer}.reader-precision-options input{position:absolute;opacity:0;width:1px;height:1px}.reader-precision-options span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:4px;border:1px solid transparent;border-radius:5px;color:var(--ink-2);transition:background .12s,color .12s}.reader-precision-options strong{font-size:12px;font-weight:600}.reader-precision-options small{font-size:10px;color:var(--ink-3)}.reader-precision-options input:checked+span{color:var(--accent);background:var(--surface);border-color:var(--line-strong);box-shadow:0 1px 3px #18384d14}.reader-precision-options input:checked+span small{color:inherit}.reader-precision-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.reader-precision-options label:hover span{background:var(--surface)}.reader-precision p{margin:5px 0 0;color:var(--ink-3);font-size:10px;line-height:1.4}.line-plot-panel{pointer-events:auto;align-self:flex-end;width:min(520px,100%);max-height:45vh;overflow:auto;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:var(--sh-2)}.line-plot-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);font-size:12px}.line-plot-heading .row{flex-shrink:0}.line-plot-chart{display:block;width:100%;height:auto;touch-action:pan-y}.line-plot-chart text{fill:var(--ink-2);font:10px var(--mono)}.line-plot-chart .plot-grid{stroke:var(--line);stroke-width:1}.line-plot-curve{fill:none;stroke:var(--accent);stroke-width:1.8;vector-effect:non-scaling-stroke}.line-plot-cursor{stroke:var(--ink-2);stroke-dasharray:3 3}.line-plot-gap{fill:var(--ink-2);fill-opacity:.12}.line-plot-value{display:block;min-height:18px;overflow-wrap:anywhere;font:11px var(--mono)}.line-plot-panel details{margin-top:var(--s2);color:var(--ink-2);font-size:11px}.line-plot-panel details p{margin:var(--s2) 0;overflow-wrap:anywhere}#probe{font:11px var(--mono)}.section-actions{display:flex;align-items:center;gap:var(--s1)}.section-actions .iconbtn,.cad-inspector-controls .iconbtn{width:28px;height:28px}.compare-table{margin-top:var(--s5)}.viewbar>.live-snapshot{font-weight:650;color:var(--live)}.snapshot-status{margin:var(--s2) 0 0;font-size:11px}.empty{padding:var(--s8);max-width:640px;margin:var(--s7) auto;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2)}.empty>svg{color:var(--ink-3);margin:0 auto var(--s4)}.empty h2{font-size:20px;font-weight:600;justify-content:center}dialog{border:0;padding:var(--s6);border-radius:var(--r-3);box-shadow:var(--sh-3);width:min(580px,calc(100vw - 32px));max-height:85vh;color:var(--ink);background:var(--surface)}dialog::backdrop{background:#14263466}dialog h2{font-size:14px}dialog label{margin:var(--s4) 0}.close{float:right;border:0;font-size:inherit;padding:0;margin:0;background:none}.component-list{overflow:auto}.component-row{display:flex;align-items:center;gap:var(--s3);padding:4px 6px;border-bottom:1px solid var(--line);min-height:30px}.component-row input{width:auto;margin:0}.component-row input[type=checkbox]{min-height:0}.component-row span{min-width:0}.component-row strong{font-size:11px;font-weight:500}.component-row small{display:block;overflow-wrap:anywhere;color:var(--ink-3);font-size:10px}.component-row:has(input:checked){background:var(--accent-soft)}.recipe-row{display:flex;align-items:center;gap:var(--s3);padding:5px 0;border-bottom:1px solid var(--line)}.recipe-row span{flex:1;min-width:0}.selection-mode{display:flex;gap:1px;padding:1px;border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--surface-2)}.selection-mode .iconbtn{padding:0;min-height:0}#preparation-audit pre,#candidate-evidence,#inspection-evidence{max-height:200px}.assignment-filters{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin:var(--s3) 0}.assignment-filters>*{width:100%}.assignment-faces{max-height:40vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-1);margin:var(--s3) 0}.assignment-face{display:flex;align-items:center;gap:var(--s3);padding:2px 6px;border-bottom:1px solid var(--line)}.assignment-face.chosen{background:var(--accent-soft)}.assignment-face>input{width:14px;min-height:14px;flex:0 0 14px}.assignment-face>button{flex:1;text-align:left;border:0;background:transparent;padding:3px 0;min-width:0}.assignment-face strong,.assignment-face small{display:block;overflow-wrap:anywhere;font-size:11px}.boundary-editor{border-top:1px solid var(--line);padding-top:var(--s3)}.boundary-editor .btn{width:100%;margin-top:var(--s3)}.boundary-editor h3{margin:var(--s3) 0}.boundary-editor p:empty{display:none}.trim-tools,.trim-tabs{display:flex;align-items:center;gap:var(--s2)}.trim-tabs{max-width:180px;overflow-x:auto}.trim-tabs button[aria-pressed=true]{background:var(--accent);color:#fff}.trim-tabs button{border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--surface);padding:2px 6px}.trim-axis-picker{inset:auto;width:220px;padding:var(--s5);border:1px solid var(--line-strong);border-radius:var(--r-1);box-shadow:var(--sh-2);background:var(--surface);color:var(--ink)}.trim-axis-picker>div{display:flex;gap:var(--s3);margin:var(--s4) 0}.trim-axis-picker button{flex:1}.cad-trim-control{position:absolute;z-index:5;display:flex;align-items:center;gap:var(--s3);padding:4px var(--s4);background:#fffffff5;border:1px solid #68a0b4;border-radius:var(--r-1);box-shadow:var(--sh-2);white-space:nowrap;font-size:11px}.cad-trim-control label{flex-direction:row!important;align-items:center;gap:var(--s2);margin:0!important}.cad-trim-control input{width:74px!important;min-height:22px!important}.cad-trim-control strong{color:var(--accent-ink)}.trim-boundary-popover{margin:0;width:310px;max-height:calc(100vh - 24px);overflow:auto;padding:var(--s5);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-2);box-shadow:var(--sh-2)}.trim-boundary-popover label{margin:var(--s3) 0}.trim-boundary-popover label[hidden],.trim-boundary-popover [data-properties][hidden]{display:none!important}.trim-boundary-help{font-size:11px;color:var(--ink-3);margin:var(--s3) 0}.settings-popover{width:min(560px,calc(100vw - 24px));max-height:80vh;overflow:auto;padding:var(--s6);border:1px solid var(--line-strong);border-radius:var(--r-2);box-shadow:var(--sh-2);color:var(--ink);background:var(--surface)}.settings-popover::backdrop{background:#1426342e}.popover-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:var(--s3);margin-bottom:var(--s4)}.settings-launcher{margin:var(--s3) 0}.settings-launcher>.btn{width:100%}.heater-choices{display:flex;flex-direction:column;gap:2px}.heater-choices label{margin:2px 0!important}.operating-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s5)}.operating-fields p{grid-column:1/-1}.heater-targets{grid-column:1/-1;border:1px solid var(--line);padding:var(--s4);margin:var(--s3) 0}.derived-control{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);padding:var(--s4);margin:0 0 var(--s4);border:1px solid var(--line);background:var(--surface-2);font-size:11px}.derived-control span{color:var(--ink-2)}.derived-control strong{font-weight:650;color:var(--accent-ink)}.filebtn{position:relative}.mesh-preflight,.mesh-proposal,.derived-controls,.stage-timeline{margin:var(--s4) 0;padding:0}.mesh-preflight h2,.mesh-proposal h2,.derived-controls h2,.stage-timeline h2{margin:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--s4)}.preflight-badge{padding:1px 5px;border-radius:var(--r-1);font-size:10px;font-weight:600}.preflight-badge.ready{background:var(--ok-soft);color:var(--ok)}.preflight-badge.screened{background:var(--warn-soft);color:var(--warn)}.preflight-badge.blocked{background:var(--danger-soft);color:var(--danger)}.mesh-preflight ul,.proposal-errors{margin:var(--s3) 0 0;padding-left:16px}.mesh-preflight li,.proposal-errors li{font-size:11px;margin:var(--s2) 0}.mesh-preflight li span{font-family:var(--mono);color:var(--danger)}.mesh-preflight li small,.stage-error small{display:block;color:var(--ink-3);margin-top:1px}.preflight-warning,.preflight-warning span{color:var(--warn)!important}.preflight-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}.mesh-preflight li.preflight-gas-gap-unresolvable>span,.mesh-preflight li.preflight-gas-gap-under-resolved>span,.mesh-preflight li.preflight-thin-wedge-capped>span,.mesh-preflight li.preflight-fast-draft-mesh>span{font-family:inherit;font-weight:600}.preflight-resources{font-size:11px;color:var(--ink-2);margin:var(--s3) 0}.mesh-proposal{overflow:auto}.mesh-proposal table{font-size:10px}.mesh-proposal th,.mesh-proposal td{padding:3px 4px;vertical-align:top}.mesh-proposal th{white-space:nowrap}.mesh-proposal input{width:46px;min-height:20px;padding:1px 3px}.mesh-proposal tr.selected{background:var(--accent-soft)}.proposal-budget{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s3) 0;color:var(--ink-2);font-size:11px}.proposal-budget span{flex:1 1 100%}.proposal-budget i{display:block;flex:1 1 100%;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--accent) var(--budget),var(--surface-3) var(--budget))}.proposal-errors{color:var(--danger)}.refinement-volumes{display:grid;gap:var(--s4);margin-top:var(--s3)}.rv-row{display:grid;gap:var(--s3);padding:var(--s3);border:1px solid var(--surface-3);border-radius:4px}.rv-head{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end}.rv-head input[data-rv-field=name]{flex:1 1 90px;min-width:0}.rv-level input{width:46px}.rv-body{display:grid;gap:var(--s3)}.rv-vec{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s2);font-size:10px}.rv-vec>span{flex:1 1 100%;color:var(--ink-2)}.rv-num input{width:100%;min-width:0}.rv-vec .rv-num{flex:1 1 56px}.rv-meta,.rv-intro,.rv-bounds,.rv-total{margin:0;font-size:10px}.rv-refusal{margin:0}.rv-warnings{margin:0;padding-left:16px;font-size:11px;color:var(--ink-2)}.rv-add{display:flex;flex-wrap:wrap;gap:var(--s2)}.face-proposal{margin-top:var(--s4)}.derived-controls dl{grid-template-columns:minmax(80px,1fr) minmax(70px,1fr);gap:2px;font-size:10px}.stage-bars{display:flex;flex-direction:column;gap:var(--s2);margin-top:var(--s3)}.stage-bar{display:grid;grid-template-columns:92px minmax(24px,1fr) 44px;align-items:center;gap:var(--s3);font-size:10px}.stage-bar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}.stage-bar>i{display:block;height:5px;width:var(--stage-width);min-width:3px;background:#7aa8bb;border-radius:3px}.stage-bar.skipped>i{background:var(--line-strong)}.stage-bar.failed>i{background:var(--danger)}.stage-bar small{text-align:right;color:var(--ink-3)}.stage-error{margin-top:var(--s4);padding:var(--s3);border-left:2px solid var(--danger);background:var(--danger-soft);font-size:11px;color:#7d2b20}.surface-cache-notice{padding:var(--s3) var(--s4);margin:var(--s4) 0;border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-size:11px}.cad-inspector-controls .row{flex-wrap:wrap;gap:var(--s2);margin:1px 0;align-items:center}.cad-inspector-controls label{flex-direction:row;align-items:center;gap:var(--s2);margin:0}.cad-inspector-controls select{width:auto;min-width:52px}.cad-inspector-controls input[type=range]{width:130px}.cad-inspector-controls input[type=checkbox]{width:auto}.cad-inspector-controls [data-view]{font-family:var(--mono);min-width:28px}.cad-inspector-controls [data-percent]{font-variant-numeric:tabular-nums;min-width:34px}.view-cube-host{position:absolute;top:var(--s4);right:var(--s4);width:112px;height:112px;z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none}.view-cube-host svg{width:100%;height:100%;overflow:visible;pointer-events:none}.view-cube-toggle{position:absolute;bottom:0;left:0;width:22px;height:22px;min-height:0;padding:3px;pointer-events:auto;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1)}.view-cube-toggle svg{pointer-events:none}.view-cube-host.is-collapsed{width:28px;height:28px}.view-cube-host.is-collapsed .view-cube-toggle{width:28px;height:28px;padding:6px}.view-cube-host.is-collapsed>svg{display:none}.view-cube-host [data-cube-faces]{pointer-events:auto;cursor:grab}.view-cube-host [data-cube-faces]:active{cursor:grabbing}.view-cube-host polygon{stroke:#4c6273;stroke-width:1;stroke-linejoin:round}.view-cube-host [data-face]:hover polygon{filter:brightness(.9)}.view-cube-host text{font:650 10px var(--mono);fill:#1f3341;pointer-events:none;text-anchor:middle;dominant-baseline:central}.view-cube-host .cube-control{pointer-events:auto;cursor:pointer;opacity:.55}.view-cube-host .cube-control:hover{opacity:1}.view-cube-host .cube-control circle{fill:#fffc;stroke:#4c6273;stroke-width:1}.view-cube-host .cube-control path{fill:#2a4457}.view-cube-host .cube-control svg *{fill:none;stroke:#2a4457;stroke-width:2.2}.job-progress-popover{position:fixed;z-index:80;display:flex;flex-direction:column;width:min(420px,calc(100vw - 32px));max-height:60vh;overflow:hidden;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-3);box-shadow:var(--sh-3)}.job-progress-popover[data-minimized=false]{inset:50% auto auto 50%!important;transform:translate(-50%,-50%)}.job-progress-popover[hidden],.job-progress-popover [hidden]{display:none}.job-progress-header{display:flex;align-items:center;gap:var(--s4);flex:none;min-height:44px;padding:var(--s3) var(--s4) var(--s3) var(--s6);border-bottom:1px solid var(--line)}.job-progress-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--accent)}.job-progress-popover[data-status=completed] .job-progress-dot{background:var(--ok)}.job-progress-popover[data-status=failed] .job-progress-dot,.job-progress-popover[data-status=cancelled] .job-progress-dot{background:var(--danger)}.job-progress-popover[data-status=queued] .job-progress-dot{background:var(--ink-3)}.job-progress-header strong{font:600 14px/18px var(--font);text-transform:capitalize}.job-progress-timing{flex:1;min-width:0;font-size:11px;line-height:14px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-progress-timing:first-letter{text-transform:uppercase}.job-progress-header [data-progress-cancel]{color:var(--danger)}#job-progress-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--s5) var(--s6) var(--s6)}.job-progress-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--s3);margin:0;font-size:12px;line-height:16px}.job-progress-description{font-weight:600}.job-progress-rate{color:var(--ink-2);font-variant-numeric:tabular-nums}.job-progress-rate:before{content:"·";margin-right:var(--s3);color:var(--ink-3)}.job-progress-criteria{font-size:11px;line-height:1.5;margin:0 0 var(--s3);color:var(--ink-2);font-variant-numeric:tabular-nums}.job-progress-criteria[hidden]{display:none}.job-progress-gate{margin-top:var(--s5)}.job-progress-gate-summary{margin:0 0 var(--s2);font-size:11px;line-height:14px;color:var(--ink-3)}.job-progress-gate-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--s1) var(--s5);margin:0;padding:0;list-style:none}.job-progress-criterion{display:flex;align-items:center;gap:var(--s3);min-width:0;font-size:12px;line-height:20px;white-space:nowrap}.job-progress-criterion>i{width:8px;height:8px;flex:none;margin:0 2px;border-radius:50%;border:1.5px solid var(--warn)}.job-progress-criterion>svg{flex:none;color:var(--ok)}.job-progress-criterion span{color:var(--ink-2)}.job-progress-criterion b{font-weight:600;font-variant-numeric:tabular-nums}.job-progress-criterion small{overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.job-progress-criterion[data-met=true] span,.job-progress-criterion[data-met=true] b{color:var(--ink-3);font-weight:450}.job-progress-popover[data-kind=solve]{width:min(640px,calc(100vw - 32px));max-height:min(880px,calc(100vh - 48px))}.job-progress-convergence{margin-top:var(--s5)}.job-progress-convergence[hidden]{display:none}.job-progress-tabs{display:flex;gap:var(--s1);margin-top:var(--s6);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.job-progress-tabs[hidden]{display:none}.job-progress-tab{flex:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;padding:var(--s3) var(--s4);font:450 12px/16px var(--font);color:var(--ink-2);cursor:pointer;white-space:nowrap}.job-progress-tab:hover{color:var(--ink)}.job-progress-tab[aria-selected=true]{font-weight:600;color:var(--ink);border-bottom-color:var(--accent)}.job-progress-tab:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.conv-chart{margin:0;padding:0;min-width:0}.conv-headline{margin:0 0 var(--s4);font-size:12px;line-height:16px;color:var(--ink-2);font-variant-numeric:tabular-nums}.conv-plot{width:100%}.conv-lane{margin-top:var(--s2)}.conv-plot[hidden],.conv-legend[hidden],.conv-empty[hidden],.conv-headline[hidden]{display:none}.conv-empty{margin:0;padding:var(--s7) var(--s6);text-align:center;font-size:11px;color:var(--ink-3);background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--r-1)}.conv-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s4)}.conv-key{display:inline-flex;align-items:center;gap:var(--s3);padding:0;border:0;background:none;font-size:11px;line-height:16px;color:var(--ink-2);cursor:pointer;white-space:nowrap}.conv-key i{width:14px;height:2px;flex:none;border-radius:2px;background:var(--series)}.conv-key[data-dash=dashed] i{border-radius:0;background:repeating-linear-gradient(90deg,var(--series) 0 5px,transparent 5px 8px)}.conv-key[data-dash=dotted] i{border-radius:0;background:repeating-linear-gradient(90deg,var(--series) 0 2px,transparent 2px 4px)}.conv-key[data-dash=tick] i{width:2px;height:10px;margin:0 6px;border-radius:0}.conv-key[data-dash=band] i{width:10px;height:10px;margin:0 2px;border-radius:2px;box-shadow:inset 0 0 0 1px var(--line-strong)}.conv-key b{font-weight:450;font-variant-numeric:tabular-nums;color:var(--ink)}.conv-key:hover{color:var(--ink)}.conv-key-static{cursor:default}.conv-key-static:hover{color:var(--ink-2)}.conv-key[aria-pressed=false]{opacity:.42}.conv-key[aria-pressed=false] b{text-decoration:line-through}.conv-chart .uplot,.conv-chart .u-wrap{font-family:var(--font)}.conv-chart .u-cursor-x,.conv-chart .u-cursor-y{border-color:var(--ink-3)}@media(prefers-reduced-motion:reduce){.job-progress-convergence *,.job-progress-convergence *:before,.job-progress-convergence *:after{transition:none!important;animation:none!important}}.job-progress-updates{margin:var(--s5) 0 0;padding:0;list-style:none;font-size:12px;line-height:16px;max-height:180px;overflow:auto;font-variant-numeric:tabular-nums}.job-progress-tabs:not([hidden])~.job-progress-updates{margin-top:var(--s4)}.job-progress-updates li{padding:var(--s3) 0;border-bottom:1px solid var(--line);color:var(--ink-2)}.job-progress-updates li:first-child{color:var(--ink)}.job-progress-updates li:last-child{border-bottom:0}.job-progress-badge{display:none}.job-progress-popover[data-minimized=true]{inset:auto 20px 52px auto;transform:none;width:50px;height:50px;padding:0;border:0;background:none;box-shadow:none;overflow:visible;max-height:none;border-radius:50%}.job-progress-popover[data-minimized=true] .job-progress-header,.job-progress-popover[data-minimized=true] #job-progress-body{display:none}.job-progress-popover[data-minimized=true] .job-progress-badge{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;border:0;padding:0;background:var(--accent);color:#fff;font-size:12px;font-weight:600;box-shadow:var(--sh-2);cursor:grab;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.job-progress-badge:active{cursor:grabbing}.job-progress-badge i{position:absolute;inset:-4px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:job-spin 1.1s linear infinite}.job-progress-popover[data-status=completed] .job-progress-badge{background:var(--ok)}.job-progress-popover[data-status=failed] .job-progress-badge,.job-progress-popover[data-status=cancelled] .job-progress-badge{background:var(--danger)}.job-progress-popover:not([data-status=running]):not([data-status=queued]) .job-progress-badge i{display:none}@keyframes job-spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);height:24px;min-height:24px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--surface);color:var(--ink);white-space:nowrap;font-weight:500}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;height:28px;min-height:28px;padding:0 var(--s5)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.danger{border-color:transparent;color:var(--danger);background:transparent}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn>svg,.iconbtn>svg,.chip>svg,h2>svg,h3>svg,dt>svg,legend>svg,summary>svg,p>svg{flex:none;display:block}h3>svg,dt>svg,legend>svg,summary>svg{vertical-align:-3px;margin-right:5px}p>svg{vertical-align:-3px;margin-right:4px}.iconbtn{width:24px;height:24px;min-height:24px;flex:none;display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--r-1);background:transparent;color:var(--ink-2);cursor:pointer}.iconbtn:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.iconbtn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.iconbtn.danger:hover{background:var(--danger-soft);color:var(--danger)}.iconbtn:disabled{opacity:.45;cursor:not-allowed}.iconbtn>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}label.iconbtn{position:relative;cursor:pointer;margin:0}label.iconbtn:has(input:checked){background:var(--accent-soft);color:var(--accent-ink)}.chip{display:inline-flex;align-items:center;gap:var(--s1);height:17px;padding:0 5px;border-radius:var(--r-1);font-size:10px;font-weight:600;white-space:nowrap}h2>.chip,p>.chip,dd>.chip{margin-left:var(--s3)}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--danger-soft);color:var(--danger)}.chip.info{background:var(--accent-soft);color:var(--accent-ink)}.chip.mute{background:var(--surface-3);color:var(--ink-3)}.chip.live{background:#fbeedd;color:var(--live)}.chip>svg{width:11px;height:11px;stroke-width:2.2}.hint{display:inline-grid;place-items:center;margin-left:var(--s2);color:var(--ink-3);cursor:help;vertical-align:-2px}.hint>svg{display:block}[title]{cursor:help}button[title],a[title],label[title]{cursor:pointer}input[title],select[title],textarea[title]{cursor:auto}@media(max-width:1320px){:root{--inspector:264px}}@media(max-width:1179px){.work{grid-template-columns:var(--rail) minmax(0,1fr) 0}.inspector{position:absolute;right:0;top:0;bottom:0;width:288px;z-index:12;border-left:1px solid var(--line-strong);box-shadow:-6px 0 20px #1c2a3424}body[data-inspector=open] .edgetoggle.right{display:none}}@media(max-width:1000px){nav button{padding:0 var(--s4)}}@media(max-width:899px){.work{grid-template-columns:0 minmax(0,1fr) 0}.rail{position:absolute;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:12;border-right:1px solid var(--line-strong);box-shadow:6px 0 20px #1c2a3424}body[data-rail=open] .edgetoggle.left,.engine,#state-label{display:none}.topbar .project{max-width:120px}.canvas-body>.viewbar{display:none}.actionbar{padding:0 var(--s4);gap:var(--s3)}}.staged-start{margin-top:var(--s4)}.staged-start .muted{margin:var(--s3) 0 0}.backend-notice{position:fixed;right:var(--s5);bottom:44px;z-index:40;display:flex;align-items:center;gap:var(--s4);background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);font-size:11px;box-shadow:0 2px 8px #0000001f}.material-library{--ml-ink: #18324a;--ml-muted: #6d8194;--ml-faint: #8ea2b3;--ml-line: #d7e3ec;--ml-line-strong: #b9ccda;--ml-panel: #fff;--ml-soft: #f3f8fb;--ml-blue: #1f7197;--ml-blue-dark: #185b7a;--ml-blue-soft: #e8f3f8;--ml-green: #2d8a72;--ml-amber: #b17129;color:var(--ml-ink);font:13px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-width:0}.material-library *,.material-library *:before,.material-library *:after{box-sizing:border-box}.material-library button,.material-library input,.material-library select,.material-library textarea{font:inherit}.material-library button{cursor:pointer}.material-library h1,.material-library h2,.material-library h3,.material-library p{margin:0}.material-library h1{font-size:clamp(23px,2vw,29px);letter-spacing:-.025em;line-height:1.12}.material-library h2{font-size:18px;line-height:1.2;letter-spacing:-.015em}.material-library h3{font-size:14px;line-height:1.2}.material-library .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.material-library .ml-primary,.material-library .ml-quiet,.material-library .ml-link-button,.material-library .ml-icon-button{align-items:center;border-radius:6px;display:inline-flex;justify-content:center;min-height:32px}.material-library .ml-primary{background:var(--ml-blue);border:1px solid var(--ml-blue);color:#fff;font-weight:700;padding:0 14px}.material-library .ml-primary:hover{background:var(--ml-blue-dark);border-color:var(--ml-blue-dark)}.material-library .ml-primary:focus-visible,.material-library .ml-quiet:focus-visible,.material-library .ml-link-button:focus-visible,.material-library .ml-icon-button:focus-visible,.material-library .ml-entry:focus-visible{outline:3px solid #94c9df;outline-offset:1px}.material-library .ml-quiet{background:transparent;border:1px solid var(--ml-line-strong);color:var(--ml-muted);padding:0 12px}.material-library .ml-quiet:hover{background:var(--ml-soft);color:var(--ml-ink)}.material-library .ml-link-button{background:transparent;border:0;color:var(--ml-blue);font-size:12px;font-weight:700;min-height:24px;padding:0 3px}.material-library .ml-link-button:hover{color:var(--ml-blue-dark);text-decoration:underline}.material-library .ml-icon-button{background:transparent;border:1px solid transparent;color:var(--ml-muted);font-size:18px;height:27px;min-height:27px;padding:0;width:27px}.material-library .ml-icon-button:hover{background:#fff2f0;border-color:#f0c4be;color:#a84839}.material-library .ml-toolbar{align-items:center;background:var(--ml-panel);border:1px solid var(--ml-line);border-radius:5px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px;padding:8px}.material-library .ml-toolbar>label:not(.ml-search){display:block;min-width:140px}.material-library .ml-search{align-items:center;display:flex;flex:1 1 250px;min-width:210px;position:relative}.material-library .ml-search>span{color:var(--ml-faint);font-size:21px;left:10px;line-height:1;position:absolute;top:4px}.material-library .ml-search input,.material-library .ml-toolbar .ml-search input{padding-left:31px}.material-library .ml-toolbar select,.material-library .ml-toolbar input,.material-library .ml-editor input,.material-library .ml-editor select,.material-library .ml-editor textarea{background:#fff;border:1px solid var(--ml-line-strong);border-radius:5px;color:var(--ml-ink);min-height:33px;padding:6px 9px;width:100%}.material-library .ml-toolbar select{padding-right:27px}.material-library .ml-toolbar input:focus,.material-library .ml-toolbar select:focus,.material-library .ml-editor input:focus,.material-library .ml-editor select:focus,.material-library .ml-editor textarea:focus{border-color:var(--ml-blue);box-shadow:0 0 0 3px #1f71971f;outline:0}.material-library .ml-workspace{align-items:stretch;display:grid;gap:13px;grid-template-columns:minmax(210px,250px) minmax(0,1fr)}.material-library .ml-browser,.material-library .ml-editor{background:var(--ml-panel);border:1px solid var(--ml-line);border-radius:5px;min-width:0}.material-library .ml-browser{display:flex;flex-direction:column;min-height:520px;overflow:hidden}.material-library .ml-browser-head{align-items:center;background:var(--ml-soft);border-bottom:1px solid var(--ml-line);display:flex;font-size:11px;font-weight:750;justify-content:space-between;letter-spacing:.05em;padding:12px 13px;text-transform:uppercase}.material-library .ml-browser-count{background:#dcecf4;border-radius:999px;color:var(--ml-blue-dark);font-size:10px;padding:2px 7px}.material-library .ml-entry-list{flex:1;padding:0}.material-library .ml-entry{align-items:stretch;background:transparent;border:0;border-bottom:1px solid var(--ml-line);border-radius:0;color:var(--ml-ink);display:flex;flex-direction:row;gap:8px;margin:0;padding:10px 12px;text-align:left;width:100%}.material-library .ml-entry:hover{background:#f6fafc;border-color:var(--ml-line)}.material-library .ml-entry.is-selected{background:var(--ml-blue-soft);box-shadow:inset 3px 0 0 var(--ml-blue)}.material-library .ml-entry-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.material-library .ml-entry-main strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-library .ml-entry-main small{color:var(--ml-muted);font:10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-library .ml-browser-empty{color:var(--ml-muted);padding:48px 18px;text-align:center}.material-library .ml-browser-empty>span{color:var(--ml-faint);display:block;font-size:30px;margin-bottom:8px}.material-library .ml-browser-empty strong{color:var(--ml-ink);display:block}.material-library .ml-browser-empty p{font-size:11px;margin-top:4px}.material-library .ml-editor{min-height:520px;padding:18px}.material-library .ml-editor-header{align-items:flex-start;border-bottom:1px solid var(--ml-line);display:flex;gap:18px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.material-library .ml-editor-header h2{margin-top:1px}.material-library .ml-editor-state{color:var(--ml-muted);font-size:11px;margin-top:5px}.material-library .ml-editor-state.is-dirty{color:var(--ml-amber)}.material-library .ml-editor-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.material-library [hidden]{display:none!important}.material-library .ml-section{border-bottom:1px solid var(--ml-line);padding:0 0 16px;margin-bottom:16px}.material-library .ml-section:last-of-type{border-bottom:0;margin-bottom:0}.material-library .ml-section-title{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.material-library .ml-section-title h3{font-size:16px}.material-library .ml-section-title p{color:var(--ml-muted);font-size:11px;margin-top:4px}.material-library .ml-identity-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr)}.material-library .ml-identity-grid label,.material-library .ml-notes-field,.material-library .ml-evidence-grid label,.material-library .ml-property-grid label,.material-library .ml-value-field,.material-library .ml-extrapolation{color:var(--ml-muted);display:block;font-size:11px;font-weight:700}.material-library .ml-identity-grid .ml-id-field{grid-column:1 / 2}.material-library .ml-identity-grid>label:first-child{grid-column:1 / -1}.material-library .ml-notes-field{margin-top:12px}.material-library .ml-notes-field textarea{display:block;margin-top:5px;min-height:74px;resize:vertical}.material-library .ml-identity-grid input,.material-library .ml-identity-grid select,.material-library .ml-evidence-grid input,.material-library .ml-property-grid select,.material-library .ml-value-field input,.material-library .ml-extrapolation select{display:block;margin-top:5px}.material-library .ml-id-field input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.material-library .ml-id-field input:disabled{background:#f0f4f7;color:var(--ml-muted)}.material-library .ml-property-stack{display:grid;gap:11px}.material-library .ml-property{background:transparent;border:0;border-top:1px solid var(--ml-line);border-radius:0;padding:14px 0}.material-library .ml-property-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.material-library .ml-property-head>div{align-items:flex-start;display:flex;gap:10px}.material-library .ml-property-head h3{font-size:13px}.material-library .ml-property-head p{color:var(--ml-muted);font-size:10px;margin-top:2px}.material-library .ml-property-symbol{align-items:center;background:#e7f2f7;border-radius:5px;color:var(--ml-blue-dark);display:inline-flex;font-family:Georgia,serif;font-size:16px;height:28px;justify-content:center;width:30px}.material-library .ml-unit{color:var(--ml-faint);font:10px ui-monospace,SFMono-Regular,Consolas,monospace;padding-top:4px}.material-library .ml-property-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}.material-library .ml-value-field{margin-top:10px;position:relative}.material-library .ml-inline-unit{color:var(--ml-faint);font-size:10px;font-weight:400;margin-left:3px}.material-library .ml-table-wrap{margin-top:10px}.material-library .ml-table-caption{align-items:center;color:var(--ml-muted);display:flex;font-size:10px;justify-content:space-between;margin-bottom:5px}.material-library .ml-data-table{border-collapse:collapse;width:100%}.material-library .ml-data-table th{background:#edf5f8;color:var(--ml-muted);font-size:10px;font-weight:700;padding:5px 7px;text-align:left}.material-library .ml-data-table th small{color:var(--ml-faint);font-weight:400}.material-library .ml-data-table td{border-bottom:1px solid #e8eff3;padding:4px}.material-library .ml-data-table td:last-child{padding:0;text-align:center;width:35px}.material-library .ml-data-table input{min-height:29px}.material-library .ml-extrapolation{margin-top:9px;max-width:240px}.material-library .ml-evidence-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:11px}.material-library .ml-muted{color:var(--ml-muted);font-size:11px}.material-library .ml-species-choice{display:block;max-width:260px;color:var(--ml-muted);font-size:11px;font-weight:600}.material-library .ml-species-choice input{display:block;margin-top:5px;width:100%}.material-library .ml-species-list{display:grid;max-height:168px;overflow-y:auto;margin-top:6px;border:1px solid var(--ml-line);border-radius:6px}.material-library .ml-species-option{display:flex;gap:8px;align-items:baseline;text-align:left;padding:5px 8px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.material-library .ml-species-option:hover,.material-library .ml-species-option.is-selected{background:var(--ml-soft)}.material-library .ml-model-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.material-library .ml-model-summary dt{color:var(--ml-muted);font-size:11px}.material-library .ml-model-summary dd{margin:3px 0 0}.material-library .ml-gas-table-wrap{overflow-x:auto}.material-library .ml-gas-table{min-width:470px;font-variant-numeric:tabular-nums}.material-library .ml-gas-table th,.material-library .ml-gas-table td{text-align:right;padding:9px 7px;white-space:nowrap}.material-library .ml-gas-table thead small{display:block;margin-top:4px}.material-library .ml-gas-table td:last-child{width:auto;text-align:right;padding:9px 7px}.material-library .ml-model-source{color:var(--ml-muted);font-size:11px;margin-top:12px}.material-library .ml-model-details{border-top:1px solid var(--ml-line);margin-top:18px;padding-top:12px;font-size:11px}.material-library .ml-model-details summary{cursor:pointer;color:var(--ml-muted)}.material-library .ml-model-details p{margin:12px 0 6px}.material-library .ml-model-details pre,.material-library .ml-model-details code{white-space:pre-wrap;overflow-wrap:anywhere}.material-library .ml-liquid-warning{align-items:flex-start;background:#fff8ed;border:1px solid #eed7ad;border-radius:7px;color:#8a5c25;display:flex;flex-direction:column;gap:2px;margin:-8px 0 22px;padding:10px 12px}.material-library .ml-liquid-warning strong{font-size:11px}.material-library .ml-liquid-warning span{font-size:10px}.material-library .ml-empty-editor{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:460px;padding:30px;text-align:center}.material-library .ml-empty-icon{color:#91b7c9;font-size:36px;margin-bottom:10px}.material-library .ml-empty-editor p{color:var(--ml-muted);margin:7px 0 17px;max-width:330px}.material-library .ml-filter-notice{align-items:center;background:#fff9ef;border:1px solid #f0d7ad;border-radius:6px;color:var(--ml-amber);display:flex;font-size:11px;gap:10px;justify-content:space-between;margin:-7px 0 14px;padding:7px 10px}.ml-is-saving .material-library{cursor:wait;opacity:.76}.ml-is-saving .material-library input,.ml-is-saving .material-library select,.ml-is-saving .material-library textarea,.ml-is-saving .material-library button{pointer-events:none}@media(min-width:651px)and (max-width:1000px){.material-library .ml-workspace{grid-template-columns:210px minmax(0,1fr)}.material-library .ml-editor{padding:16px}.material-library .ml-entry{padding-left:8px;padding-right:8px}}@media(max-width:650px){.material-library .ml-workspace{grid-template-columns:1fr}.material-library .ml-browser{min-height:210px}.material-library .ml-entry-list{display:block;max-height:240px;overflow-y:auto}}@media(max-width:600px){.material-library h1{font-size:21px}.material-library .ml-editor{padding:17px}.material-library .ml-editor-header{flex-direction:column}.material-library .ml-editor-actions{justify-content:flex-start}.material-library .ml-identity-grid,.material-library .ml-property-grid,.material-library .ml-evidence-grid{grid-template-columns:1fr}.material-library .ml-identity-grid .ml-id-field,.material-library .ml-identity-grid label:nth-child(4){grid-column:auto;grid-row:auto}.material-library .ml-entry-list{grid-template-columns:1fr}}.material-library .ml-identity-details summary{cursor:pointer;color:var(--ml-muted);font-size:12px}.material-library .ml-identity-details[open] summary{margin-bottom:14px}.material-library .ml-source-field select{margin-top:5px}.material-library .ml-source-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:7px}.material-library .ml-upload{position:relative;display:inline-flex;color:var(--ml-blue);cursor:pointer;font-size:11px}.material-library .ml-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;min-height:0;padding:0}.material-library .ml-source-actions a{font-size:11px;color:var(--ml-blue)}.material-library .ml-species-identity{font-size:15px;font-weight:600}.material-library .ml-category-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:12px 12px 5px;font-size:11px;color:var(--ml-muted);font-weight:600}.material-library .ml-category-heading small{font-weight:400;font-size:10px}.material-library .ml-entry-formula{align-self:center;color:var(--ml-muted);font-size:10px;font-weight:400}.material-library .ml-category-group+.ml-category-group{margin-top:4px}.setup-workspace{max-width:1440px;margin:0 auto;padding:16px 20px 32px}.setup-workspace [hidden]{display:none!important}.setup-eyebrow{font-size:10px;font-weight:650;letter-spacing:.12em;color:var(--ink-2)}.setup-section-heading p{margin:6px 0 0;color:var(--ink-2);line-height:1.5}.setup-navigation{display:grid;grid-template-columns:repeat(5,max-content);border-bottom:1px solid var(--line-strong);gap:8px;margin-bottom:16px}.setup-navigation button{display:flex;align-items:center;gap:12px;background:none;border:0;border-bottom:3px solid transparent;padding:10px 20px;text-align:left;color:var(--ink-2)}.setup-navigation button span{display:grid;gap:4px}.setup-navigation button strong{font-size:14px;font-weight:600}.setup-navigation button small{font-size:11px;color:var(--ink-2)}.setup-navigation button:hover{background:var(--surface-2)}.setup-navigation button[aria-selected=true]{color:var(--accent);background:transparent;border-bottom-color:var(--accent);border-radius:6px 6px 0 0}.setup-section{min-width:0}.setup-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px}.setup-section-heading h2{margin:0;font-size:19px;font-weight:600}.setup-section .row{gap:8px;flex-wrap:wrap}.setup-card{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0}.setup-workspace h3{font-size:15px;margin:0 0 8px;font-weight:600}.setup-workspace .btn{min-height:32px}.setup-badge{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;color:var(--ink-2);padding:4px 10px;font-size:11px;white-space:nowrap}.setup-current{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;margin:0 0 24px}.setup-current h3{margin:6px 0}.setup-current p{margin:0;color:var(--ink-2)}.setup-current .setup-badge{margin-left:auto}.setup-tile-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);flex:none}.setup-blank{border:1px dashed var(--line-strong);border-radius:8px;padding:40px 24px;text-align:center;background:var(--surface-2)}.setup-blank h3{font-size:20px;margin:16px 0 8px}.setup-blank p{color:var(--ink-2);line-height:1.7;margin:0 0 14px}.setup-search{display:flex;flex-direction:row;align-items:center;max-width:400px;gap:8px;margin-bottom:16px}.setup-search input{flex:1}.setup-project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.setup-project-card{display:flex;align-items:center;gap:12px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:8px;text-align:left}.setup-project-card span{flex:1;min-width:0}.setup-project-card strong{display:block;overflow-wrap:anywhere}.setup-project-card small{display:block;margin-top:6px;color:var(--ink-2)}.setup-project-card:hover{border-color:var(--accent)}.setup-project-card>svg{color:var(--accent)}.setup-import-layout,.setup-engine-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.8fr);gap:20px;align-items:start}.setup-workspace label.setup-field{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:18px 0;color:var(--ink-2)}.setup-workspace input:not([type=checkbox]),.setup-workspace select{min-height:34px}.setup-workspace input[type=number]{font-family:var(--font);font-variant-numeric:tabular-nums}.setup-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setup-field-pair .setup-field{margin:0}.setup-file{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:6px;padding:24px}.setup-file>span:not(.setup-tile-icon){color:var(--ink-2)}.setup-file input{max-width:100%;background:var(--surface)}.setup-form-hint{font-size:11px;color:var(--ink-2);line-height:1.6}.setup-samples h3{margin-top:8px}.setup-samples>p{color:var(--ink-2);line-height:1.6}.setup-sample{display:flex;width:100%;align-items:center;gap:12px;padding:16px 0;background:none;border:0;border-bottom:1px solid var(--line);text-align:left}.setup-sample span{flex:1}.setup-sample small{display:block;margin-top:4px;color:var(--ink-2)}.setup-sample>svg{color:var(--accent)}.setup-sample:hover{color:var(--accent)}.setup-engine-title{display:flex;align-items:center;gap:16px;margin-bottom:24px}.setup-engine-title p{margin:0;color:var(--ink-2)}.setup-runtime-status{margin:16px 0;padding:12px;border-radius:6px;background:var(--surface-2);color:var(--ink-2)}.setup-runtime-status[data-state=ready]{background:var(--ok-soft);color:var(--ok)}.setup-diagnostics{margin-top:20px}.setup-diagnostics pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;color:var(--ink-2)}.setup-retention{display:flex;align-items:flex-start;gap:10px;margin:24px 0}.setup-retention input{margin-top:3px}.setup-retention small{display:block;color:var(--ink-2);line-height:1.6;margin-top:6px}.setup-budget-input{display:flex;align-items:center;gap:8px}.setup-budget-input input{max-width:140px}@media(max-width:1000px){.setup-workspace{padding:8px 8px 24px}.setup-navigation{margin-bottom:16px}.setup-navigation button{padding:12px 8px;gap:8px}.setup-navigation button small{display:none}}@media(max-width:650px){.setup-navigation{gap:0;grid-template-columns:repeat(5,minmax(0,1fr))}.setup-navigation button{justify-content:center}.setup-navigation button>svg{display:none}.setup-navigation button strong{font-size:12px}.setup-import-layout,.setup-engine-layout{grid-template-columns:1fr}.setup-section-heading{align-items:flex-start;flex-direction:column}.setup-card{padding:16px}.setup-field-pair{grid-template-columns:1fr}}#setup-view-server{--storage-sources:#2a78d6;--storage-caches:#eb6834;--storage-preparations:#1baf7a;--storage-mesh:#eda100;--storage-intermediate:#e87ba4;--storage-final:#008300}.storage-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.storage-tile{display:flex;flex-direction:column;gap:6px}.storage-tile strong{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.storage-tile small{color:var(--ink-2);line-height:1.5}.storage-meter{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.storage-meter span{display:block;height:100%;background:var(--accent);border-radius:3px}.storage-meter span[data-high=true]{background:var(--danger)}.storage-card{margin-bottom:16px;overflow-x:auto}.storage-card summary{cursor:pointer}.storage-card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}.storage-card-heading h3{margin:0}.storage-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;font-size:11px;color:var(--ink-2)}.storage-legend li{display:flex;align-items:center;gap:6px}.storage-swatch{width:10px;height:10px;border-radius:2px}.storage-table{width:100%;border-collapse:collapse;font-size:12px}.storage-table th,.storage-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.storage-table thead th{font-size:11px;font-weight:600;color:var(--ink-2);white-space:nowrap}.storage-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.storage-table tbody th{font-weight:500}.storage-table tbody th .setup-badge{margin-left:8px}.storage-expand{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--ink);font:inherit;text-align:left}.storage-expand:hover span{color:var(--accent);text-decoration:underline}.storage-expand svg{transition:transform .15s;color:var(--ink-3)}.storage-expand[aria-expanded=true] svg{transform:rotate(90deg)}.storage-bar{min-width:160px;height:12px}.storage-bar-fill{display:flex;gap:2px;height:100%;border-radius:4px;overflow:hidden;min-width:2px}.storage-seg{min-width:2px;height:100%}.storage-seg[data-group=sources],.storage-swatch[data-group=sources]{background:var(--storage-sources)}.storage-seg[data-group=caches],.storage-swatch[data-group=caches]{background:var(--storage-caches)}.storage-seg[data-group=preparations],.storage-swatch[data-group=preparations]{background:var(--storage-preparations)}.storage-seg[data-group=mesh],.storage-swatch[data-group=mesh]{background:var(--storage-mesh)}.storage-seg[data-group=intermediate],.storage-swatch[data-group=intermediate]{background:var(--storage-intermediate)}.storage-seg[data-group=final],.storage-swatch[data-group=final]{background:var(--storage-final)}.storage-detail-row>td{background:var(--surface-2);padding:12px 16px 16px}.storage-detail-row .btn{margin-top:8px}.storage-runs{background:var(--surface);border:1px solid var(--line);border-radius:6px}.storage-run code{font-family:var(--mono)}.storage-run small{display:block;color:var(--ink-2);margin-top:2px}.storage-badge{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);font-size:11px}@media(max-width:1000px){.storage-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.storage-tiles{grid-template-columns:1fr}}#setup-view-server .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.storage-actions{white-space:nowrap;text-align:right}.storage-actions .btn+.btn{margin-left:6px}.storage-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.storage-detail-actions .btn.danger{margin-left:auto}.storage-note{display:flex;align-items:flex-start;gap:6px;margin:0 0 16px}.storage-note svg{flex:none;margin-top:2px}.storage-dialog{width:min(640px,calc(100vw - 32px))}.storage-dialog .row{display:flex;gap:8px;margin-top:16px}.forge-form{display:grid;gap:10px;margin-top:12px}.forge-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 12px;margin:12px 0 0}.forge-facts dt{color:var(--ink-2)}.forge-facts dd{margin:0;overflow-wrap:anywhere}.forge-check{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:4px}.forge-check li{display:grid;grid-template-columns:16px max-content minmax(0,1fr);gap:8px;align-items:center}.forge-check li.ok svg{color:var(--ok,#2f8a5b)}.forge-check li.failed svg,.forge-check li.failed span{color:var(--danger)}.storage-choices{border:0;padding:0;margin:12px 0 0;display:grid;gap:2px}.storage-choice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:8px;border-radius:6px;cursor:pointer}.storage-choice:hover{background:var(--surface-2)}.storage-choice input{width:auto;min-height:0;margin-top:2px}.storage-choice span{display:flex;flex-direction:column;gap:2px}.storage-choice em{font-style:normal;color:var(--ink-2);font-size:11px;font-variant-numeric:tabular-nums}.storage-frees{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.storage-frees>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:6px}.storage-frees strong{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.storage-frees small{color:var(--ink-2)}.storage-invalidates{display:flex;gap:8px;margin:12px 0;padding:10px 12px;border-radius:6px;background:var(--warn-soft,var(--surface-2));color:var(--ink);font-size:12px}.storage-invalidates svg{flex:none;margin-top:2px;color:var(--warn,var(--danger))}.storage-invalidates ul{margin:0;padding-left:16px}.storage-blocked,.storage-items{margin:8px 0;font-size:12px}.storage-blocked summary,.storage-items summary{cursor:pointer;color:var(--ink-2)}.storage-blocked ul,.storage-items ul{margin:6px 0 0;padding-left:18px;max-height:180px;overflow:auto}.storage-blocked li,.storage-items li{margin:2px 0;overflow-wrap:anywhere}.storage-confirm{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;font-size:12px}@media(max-width:650px){.storage-frees{grid-template-columns:1fr}.storage-actions{white-space:normal}}.server-update{margin-top:28px}.update-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.update-grid .setup-card,.update-form,.update-last{display:flex;flex-direction:column;gap:8px}.update-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.update-commit code{font-family:var(--mono)}.update-commit{overflow-wrap:anywhere}.update-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-2);color:var(--ink-2)}.update-chip[data-tone=ok]{color:var(--ok,#2f8a5b)}.update-chip[data-tone=warn]{color:var(--warn,#b26a00)}.update-chip[data-tone=err]{color:var(--danger)}.update-incoming{margin:0;padding-left:18px;display:grid;gap:4px;max-height:220px;overflow:auto}.update-form .row,.update-grid .row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.update-form input[type=password]{flex:1 1 200px;max-width:320px}.update-modes{border:0;padding:0;margin:0;display:grid;gap:4px}.update-modes legend{font-weight:600;margin-bottom:4px}.setup-workspace .update-modes label{display:flex;flex-direction:row;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:6px;cursor:pointer}.update-modes label:hover{background:var(--surface-2)}.setup-workspace .update-modes input{flex:none;width:auto;min-height:0;height:auto;margin:2px 0 0}.update-modes span{display:flex;flex-direction:column;gap:2px}.update-modes small{color:var(--ink-2)}.update-jobs ul{margin:4px 0 0;padding-left:18px}.update-log{margin:0;max-height:280px;overflow:auto;padding:10px;background:var(--surface-2);border-radius:6px;font-family:var(--mono);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:650px){.update-grid{grid-template-columns:1fr}}
