:root{color-scheme:light;--pipe-w: 2px;--bg: #f5f7f9;--surface: #ffffff;--panel-bg: rgba(255,255,255,.97);--ink: #1c2733;--ink-hint: #51606e;--border: #849099;--border-soft: #a8b3bb;--brand: #1a3c5e;--brand-contrast: #ffffff;--error: #a02020;--warn-bg: #fff8e6;--warn-border: #e5c96b;--canvas-bg: #f7fafc;--stroke: #4a5a68;--node-fill: #ffffff;--node-tank: #dcecfb;--node-demand: #fbe9dc;--node-discharge: #e6f7ef;--label-ink: #24313d;--select-accent: #2a78d6;--link-hx: #158f63;--link-cv: #8a4fd0;--shadow: rgba(0, 0, 0, .2);--chrome: #e4e8ec;--chrome-2: #edf0f3;--border-chrome: #737f88;--accent-chrome: #1a3c5e;--sel-bg: #dbe9f9;--menu-open-bg: #1a3c5e;--ctl-h: 24px;--ctl-h-sm: 20px;--ctl-h-lg: 28px;--ctl-min-w: 92px;--ctl-pad: 0 .75rem;--ctl-pad-sm: 0 .5rem;--ctl-radius: 3px;--row-h: 22px;--label-col: 8.4rem;--unit-col: 0;--fw-sm: 4.5rem;--fw-md: 9rem;--fw-lg: 14rem;--ctl-h-touch: 40px;--measure-form: 56rem;--accent: #e08a1a;--danger: #d64545;--muted: #777777;--text: #cccccc;--text-muted: #8a8f98;--hover: #f4f4f4;--hover-bg: rgba(255, 255, 255, .05);--line: #dddddd;--pipe: #4a7dbd;--dim-ink: #51606e}[data-theme=dark]{color-scheme:dark;--bg: #14181c;--surface: #1d232a;--panel-bg: rgba(30,34,40,.96);--ink: #e6e9ec;--ink-hint: #9aa7b2;--border: #5d6e7e;--border-soft: #4b5966;--brand: #2d5c8f;--brand-contrast: #ffffff;--error: #e07a7a;--warn-bg: #3a3320;--warn-border: #8a7a3a;--canvas-bg: #171c22;--stroke: #8fa0b0;--node-fill: #232b33;--node-tank: #1f3b57;--node-demand: #4a3322;--node-discharge: #1e3c30;--label-ink: #d6dde3;--select-accent: #3987e5;--link-hx: #199e70;--link-cv: #a678e8;--shadow: rgba(0, 0, 0, .5);--chrome: #252c34;--chrome-2: #2b333c;--border-chrome: #71838f;--accent-chrome: #4a86c4;--sel-bg: #21384f;--menu-open-bg: #0f2740;--accent: #e08a1a;--danger: #e68a8a;--muted: #93a1ad;--text: #cccccc;--text-muted: #8a8f98;--hover: #313a44;--hover-bg: rgba(255, 255, 255, .08);--line: #71838f;--pipe: #7aa3de;--dim-ink: #cccccc}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #14181c;--surface: #1d232a;--panel-bg: rgba(30,34,40,.96);--ink: #e6e9ec;--ink-hint: #9aa7b2;--border: #39434d;--border-soft: #313a43;--brand: #2d5c8f;--brand-contrast: #ffffff;--error: #e07a7a;--warn-bg: #3a3320;--warn-border: #8a7a3a;--canvas-bg: #171c22;--stroke: #8fa0b0;--node-fill: #232b33;--node-tank: #1f3b57;--node-demand: #4a3322;--node-discharge: #1e3c30;--label-ink: #d6dde3;--select-accent: #3987e5;--link-hx: #199e70;--link-cv: #a678e8;--shadow: rgba(0, 0, 0, .5);--chrome: #252c34;--chrome-2: #2b333c;--border-chrome: #71838f;--accent-chrome: #4a86c4;--sel-bg: #21384f;--menu-open-bg: #0f2740;--accent: #e08a1a;--danger: #e68a8a;--muted: #93a1ad;--text: #cccccc;--text-muted: #8a8f98;--hover: #313a44;--hover-bg: rgba(255, 255, 255, .08);--line: #71838f;--pipe: #7aa3de;--dim-ink: #cccccc}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;color:var(--ink);background:var(--bg)}.fabrica-logo{display:block;width:100%;height:auto}.fabrica-logo text{font-family:system-ui,sans-serif}.fabrica-logo .fl-word{font-size:92px;font-weight:700;letter-spacing:1.5px;fill:var(--ink)}.fabrica-logo .fl-sub{font-size:30px;font-weight:400;letter-spacing:5px;fill:var(--ink-hint)}.fabrica-logo .fl-pipe{stroke:var(--ink);stroke-width:5;stroke-linecap:round}.fabrica-logo .fl-ring{fill:none;stroke:var(--accent, #e08a1a);stroke-width:3}.fabrica-logo .fl-dot{fill:var(--accent, #e08a1a)}.home-view .home-logo{max-width:380px;margin:.5rem auto .15rem}.login-logo{max-width:260px;margin:0 0 .75rem}.app-frame{display:grid;grid-template-rows:auto auto 1fr auto;height:100dvh;background:var(--bg)}.skip-link{position:absolute;top:-40px;left:0;z-index:200;padding:.5rem 1rem;background:var(--chrome);color:var(--ink);border:1px solid var(--border)}.skip-link:focus{top:0}.app-frame-menu{grid-row:1}.app-frame-tabs{grid-row:2}.app-frame-body{grid-row:3;min-height:0;overflow:auto;width:100%}.app-frame-body:has(.system-editor),.app-frame-body:has(.iso-editor),.app-frame-body:has(.stress-editor){overflow:hidden}.app-frame-status{grid-row:4;background:var(--chrome);border-top:1px solid var(--border-chrome)}.menu-bar{position:relative}.menu-bar-strip{display:flex;align-items:stretch;height:var(--ctl-h-sm);background:var(--chrome);border-bottom:1px solid var(--border-chrome)}.menu-bar-slot{position:relative;display:flex}.menu-bar-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink);font:inherit;font-size:.82rem;padding:0 .65rem;height:100%;cursor:pointer;min-width:0}.menu-bar-trigger:hover{background:var(--sel-bg)}.menu-bar-trigger.open{background:var(--menu-open-bg);color:var(--brand-contrast)}.menu-bar-trigger:focus-visible{outline:2px solid var(--accent-chrome);outline-offset:-2px}.menu-bar-popup{position:absolute;top:100%;left:0;z-index:30;margin:0;min-width:12rem;list-style:none;padding:.25rem 0;background:var(--surface);color:var(--ink);border:1px solid var(--border-chrome);box-shadow:0 2px 8px var(--shadow)}.menu-bar-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink);font:inherit;font-size:.82rem;width:100%;text-align:left;display:flex;align-items:center;gap:.4rem;padding:.3rem .75rem;cursor:pointer}.menu-bar-item:hover,.menu-bar-item:focus-visible{background:var(--sel-bg);outline:none}.menu-bar-item[aria-disabled=true]{color:var(--ink-hint);cursor:default}.menu-bar-item[aria-disabled=true]:hover,.menu-bar-item[aria-disabled=true]:focus-visible{background:transparent}.menu-bar-item-check{width:1em;flex:none}.menu-bar-item-label{flex:1 1 auto}.menu-bar-item-accel{flex:none;color:var(--ink-hint);margin-left:1rem}.menu-bar-separator{border-top:1px solid var(--border-chrome);margin:.25rem 0}.menu-bar-heading{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-hint);padding:.3rem .75rem .15rem;-webkit-user-select:none;user-select:none}.app-menu-bar{display:flex;align-items:stretch;background:var(--chrome);border-bottom:1px solid var(--border-chrome)}.app-menu-bar .menu-bar{flex:1 1 auto}.app-menu-bar .menu-bar-strip{border-bottom:none}.menu-bar-status{margin-left:auto;display:flex;align-items:center;gap:.5rem;padding:0 .65rem;font-size:.82rem;color:var(--ink)}.menu-bar-status .project-selector{background:var(--surface);color:var(--ink);border:1px solid var(--border-chrome);border-radius:4px;padding:.2rem .5rem;font-size:.85rem;max-width:11rem;cursor:pointer}.settings-menu{position:relative}.settings-pop{position:absolute;right:0;top:100%;z-index:20;margin-top:.35rem;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 8px var(--shadow);padding:.5rem .75rem;min-width:11rem}.settings-pop label.field{font-size:.85rem}main{padding:1rem}.cvsize-view,.orifice-view,.relief-view,.hxf-view,.view-form{max-width:var(--measure-form);margin-inline:auto}section.report{max-width:var(--measure-form);margin-inline:auto}.step-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}button{min-width:var(--ctl-min-w);height:var(--ctl-h);padding:var(--ctl-pad);border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--ctl-radius);font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}button.primary{background:var(--brand);color:var(--brand-contrast);border:1px solid var(--brand)}button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--brand)}button.btn-sm,.loop-tabs button,.menu-bar-status button{height:var(--ctl-h-sm);padding:var(--ctl-pad-sm);font-size:.85rem}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{min-height:var(--ctl-h);padding:0 .5rem;border-radius:var(--ctl-radius);border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit}textarea{padding:.4rem .5rem}button.linklike{min-width:0;background:none;border:none;color:var(--select-accent);text-decoration:underline;cursor:pointer;padding:0;font:inherit}.icon-btn{min-width:0;width:var(--ctl-h);padding:0;display:inline-grid;place-items:center}.btn-row{display:flex;gap:5px;flex-wrap:wrap;align-items:center}button:disabled{opacity:.4;cursor:default}.error{color:var(--error);margin:.5rem 0}.hint{color:var(--ink-hint);font-size:.9rem}label.field{display:grid;grid-template-columns:var(--label-col) minmax(6rem,1fr) var(--unit-col);align-items:center;column-gap:6px;min-height:var(--row-h);margin:.15rem 0}label.field>input,label.field>select,label.field>textarea{margin-left:0;width:100%}label.field>input[type=number],label.field>input[inputmode=decimal]{text-align:right;font-variant-numeric:tabular-nums}label.field.field-wide>:not(:first-child){grid-column:2 / -1}label.field.field-stack{display:block;margin:.4rem 0}label.field.field-stack>input,label.field.field-stack>select{width:auto}table.data{border-collapse:collapse;margin:.5rem 0}table.data td,table.data th{border:1px solid var(--border);padding:.25rem .6rem;font-size:.9rem}table.data th{background:var(--surface);text-align:left}table.data td code{font-family:ui-monospace,monospace}table.grid{width:100%;border-collapse:collapse;font-size:.8rem;font-variant-numeric:tabular-nums}table.grid caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}table.grid th{position:sticky;top:0;z-index:1;background:var(--chrome);color:var(--ink-hint);text-align:right;font-weight:600;font-size:.72rem;height:21px;padding:0 8px;white-space:nowrap;border-bottom:1px solid var(--border-chrome);border-right:1px solid var(--border-soft)}table.grid td{text-align:right;height:var(--row-h);padding:0 8px;white-space:nowrap;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft)}table.grid :is(th,td):first-child,table.grid :is(th,td).txt{text-align:left}table.grid tbody tr:hover{background:var(--chrome-2)}table.grid tbody tr.sel,table.grid tbody tr.ref-overridden{background:var(--sel-bg);box-shadow:inset 2px 0 0 var(--select-accent)}table.grid td.warn{background:var(--warn-bg)}table.grid td.crit{color:var(--error);font-weight:600}table.grid.editable td,table.grid.editable th{border:1px solid var(--border);padding:.25rem .6rem;font-size:.9rem;text-align:left}table.grid.editable th{position:static}table.grid.editable td{white-space:normal}table.grid.editable input{width:5rem}table.grid.editable select{max-width:14rem}table.grid.editable.nowrap td{white-space:nowrap;vertical-align:middle}table.grid.rowhead th{position:static}.grid-scroll{overflow:auto;max-height:320px}.grid-scroll.fill{max-height:none}.ref-view .ref-section{margin:1.2rem 0}.ref-view .ref-section h3{margin-bottom:.2rem}.ref-table-scroll{overflow-x:auto}ul.pump-list{list-style:none;padding:0}ul.pump-list li{background:var(--surface);border:1px solid var(--border-soft);border-radius:6px;padding:.6rem .9rem;margin:.5rem 0;display:flex;justify-content:space-between;align-items:center}.canvas-wrap{border:1px solid var(--border);background:var(--surface);touch-action:manipulation}.viz-root{color-scheme:light;--surface-1: #fcfcfb;--ink-primary: #0b0b0b;--ink-secondary: #52514e;--ink-muted: #898781;--grid: #e1e0d9;--axisline: #c3c2b7;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a}[data-theme=dark] .viz-root{color-scheme:dark;--surface-1: #1a1a19;--ink-primary: #ffffff;--ink-secondary: #c3c2b7;--ink-muted: #898781;--grid: #2c2c2a;--axisline: #383835;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])) .viz-root{color-scheme:dark;--surface-1: #1a1a19;--ink-primary: #ffffff;--ink-secondary: #c3c2b7;--ink-muted: #898781;--grid: #2c2c2a;--axisline: #383835;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70}}.viz-root{background:var(--surface-1);border:1px solid var(--grid);border-radius:6px;padding:.5rem .75rem .25rem;margin:.75rem 0;position:relative}.viz-title{font-size:.85rem;color:var(--ink-secondary);margin:0 0 .25rem}.viz-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--ink-secondary);margin-bottom:.25rem}.viz-legend .key{display:inline-block;width:12px;height:3px;border-radius:2px;vertical-align:middle;margin-right:.35rem}.viz-tooltip{position:absolute;pointer-events:none;background:var(--surface-1);border:1px solid var(--axisline);border-radius:4px;padding:.3rem .5rem;font-size:.75rem;color:var(--ink-primary);box-shadow:0 1px 4px #0b0b0b1f;white-space:nowrap;z-index:5}.viz-tooltip .row{display:flex;gap:.5rem;justify-content:space-between}.summary-chips{display:flex;gap:.6rem;flex-wrap:wrap;margin:.5rem 0}.summary-chips .chip{background:var(--surface);border:1px solid var(--border-soft);border-radius:6px;padding:.35rem .7rem}.summary-chips .chip .label{display:block;font-size:.7rem;color:var(--ink-hint)}.summary-chips .chip .value{font-weight:600}.warnbox{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:4px;padding:.4rem .6rem;margin:.4rem 0;font-size:.85rem}table.steps{border-collapse:collapse;margin:.5rem 0;width:100%}table.steps td,table.steps th{border:1px solid var(--border);padding:.3rem .5rem;font-size:.82rem;vertical-align:top}table.steps td.formula{font-family:ui-monospace,monospace;white-space:nowrap}.dock-host{--dock-left-w: 0px;--dock-right-w: 0px;--dock-bottom-h: 0px;display:grid;grid-template-columns:auto var(--dock-left-w) auto 1fr auto var(--dock-right-w);grid-template-rows:1fr auto var(--dock-bottom-h);flex:1 1 auto;min-height:0;min-width:0;position:relative}.dock-rail{grid-row:1;grid-column:1;min-height:0}.dock-left{grid-row:1;grid-column:2;border-width:0 1px 0 0}.dock-splitter-left{grid-row:1;grid-column:3;width:10px;cursor:col-resize}.dock-canvas{grid-row:1;grid-column:4;display:flex;flex-direction:column;min-width:0;min-height:0}.dock-canvas>.canvas-wrap{display:flex;flex-direction:column;min-height:0;min-width:0}.dock-splitter-right{grid-row:1;grid-column:5;width:10px;cursor:col-resize}.dock-right{grid-row:1;grid-column:6;border-width:0 0 0 1px}.dock-splitter-bottom{grid-row:2;grid-column:1 / -1;height:10px;cursor:row-resize}.dock-bottom{grid-row:3;grid-column:1 / -1;border-width:1px 0 0}.dock-pane{position:relative;overflow:auto;min-width:0;min-height:0;background:var(--surface);border:1px solid var(--border)}.dock-pane>*:not(:where(.dock-collapse)){width:100%;margin-left:0;margin-right:0}.dock-empty{padding:.4rem .1rem}.dock-splitter{touch-action:none;position:relative;z-index:1;display:flex;align-items:center;justify-content:center}.dock-splitter:before{content:"";display:block;border-radius:3px}.dock-splitter-left:before,.dock-splitter-right:before{width:3px;height:100%}.dock-splitter-bottom:before{height:3px;width:100%}.dock-splitter:hover:before,.dock-splitter:active:before{background:var(--border-soft)}.dock-collapse{position:absolute;z-index:2;min-width:0;width:1.2rem;height:1.2rem;padding:0;line-height:1;display:grid;place-items:center;border:none;border-radius:4px;background:transparent;color:var(--ink-hint);cursor:pointer;font-size:.7rem}.dock-collapse:hover{background:var(--bg);color:var(--ink)}.dock-collapse-left{grid-row:1;grid-column:3;top:2px;left:50%;transform:translate(-50%)}.dock-collapse-right{grid-row:1;grid-column:5;top:2px;left:50%;transform:translate(-50%)}.dock-collapse-bottom{grid-row:2;grid-column:1 / -1;top:50%;right:8px;transform:translateY(-50%)}.model-tree{display:flex;flex-direction:column;min-height:0;height:100%}.model-tree-filter{margin:4px;flex-shrink:0}.model-tree-rows{flex:1 1 auto;min-height:0;overflow:auto}.model-tree-row{display:flex;align-items:center;gap:4px;height:var(--ctl-h);padding-right:6px;padding-left:calc(var(--tree-level, 0) * .9rem + .3rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;color:var(--ink-secondary)}.model-tree-row:hover{background:var(--bg);color:var(--ink-primary)}.model-tree-row[aria-selected=true]{background:color-mix(in srgb,var(--select-accent) 16%,var(--surface));color:var(--select-accent)}.model-tree-row:focus-visible{outline:2px solid var(--select-accent);outline-offset:-2px}.model-tree-twisty{width:1rem;text-align:center;color:var(--ink-hint);flex-shrink:0}.model-tree-empty{padding:.5rem;color:var(--ink-hint)}.results-tabs{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.results-tabs>.hint{flex-shrink:0}.results-tablist{display:flex;gap:2px;flex-shrink:0;border-bottom:1px solid var(--border);padding:0 4px}.results-tablist [role=tab]{min-width:0;border:none;background:transparent;padding:4px 10px;color:var(--ink-secondary);cursor:pointer;border-bottom:2px solid transparent}.results-tablist [role=tab][aria-selected=true]{color:var(--select-accent);border-bottom-color:var(--select-accent)}.results-tablist [role=tab][aria-disabled=true]{color:var(--ink-hint);cursor:default}.results-tablist [role=tab].tab-danger{color:var(--danger)}.results-tabpanel{flex:1 1 auto;min-height:0;overflow:auto;padding:4px}.canvas-rulers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.canvas-ruler-top,.canvas-ruler-left{position:absolute;background:var(--chrome);color:var(--ink-hint);font-size:9px}.canvas-ruler-top{top:0;left:var(--ruler-w, 18px);right:0;height:var(--ruler-w, 18px);border-bottom:1px solid var(--border)}.canvas-ruler-left{top:var(--ruler-w, 18px);left:0;bottom:0;width:var(--ruler-w, 18px);border-right:1px solid var(--border)}.canvas-ruler-corner{position:absolute;top:0;left:0;width:var(--ruler-w, 18px);height:var(--ruler-w, 18px);background:var(--chrome);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.canvas-ruler-top line,.canvas-ruler-left line{stroke:var(--border);stroke-width:1}.canvas-ruler-top text,.canvas-ruler-left text{fill:var(--ink-hint);font-size:9px}.canvas-grid .minor{stroke:var(--border-soft);stroke-width:.5}.canvas-grid .major{stroke:var(--border);stroke-width:1}@media print{.grid-scroll{max-height:none;overflow:visible}:root,[data-theme=dark]{color-scheme:light;--bg: #ffffff;--surface: #ffffff;--panel-bg: rgba(255,255,255,.97);--ink: #1c2733;--ink-hint: #51606e;--border: #c6d0d8;--border-soft: #d5dde3;--error: #a02020;--warn-bg: #fff8e6;--warn-border: #e5c96b}.app-menu-bar,.app-frame-tabs,.no-print{display:none!important}main{padding:0}@page{size:A4 portrait;margin:12mm}.viz-root{break-inside:avoid}section.report h2{break-before:page}section.report h2:first-of-type{break-before:auto}.app-frame{display:block;height:auto}.app-frame-body{overflow:visible}.app-frame-status{display:none}.dock-host{display:block}.dock-pane{overflow:visible;max-height:none;border:none}.dock-splitter,.dock-collapse{display:none}.model-tree-rows{overflow:visible}.results-tablist{display:none}.results-tabpanel{overflow:visible}.results-tabpanel[hidden]{display:block!important}.results-tabpanel:before{content:attr(data-tab-label);display:block;font-weight:600;margin:.6rem 0 .2rem}.canvas-rulers{display:none}}.drop-zone{border:2px dashed var(--border);border-radius:6px;padding:.75rem 1rem;margin:.5rem 0}.drop-zone .hint{margin:.4rem 0 0}.trace-now{font-size:1.05rem}.tool-hint{margin:.2rem 0 .4rem;min-height:1.2em;flex-shrink:0}ul.hint{padding-left:1.2rem}ul.hint li{margin:.15rem 0}:root{--toolbar-bg: var(--surface);--tool-active: var(--select-accent)}#root:has(.system-editor){height:100dvh}main:has(.system-editor){min-height:0;display:flex;flex-direction:column}main:has(.system-editor),main:has(.iso-editor),main:has(.stress-editor){padding:0}.system-editor{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.editor-shell{display:flex;flex-direction:column;flex:1 1 auto;min-height:240px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg)}.system-editor>.warnings{min-height:0;overflow-y:auto}.results-region{position:relative;padding-top:1.5rem;display:flex;flex-direction:column;min-height:0;height:100%}.results-close{min-width:0;position:absolute;top:.2rem;right:.2rem;width:1.4rem;height:1.4rem;line-height:1;display:grid;place-items:center;border:none;border-radius:4px;background:var(--surface);color:var(--ink-hint);cursor:pointer;font-size:1rem;padding:0}.results-close:hover{background:var(--bg);color:var(--ink)}.tool-palette,.tool-strip{display:flex;flex-direction:column;gap:2px;padding:6px 4px;background:var(--toolbar-bg);border-right:1px solid var(--border);min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.tool-palette .tool,.tool-strip .tool,.action-btn{min-width:0;width:var(--ctl-h);height:var(--ctl-h);min-height:var(--ctl-h);padding:0;display:grid;place-items:center;position:relative;border:none;background:transparent;border-radius:var(--ctl-radius);color:var(--ink-secondary);cursor:pointer}.tool-palette .tool:hover,.tool-strip .tool:hover,.action-btn:hover{background:var(--bg);color:var(--ink-primary)}.chip-badge{font-size:.6rem;line-height:1;margin-left:1px;color:inherit}.action-btn:has(.chip-badge){width:auto;min-width:var(--ctl-h);padding:0 5px;gap:2px}.tool-palette .tool.active,.tool-strip .tool.active{background:color-mix(in srgb,var(--tool-active) 16%,var(--surface));color:var(--tool-active);box-shadow:inset 0 0 0 1px var(--tool-active)}.tool-palette .tool:focus-visible,.tool-strip .tool:focus-visible,.action-btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--select-accent);outline-offset:1px}.tool-sep{width:60%;border:none;border-top:1px solid var(--border-soft);margin:5px auto}.action-bar{display:flex;align-items:center;gap:.4rem;padding:4px 8px;background:var(--toolbar-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.action-bar .spacer{flex:1}.action-bar .action-btn{position:relative}.action-bar .dirty-dot{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--error, #c43)}.action-bar .shell-title{margin:0 .4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}.action-bar .back-btn{font-size:1rem}.action-bar .saved-note{align-self:center}.status-bar{display:flex;gap:1rem;padding:3px 10px;font-size:11px;color:var(--ink-hint);background:var(--toolbar-bg);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;flex-shrink:0}.status-bar .status-dirty{color:var(--error, #c43)}.app-frame-status .status-bar{border-top:none;background:transparent}.loop-tabs{display:inline-flex;gap:.35rem;align-items:center;flex-wrap:wrap}.loop-tabs button{padding:.2rem .6rem;border-radius:6px;border:1px solid var(--border);background:transparent}.loop-tabs .active{outline:2px solid var(--select-accent);outline-offset:-2px}.canvas-wrap{flex:1 1 420px;min-width:320px}.schematic{width:100%;height:auto;background:var(--canvas-bg);border:1px solid var(--border);border-radius:6px;touch-action:manipulation}.schematic line{stroke:var(--stroke);stroke-width:var(--pipe-w, 2);vector-effect:non-scaling-stroke}.schematic .dir-arrow{fill:var(--stroke)}.schematic .flow-arrow{fill:var(--select-accent);opacity:.85}.schematic .closed line{stroke-dasharray:6 4}.schematic .link-isolationValve.closed .glyph-bg{fill:var(--ink);stroke:var(--ink)}.schematic .link-isolationValve.closed .glyph{fill:var(--surface)}.schematic .selected line{stroke-width:3.5;vector-effect:non-scaling-stroke}.schematic .node circle{fill:var(--node-fill);stroke:var(--stroke);stroke-width:2}.schematic .node-tank circle{fill:var(--node-tank)}.schematic .node-demand circle{fill:var(--node-demand)}.schematic .node-discharge circle{fill:var(--node-discharge)}.schematic .selected circle{stroke:var(--select-accent);stroke-width:3.5}.schematic .glyph-bg{fill:var(--node-fill);stroke:var(--stroke)}.schematic text{font-size:12px;fill:var(--label-ink);paint-order:stroke;stroke:var(--canvas-bg);stroke-width:3.5px;stroke-linejoin:round}.schematic .flow-label,.schematic .pressure-label{font-size:11px;fill:var(--ink-hint)}.schematic .port-label{font-size:9px;fill:var(--ink-hint)}.element-panel{border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem}.element-panel-help-wrap{position:relative}.element-panel-help-wrap .panel-help{position:absolute;top:.6rem;right:.8rem;text-decoration:none;font-weight:600;line-height:1}.fitting-row{display:flex;gap:.3rem;margin-bottom:.3rem}.fitting-row input{width:4rem}.fixups li,.warnings li{margin-bottom:.25rem}.trace-steps li{margin-bottom:.5rem}.results-panel{border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;margin-top:.6rem}.results-panel table{border-collapse:collapse}.results-panel td,.results-panel th{padding:.15rem .6rem .15rem 0;text-align:left}.hmi-body{padding:12px;overflow:auto}.hmi-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.hmi-chip{font-size:12px;padding:2px 8px;border-radius:10px;border:1px solid var(--border-soft)}.hmi-chip-live{background:var(--surface);color:var(--link-hx);border-color:var(--link-hx)}.hmi-chip-stale{background:var(--warn-bg);color:var(--ink);border-color:var(--warn-border)}.hmi-chip-idle{background:var(--surface);color:var(--ink-hint)}.hmi-chip-upset{background:var(--warn-bg);color:var(--ink);border-color:var(--warn-border)}.hmi-count{font-size:12px;color:var(--ink-hint)}.hmi-solve{margin-left:auto}.hmi-errors{color:var(--error);font-size:13px;margin:0 0 12px}.hmi-hint{font-size:13px;color:var(--ink-hint);margin-bottom:10px}.hmi-empty{padding:32px;text-align:center;color:var(--ink-hint)}.hmi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.hmi-tile{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.hmi-tag{font-size:12px;font-weight:600;color:var(--ink-hint)}.hmi-value{font-size:22px;font-weight:600;margin:4px 0;color:var(--ink)}.hmi-sub{font-size:11px;color:var(--ink-hint)}.hmi-delta{font-size:12px;color:var(--ink-hint);margin-left:6px}.upset-panel{padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}.upset-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.upset-row:last-of-type{border-bottom:none}.upset-add{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.upset-empty{color:var(--ink-hint);font-size:13px;padding:8px 0}.canvas-viewport{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.schematic{flex:1 1 auto;min-height:320px;display:block;touch-action:none;cursor:default;border:none;border-radius:0}.system-editor:fullscreen{background:var(--bg);padding:.5rem;overflow:auto}.canvas-controls{position:absolute;right:.5rem;top:.5rem;display:flex;flex-direction:column;gap:.25rem}.canvas-controls button{min-width:0;width:2.2rem;height:2.2rem;min-height:0;padding:0;font-size:1.1rem;display:grid;place-items:center}.schematic.crosshair{cursor:crosshair}.schematic .link .hit{stroke:transparent;stroke-width:20}.canvas-controls{top:auto;bottom:.5rem}.system-editor.pseudo-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);overflow:auto;padding:.5rem}.schematic .temperature-label{font-size:11px;fill:var(--series-2, #d95926)}.schematic .duty-label{font-size:11px;fill:var(--link-hx)}.schematic .cv-state-label{font-size:11px;fill:var(--link-cv)}.schematic .pipe-size-label{font-size:10px;fill:var(--ink-hint)}.cv-table .cv-abnormal td{color:var(--error)}.controller-chip{display:inline-block;border-radius:6px;padding:.1rem .55rem;font-size:.78rem;font-weight:600;border:1px solid var(--border-soft)}.controller-chip--holding{background:var(--surface);color:var(--brand);border-color:var(--brand)}.controller-chip--resting{background:var(--surface);color:var(--ink-hint)}.controller-chip--engaged{background:var(--warn-bg);color:var(--ink);border-color:var(--warn-border)}.controller-chip--saturated{background:var(--surface);color:var(--error);border-color:var(--error)}.cvsize-system{margin-top:1.2rem}.cvsize-errors{color:var(--error);font-size:13px;margin:0;padding-left:1.1rem}.cvsize-empty{color:var(--ink-hint);padding:8px 0}.home-view{max-width:960px;margin:0 auto}.home-view .tagline{color:var(--ink-hint);margin:.2rem 0 1.2rem}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem}.module-tile{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;height:auto;padding:1.1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;white-space:normal}.module-tile:hover:not(:disabled){outline:2px solid var(--select-accent)}.module-tile:disabled{opacity:.45;cursor:default}.module-tile strong{font-size:1.05rem}.module-tile svg{color:var(--select-accent)}.lib-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin-top:.8rem}.lib-tile{display:flex;gap:.5rem;align-items:center;height:auto;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.lib-tile:hover{outline:2px solid var(--select-accent)}.slider-pair{display:flex;align-items:center;gap:.5rem}.slider-pair input[type=range]{flex:1}.slider-pair input[type=number]{width:4.5rem}.schematic .callout-box{fill:var(--surface);stroke:var(--border);cursor:grab}.schematic .callout-leader{stroke:var(--ink-hint);stroke-width:1;stroke-dasharray:3 3}.schematic .instrument-box{fill:#10161c;stroke:var(--select-accent);stroke-width:1.5;cursor:grab}.schematic .instrument-leader{stroke:var(--select-accent);stroke-width:1;stroke-dasharray:2 2;opacity:.8}.schematic .instrument-text{fill:#d7f0ff;font-family:ui-monospace,monospace;font-size:10px}.iso-canvas{width:100%;height:100%;touch-action:none;background:var(--canvas-bg, transparent)}.iso-canvas .iso-unrouted{stroke-dasharray:6 5;opacity:.65}.iso-canvas .link polyline{stroke:var(--pipe, #4a7dbd);stroke-width:var(--pipe-w, 2);stroke-linejoin:round;vector-effect:non-scaling-stroke}.iso-canvas .link polyline.iso-sketch{stroke-dasharray:2 3;opacity:.8}.iso-canvas .link.selected polyline,.iso-canvas .link.selected line{stroke:var(--accent, #e08a1a)}.iso-gap-whisker{stroke:var(--danger, #d64545);stroke-width:3;stroke-dasharray:3 3;pointer-events:none}.iso-grid .minor{stroke:var(--border-soft);stroke-width:.5;opacity:.25}.iso-grid .major{stroke:var(--border);stroke-width:1;opacity:.25}.iso-orient{pointer-events:none}.iso-orient .orient-axis{stroke-width:1.5;opacity:.6}.iso-orient .orient-axis.axis-E{stroke:#c0654a}.iso-orient .orient-axis.axis-N{stroke:#4a9e5b}.iso-orient .orient-axis.axis-U{stroke:#4a7dbd}.iso-orient .orient-axis-label{font-size:7px;fill:var(--text-muted, #8a8f98);opacity:.75}.iso-orient .orient-origin{fill:none;stroke:var(--text-muted, #8a8f98);stroke-width:1.2;opacity:.7}.iso-orient .orient-corner{stroke:var(--border, #555);stroke-width:1.5;opacity:.45}.iso-canvas .iso-elev-drop{stroke:var(--ink-hint);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;fill:none;pointer-events:none}.iso-canvas .iso-elev-ground{stroke:var(--ink-hint);stroke-width:1;vector-effect:non-scaling-stroke;fill:none;pointer-events:none}.iso-shadow{stroke:var(--ink-hint);stroke-width:1;opacity:.35;vector-effect:non-scaling-stroke;fill:none;pointer-events:none}.iso-axis-gizmo .gizmo-stub{cursor:pointer}.iso-axis-gizmo .gizmo-stub line{stroke:var(--accent, #e08a1a);stroke-width:1.5;opacity:.65}.iso-axis-gizmo .gizmo-stub .gizmo-hit{fill:var(--accent, #e08a1a);opacity:.28;stroke:none}.iso-axis-gizmo .gizmo-stub .gizmo-label{font-size:7px;fill:var(--accent, #e08a1a);opacity:.85}.iso-axis-gizmo .gizmo-stub:hover line,.iso-axis-gizmo .gizmo-stub.armed line{opacity:1;stroke-width:2.5}.iso-axis-gizmo .gizmo-stub:hover .gizmo-hit,.iso-axis-gizmo .gizmo-stub.armed .gizmo-hit{opacity:.75}.iso-axis-gizmo .gizmo-stub.armed .gizmo-label{opacity:1;font-weight:700}.unseen-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent, #e08a1a);margin-left:4px;vertical-align:super}.settings-menu .whats-new{display:block;width:100%;margin-top:.4rem}.release-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.release-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.release-modal{position:relative;max-width:32rem;width:90%;max-height:80vh;overflow:auto;background:var(--panel-bg, #1c1f26);border:1px solid var(--border, #333);border-radius:6px;padding:1rem}.release-head{display:flex;justify-content:space-between;align-items:center}.release-list{list-style:none;padding:0;margin:.5rem 0 0}.release-entry{padding:.5rem 0;border-top:1px solid var(--border, #333)}.release-entry-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}.release-version{font-weight:700;color:var(--accent, #e08a1a)}.release-title{font-weight:600}.release-date{margin-left:auto;font-size:.8rem;opacity:.6}.release-entry ul{margin:.3rem 0 0;padding-left:1.1rem}.release-entry li{margin:.15rem 0}.examples-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.examples-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.examples-modal{position:relative;max-width:40rem;width:90%;max-height:80vh;overflow:auto;background:var(--panel-bg, #1c1f26);border:1px solid var(--border, #333);border-radius:6px;padding:1rem}.examples-head{display:flex;justify-content:space-between;align-items:center}.examples-list{list-style:none;padding:0;margin:.5rem 0 0}.examples-entry{padding:.6rem 0;border-top:1px solid var(--border, #333)}.examples-entry-head{display:flex;gap:.5rem;align-items:baseline;justify-content:space-between}.examples-concepts{margin:.3rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem}.examples-chip{padding:.05rem .4rem;border:1px solid var(--border, #333);border-radius:999px;font-size:.75rem}.starter-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.starter-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.starter-modal{position:relative;max-width:34rem;width:90%;max-height:80vh;overflow:auto;background:var(--panel-bg, #1c1f26);border:1px solid var(--border, #333);border-radius:6px;padding:1rem}.starter-head{display:flex;justify-content:space-between;align-items:center}.starter-step{border:0;padding:0;margin:.75rem 0 0}.starter-step legend{font-weight:600;padding:0;margin-bottom:.4rem}.starter-choice{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0;border-top:1px solid var(--border, #333)}.starter-choice:first-of-type{border-top:none}.starter-choice input{margin-top:.2rem}.starter-choice-inline{display:inline-flex;align-items:center;gap:.3rem;margin-right:1rem}.starter-review-list{list-style:none;padding:0;margin:.3rem 0 0}.starter-review-list li{padding:.25rem 0;border-top:1px solid var(--border, #333)}.starter-review-list li:first-child{border-top:none}.troubleshoot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center}.troubleshoot-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073}.troubleshoot-modal{position:relative;max-width:34rem;width:90%;max-height:80vh;overflow:auto;background:var(--panel-bg, #1c1f26);border:1px solid var(--border, #333);border-radius:6px;padding:1rem}.troubleshoot-head{display:flex;justify-content:space-between;align-items:center}.troubleshoot-breadcrumb{display:flex;flex-wrap:wrap;gap:.3rem;list-style:none;padding:0;margin:.5rem 0 0;font-size:.8rem;color:var(--muted, #9aa4b2)}.troubleshoot-breadcrumb li{padding:.1rem .4rem;border:1px solid var(--border, #333);border-radius:999px}.troubleshoot-breadcrumb li:not(:last-child):after{content:"→";margin-left:.4rem}.troubleshoot-step{border:0;padding:0;margin:.75rem 0 0}.troubleshoot-step legend{font-weight:600;padding:0;margin-bottom:.4rem}.troubleshoot-choice{display:block;width:100%;text-align:left;padding:.5rem;margin-top:.4rem;background:transparent;border:1px solid var(--border, #333);border-radius:4px;cursor:pointer}.troubleshoot-choice:hover{background:var(--hover-bg, rgba(255,255,255,.05))}.troubleshoot-checks{padding-left:1.25rem;margin:.3rem 0 0}.troubleshoot-checks li{padding:.25rem 0}.troubleshoot-topics{margin-top:.75rem;display:flex;flex-direction:column;gap:.3rem}.iso-canvas .node.snap-target circle{stroke:var(--accent, #e08a1a);stroke-width:3.5}.iso-canvas .node.snap-target{filter:drop-shadow(0 0 3px var(--accent, #e08a1a))}.iso-canvas .link polyline.hit,.iso-canvas .link line.hit{stroke:transparent;stroke-width:20px}.iso-chip-bar,.flow-chip-bar{display:flex;gap:.4rem;align-items:center;padding:.3rem .5rem;flex-wrap:wrap;flex-shrink:0}.iso-chip-bar button.active{background:var(--accent, #e08a1a);color:#fff}.verify-badge{font-size:.8rem;padding:.15rem .5rem;border-radius:4px;border:1px solid var(--border, #333);cursor:pointer}.verify-badge.ok{color:#2e9e5b}.verify-badge.warn{color:var(--accent, #e08a1a);border-color:var(--accent, #e08a1a)}.verify-badge.critical{color:#fff;background:var(--danger);border-color:var(--danger)}.alerts-panel{position:absolute;right:0;top:0;width:20rem;max-height:100%;overflow:auto;background:var(--panel-bg, #1c1f26);border-left:1px solid var(--border, #333);z-index:5;padding:.5rem}.alerts-panel-head{display:flex;justify-content:space-between;align-items:center}.alerts-filter{display:flex;gap:.25rem;margin:.4rem 0}.alerts-filter button.active{background:var(--accent, #e08a1a);color:#111}.alerts-list{list-style:none;padding:0;margin:0}.alert-row{border-left:3px solid transparent;margin-bottom:2px}.alert-row.alert-critical{border-left-color:var(--danger)}.alert-row.alert-warn{border-left-color:var(--accent, #e08a1a)}.alert-locate{display:grid;grid-template-columns:auto auto 1fr;gap:.4rem;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:.25rem;color:inherit}.alert-cat{opacity:.7;font-size:.75rem}.alert-el{font-weight:600}.node.alert-critical circle,.link.alert-critical polyline,.link.alert-critical line{stroke:var(--danger)!important}.node.alert-warn circle,.link.alert-warn polyline,.link.alert-warn line{stroke:var(--accent, #e08a1a)!important}.flow-chip-bar .data-labels-toggle{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-size:.9rem}.flow-chip-bar .data-labels-toggle input{margin:0}.iso-layer-chips{display:inline-flex;gap:.3rem;align-items:center;padding:0 .4rem;border-left:1px solid var(--border, #333);border-right:1px solid var(--border, #333)}.iso-layer-chips button:disabled{opacity:.4;cursor:not-allowed}.iso-view-strip{display:inline-flex;gap:.3rem;align-items:center}.iso-issue-marker{font-size:13px;cursor:pointer}.iso-spec-bar{display:inline-flex;gap:.5rem;align-items:center;margin-left:auto}.active-spec-bar{display:inline-flex;gap:.5rem;align-items:center}.tool-context-menu{position:fixed;z-index:20;display:flex;flex-direction:column;min-width:9rem;padding:.3rem;border-radius:8px;background:var(--panel-bg, rgba(30,34,40,.96));border:1px solid var(--border, #333);box-shadow:0 2px 10px #00000059}.tool-context-menu button{text-align:left;padding:.35rem .6rem;border:none;background:transparent;color:var(--ink-primary, inherit);border-radius:4px;cursor:pointer;font-size:.9rem}.tool-context-menu button:hover{background:var(--bg)}.node-size-control{display:inline-flex;align-items:center;padding:0 .4rem;border-right:1px solid var(--border, #333)}.node-size-control input[type=range]{width:4.5rem;vertical-align:middle;margin-left:.3rem}.iso-hud{position:absolute;top:.6rem;left:.6rem;display:flex;gap:.4rem;align-items:center;padding:.4rem .6rem;border-radius:8px;background:var(--panel-bg, rgba(30,34,40,.92));box-shadow:0 2px 10px #00000059;z-index:5}.iso-hud input{width:6.5rem}.iso-hud-axes button{min-width:1.8rem}.iso-hud-axes button.active{background:var(--accent, #e08a1a);color:#fff}.iso-hud-snap{display:inline-flex;align-items:center;gap:.3rem}.iso-hud-snap input{width:3.2rem}.iso-canvas .link.multi-selected line:not(.hit),.iso-canvas .link.multi-selected polyline:not(.hit){stroke:#9b59d0}.iso-route-preview{stroke:var(--accent, #e08a1a);stroke-width:2.5;stroke-dasharray:4 4}.iso-fit-budget{display:flex;gap:.3rem;align-items:center}.iso-fit-budget button.over{background:#b33;color:#fff}.iso-fit-budget button.armed{background:var(--accent, #e08a1a);color:#fff}.iso-closure{font-size:.85rem;white-space:nowrap}.iso-reconcile{display:flex;gap:.4rem;align-items:center;padding:.3rem .4rem;border-radius:6px;background:#e08a1a26;border:1px solid var(--accent, #e08a1a)}.iso-reconcile p{margin:0;font-size:.85rem}.iso-issues-panel{position:absolute;top:.6rem;right:.6rem;max-width:22rem;max-height:60%;overflow-y:auto;padding:.5rem .7rem;border-radius:8px;background:var(--panel-bg, rgba(30,34,40,.92));box-shadow:0 2px 10px #00000059;z-index:5}.iso-issues-panel h3{margin:0 0 .3rem;font-size:.9rem}.iso-issues-panel ul{list-style:none;margin:0;padding:0}.iso-issues-panel li{margin-bottom:.25rem}.iso-issues-panel li button{text-align:left;width:100%;white-space:normal}.iso-drag-toast{position:absolute;top:.6rem;left:50%;transform:translate(-50%);display:flex;gap:.6rem;align-items:center;max-width:32rem;padding:.5rem .8rem;border-radius:8px;background:var(--panel-bg, rgba(30,34,40,.92));box-shadow:0 2px 10px #00000059;z-index:6;font-size:.85rem;color:var(--ink, #fff);pointer-events:none}.iso-drag-toast-action{flex-shrink:0;background:var(--accent, #e08a1a);color:#fff;border:none;padding:.3rem .6rem;border-radius:5px;pointer-events:auto}.canvas-wrap{position:relative}.iso-systems{list-style:none;padding-left:0}.iso-systems>li{margin-bottom:.6rem}.iso-system-row{display:flex;gap:.8rem;align-items:center;padding:.25rem 0}.iso-dim{font-size:11px;fill:var(--text, #ccc);paint-order:stroke;stroke:var(--bg, #14171c);stroke-width:3}.schematic text.iso-dim{font-size:12px;paint-order:stroke;stroke:var(--canvas-bg);stroke-width:3}.schematic text.iso-dim:not(.fit-good){fill:var(--dim-ink)}.iso-dim-unrouted{opacity:.6}.iso-canvas .link.fit-good line:not(.hit),.iso-canvas .link.fit-good polyline:not(.hit){stroke:#2e9e5b}.iso-dim.fit-good{fill:#2e9e5b}.iso-note text{font-size:12px;fill:var(--accent, #e08a1a);paint-order:stroke;stroke:var(--bg, #14171c);stroke-width:3;cursor:move}.iso-note.selected text{text-decoration:underline}.iso-marquee{fill:#e08a1a14;stroke:var(--accent, #e08a1a);stroke-dasharray:4 4}.iso-compass-wrap{position:absolute;left:.6rem;bottom:.6rem;pointer-events:none}.iso-compass-wrap svg.iso-compass{pointer-events:auto;cursor:pointer}.iso-compass-bg{fill:var(--panel-bg, rgba(30,34,40,.85));stroke:var(--border, #333)}.iso-compass line{stroke-width:1.5}.iso-compass-primary line{stroke:var(--accent, #e08a1a)}.iso-compass-primary text{fill:var(--accent, #e08a1a);font-size:10px;font-weight:600}.iso-compass-secondary line{stroke:var(--muted, #777);opacity:.6}.iso-compass-secondary text{fill:var(--muted, #777);font-size:9px}.iso-seg-row{display:flex;gap:.3rem;align-items:center;margin-bottom:.3rem}.iso-seg-row input{width:5rem}.iso-seg-actions{display:flex;gap:.4rem;margin-top:.3rem}.iso-bom{padding:.5rem .8rem}.iso-bom-head{display:flex;gap:1rem;align-items:baseline}.iso-bom table{border-collapse:collapse;width:100%}.iso-bom th,.iso-bom td{text-align:left;padding:.15rem .6rem .15rem 0;border-bottom:1px solid var(--border, #333)}.iso-sym{color:var(--ink-hint)}.iso-sym-halo{fill:var(--canvas-bg);stroke:none}.iso-fitting-chip{font-size:10px;fill:var(--ink-hint);paint-order:stroke;stroke:var(--bg, #14171c);stroke-width:3}.iso-port-label{font-size:9px;fill:var(--ink-hint);paint-order:stroke;stroke:var(--bg, #14171c);stroke-width:2.5}.stress-restraint{font-size:13px;fill:var(--accent, #e08a1a);paint-order:stroke;stroke:var(--bg, #14171c);stroke-width:3;pointer-events:none}.stress-restraint.auto{opacity:.55}.iso-canvas .link.stress-ok line:not(.hit),.iso-canvas .link.stress-ok polyline:not(.hit){stroke:#2e9e5b}.iso-canvas .link.stress-warn line:not(.hit),.iso-canvas .link.stress-warn polyline:not(.hit){stroke:#d1a520}.iso-canvas .link.stress-over line:not(.hit),.iso-canvas .link.stress-over polyline:not(.hit){stroke:#d84343}.stress-results table{border-collapse:collapse;width:100%;margin:.3rem 0 .6rem;font-size:.85rem}.stress-results th,.stress-results td{text-align:left;padding:.15rem .5rem .15rem 0;border-bottom:1px solid var(--border, #333);font-variant-numeric:tabular-nums}.iso-sheet{display:flex;flex-direction:column;gap:.6rem}.sheet-toolbar{display:flex;gap:.6rem}.sheet-page{background:#fff;color:#111;aspect-ratio:420/297;display:flex;gap:8px;padding:10px;border:1px solid #999;max-width:1400px}.sheet-drawing{flex:1;position:relative;border:1px solid #444}.sheet-drawing svg{width:100%;height:100%}.sheet-compass{position:absolute;left:8px;bottom:8px}.sheet-page .iso-compass-bg{fill:#fff;stroke:#444}.sheet-page .iso-compass-secondary line{stroke:#999}.sheet-page .iso-compass-secondary text{fill:#666}.sheet-side{width:240px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}.sheet-bom,.title-block{border-collapse:collapse;width:100%;font-size:11px;color:#111}.sheet-bom th,.sheet-bom td,.title-block th,.title-block td{border:1px solid #444;padding:2px 5px;text-align:left}.sheet-page .iso-dim{fill:#111;stroke:#fff}.sheet-page .iso-sym-halo{fill:#fff}.sheet-page .iso-port-label{fill:#111;stroke:#fff}.sheet-page .node-label{fill:#111;stroke:#fff;paint-order:stroke;stroke-width:3;font-size:11px}.sheet-page .iso-note-text{fill:#a35a00;font-size:12px}.sheet-page .link line,.sheet-page .link polyline{stroke:#1a4f8a;stroke-width:1.5}.sheet-page .link .iso-unrouted{stroke-dasharray:6 5;stroke:#888}.sheet-page .node circle{fill:#fff;stroke:#333}.sheet-page .glyph-bg{fill:#fff;stroke:#333}.sheet-page .glyph{fill:#111;font-size:11px}.sheet-page .flow-label,.sheet-page .pressure-label{fill:#445;font-size:11px}.sheet-page .temperature-label{fill:#a04a1a;font-size:11px}.sheet-page .duty-label{fill:#1a4f8a;font-size:11px}.sheet-layer-row{display:inline-flex;gap:.6rem;align-items:center;flex-wrap:wrap}.sheet-layer-item{display:inline-flex;gap:.25rem;align-items:center;font-size:.85rem}.sheet-layer-hint{color:var(--ink-hint);font-size:.75rem}@media print{body:has(.iso-sheet) .app-menu-bar,body:has(.iso-sheet) .app-frame-tabs,body:has(.iso-sheet) .sheet-toolbar,body:has(.iso-sheet) main>:not(.iso-sheet){display:none!important}body:has(.iso-sheet) main{padding:0!important}.sheet-page{border:none;max-width:none;width:100%}@page iso-sheet{size:A3 landscape;margin:10mm}body:has(.iso-sheet){page:iso-sheet}}.workspace{display:flex;flex-direction:column;min-height:0;flex:1}.workspace-tabs{display:flex;gap:.25rem;padding:.3rem .6rem 0;border-bottom:1px solid var(--border)}.workspace-tabs [role=tab]{border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;padding:.3rem .9rem;background:none;color:var(--ink-hint);cursor:pointer}.workspace-tabs [role=tab].active{color:var(--ink);border-color:var(--border);background:var(--surface)}.doc-tabs{display:flex;align-items:stretch;gap:2px;background:var(--chrome);border-bottom:1px solid var(--border-chrome);padding:0 4px;overflow-x:auto}.doc-tab-wrap{display:flex;align-items:center;flex-shrink:0}.doc-tab{min-width:0;max-width:14rem;border:none;background:transparent;padding:4px 4px 4px 10px;color:var(--ink-secondary);cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;gap:5px;white-space:nowrap}.doc-tab.active{color:var(--ink);border-bottom-color:var(--select-accent);background:var(--chrome-2)}.doc-tab-title{overflow:hidden;text-overflow:ellipsis}.doc-tab-dirty{color:var(--select-accent);font-size:.5em;line-height:1;flex-shrink:0}.doc-tab-close{min-width:0;width:1.3rem;height:1.3rem;padding:0;margin:0 4px 0 0;border:none;background:transparent;color:var(--ink-hint);cursor:pointer;border-radius:3px;flex-shrink:0}.doc-tab-close:hover{background:var(--chrome-2);color:var(--ink)}.tools-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.tools-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000047}.tools-drawer{position:absolute;top:0;right:0;height:100%;width:264px;background:var(--panel-bg, #fff);border-left:1px solid var(--line, #ddd);padding:12px;overflow-y:auto;box-sizing:border-box}.tools-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tools-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-hint);margin:12px 0 6px}.tool-tile{display:flex;align-items:center;gap:10px;width:100%;height:auto;text-align:left;padding:8px 10px;border:1px solid var(--line, #ddd);border-radius:8px;background:transparent;margin-bottom:6px;cursor:pointer;white-space:normal}.tool-tile:hover:not(.disabled){background:var(--hover, #f4f4f4)}.tool-tile.disabled{opacity:.5;cursor:default}.tool-tile-text{display:flex;flex-direction:column}.tool-tile-label{font-weight:500;font-size:13px}.tool-tile-blurb{font-size:11px;color:var(--ink-hint)}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.help-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000047}.help-drawer{position:absolute;top:0;right:0;height:100%;width:320px;background:var(--panel-bg, #fff);border-left:1px solid var(--line, #ddd);padding:12px;overflow-y:auto;box-sizing:border-box}.help-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.help-related{margin:.75rem 0;display:flex;flex-direction:column;gap:.15rem}.help-browse{display:flex;flex-direction:column;gap:.25rem}.help-view{display:flex;gap:1.25rem;align-items:flex-start}.help-sidebar{width:240px;flex:0 0 240px;max-height:calc(100vh - 8rem);overflow-y:auto;border-right:1px solid var(--border-soft);padding-right:.75rem;box-sizing:border-box}.help-search{width:100%;box-sizing:border-box;margin-bottom:.75rem;padding:.4rem .6rem;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}.help-sidebar details{margin-bottom:.4rem}.help-sidebar summary{cursor:pointer;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-hint);margin:.5rem 0 .25rem}.help-topic-btn{display:block;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:.32rem .5rem;color:var(--ink);cursor:pointer;font:inherit}.help-topic-btn:hover{background:var(--surface)}.help-topic-btn.active{background:var(--surface);color:var(--select-accent);font-weight:600}.help-hits{list-style:none;margin:0;padding:0}.help-hits li{margin-bottom:.7rem}.help-article{flex:1 1 auto;min-width:0;max-width:720px;max-height:calc(100vh - 8rem);overflow-y:auto}.help-article h1{margin-top:0}.help-callout{border-left:3px solid var(--border-soft);padding:.4rem .8rem;margin:.8rem 0;color:var(--ink-hint);background:var(--surface);border-radius:0 6px 6px 0}.help-kbd{display:inline-block;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.1rem .4rem;font-family:monospace;font-size:.85em}.cvsize-view{padding:1rem 1.25rem;overflow:auto}.cvsize-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem}.cvsize-header h2{margin:0}.cvsize-manual{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.cvsize-manual h3{margin-top:0}.cvsize-manual label{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:var(--ink)}.cvsize-manual label span{color:var(--ink-hint);font-size:.85rem}.cvsize-manual input{width:8rem}.cvsize-out{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:.35rem}.cvsize-out small{color:var(--ink-hint)}.cvsize-badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.85rem;border:1px solid transparent}.cvsize-good{color:var(--link-hx);background:color-mix(in srgb,var(--link-hx) 14%,transparent);border-color:color-mix(in srgb,var(--link-hx) 35%,transparent)}.cvsize-marginal{color:var(--ink);background:var(--warn-bg);border-color:var(--warn-border)}.cvsize-oversized{color:var(--ink-hint);background:color-mix(in srgb,var(--ink-hint) 14%,transparent);border-color:color-mix(in srgb,var(--ink-hint) 35%,transparent)}.cvsize-undersized{color:var(--error);background:color-mix(in srgb,var(--error) 14%,transparent);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.cvsize-unknown{color:var(--ink-hint);background:transparent;border-color:var(--border)}.cvsize-service--incipient{color:color-mix(in srgb,var(--ink) 70%,var(--warn-border))}.cvsize-service--cavitating,.cvsize-service--flashing{color:var(--error)}.cvsize-save{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;align-items:center;gap:.75rem}.cvsize-save input[type=text]{width:16rem}.cvsize-saved{color:var(--link-hx);font-size:.85rem}.orifice-view{padding:1rem 1.25rem;overflow:auto}.orifice-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem}.orifice-header h2{margin:0}.orifice-manual{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.orifice-manual h3{margin-top:0}.orifice-manual label{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:var(--ink)}.orifice-manual label span{color:var(--ink-hint);font-size:.85rem}.orifice-manual input{width:8rem}.orifice-out{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:.35rem}.orifice-out small{color:var(--ink-hint)}.orifice-hint{color:var(--warn-border);font-size:.85rem}.orifice-save{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;align-items:center;gap:.75rem}.orifice-save input[type=text]{width:16rem}.orifice-saved{color:var(--link-hx);font-size:.85rem}.relief-view{padding:1rem 1.25rem;overflow:auto}.relief-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem}.relief-header h2{margin:0}.relief-manual{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.relief-manual h3{margin-top:0}.relief-manual label{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:var(--ink)}.relief-manual label span{color:var(--ink-hint);font-size:.85rem}.relief-manual input{width:8rem}.relief-out{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:.35rem}.relief-out small{color:var(--ink-hint)}.relief-save{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;align-items:center;gap:.75rem}.relief-save input[type=text]{width:16rem}.relief-saved{color:var(--link-hx);font-size:.85rem}.hxf-view{padding:1rem 1.25rem;overflow:auto}.hxf-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem}.hxf-header h2{margin:0}.hxf-errors{color:var(--error);font-size:13px;margin:0;padding-left:1.1rem}.hxf-empty{color:var(--ink-hint);padding:8px 0}.hxf-picker{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.hxf-picker>label{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;color:var(--ink)}.hxf-context{margin:.75rem 0;padding:.6rem .75rem;border:1px solid var(--border-soft);border-radius:6px;display:flex;flex-direction:column;gap:.25rem;color:var(--ink);font-size:.9rem}.hxf-manual{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft)}.hxf-manual h3{margin-top:0}.hxf-manual label{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:var(--ink)}.hxf-manual label span{color:var(--ink-hint);font-size:.85rem}.hxf-manual input{width:8rem}.hxf-out{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:.35rem}.hxf-badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.85rem;border:1px solid transparent}.hxf-clean{color:var(--link-hx);background:color-mix(in srgb,var(--link-hx) 14%,transparent);border-color:color-mix(in srgb,var(--link-hx) 35%,transparent)}.hxf-light{color:var(--ink);background:var(--warn-bg);border-color:var(--warn-border)}.hxf-moderate{color:color-mix(in srgb,var(--warn-border) 45%,var(--error) 55%);background:color-mix(in srgb,var(--warn-border) 8%,color-mix(in srgb,var(--error) 8%,transparent));border-color:color-mix(in srgb,var(--warn-border) 18%,color-mix(in srgb,var(--error) 20%,transparent))}.hxf-heavy{color:var(--error);background:color-mix(in srgb,var(--error) 14%,transparent);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.hxf-record{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft)}.hxf-record h3{margin-top:0}.hxf-record label{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:var(--ink)}.hxf-trend{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--border-soft)}.hxf-trend h3{margin-top:0}.hxf-trend-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.2rem;color:var(--ink);font-size:.9rem}.branding-preview{display:flex;align-items:center;gap:.6rem;margin:.3rem 0}.branding-preview img{max-width:8rem;max-height:3rem;object-fit:contain;border:1px solid var(--border-soft);background:var(--surface);padding:.2rem}.schematic .marquee{fill:color-mix(in srgb,var(--link-hx) 12%,transparent);stroke:var(--link-hx);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.batch-panel{display:flex;flex-direction:column;gap:.5rem}.batch-panel h3{margin:0}.batch-actions{display:flex;gap:.5rem;margin-top:.4rem}.batch-status{margin:0}:root{--val-bin-0: #86b6ef;--val-bin-1: #5598e7;--val-bin-2: #2a78d6;--val-bin-3: #1c5cab;--val-bin-4: #0d366b}:root[data-theme=dark],.theme-dark{--val-bin-0: #184f95;--val-bin-1: #256abf;--val-bin-2: #3987e5;--val-bin-3: #6da7ec;--val-bin-4: #b7d3f6}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--val-bin-0: #184f95;--val-bin-1: #256abf;--val-bin-2: #3987e5;--val-bin-3: #6da7ec;--val-bin-4: #b7d3f6}}.link.val-0 polyline,.link.val-0 line{stroke:var(--val-bin-0)}.link.val-1 polyline,.link.val-1 line{stroke:var(--val-bin-1)}.link.val-2 polyline,.link.val-2 line{stroke:var(--val-bin-2)}.link.val-3 polyline,.link.val-3 line{stroke:var(--val-bin-3)}.link.val-4 polyline,.link.val-4 line{stroke:var(--val-bin-4)}.link[class*=val-] polyline,.link[class*=val-] line{stroke-width:3.5}.node.val-0 circle{fill:var(--val-bin-0)}.node.val-1 circle{fill:var(--val-bin-1)}.node.val-2 circle{fill:var(--val-bin-2)}.node.val-3 circle{fill:var(--val-bin-3)}.node.val-4 circle{fill:var(--val-bin-4)}.value-legend{position:absolute;left:.75rem;bottom:.75rem;background:var(--panel-bg);border:1px solid var(--border-soft);border-radius:6px;padding:.4rem .55rem;font-size:.8rem;display:flex;flex-direction:column;gap:.25rem;pointer-events:none;max-width:15rem}.value-legend .legend-title{font-weight:600}.value-legend .legend-scale{display:flex;align-items:center;gap:0}.value-legend .legend-swatch{width:1.6rem;height:.65rem}.value-legend .legend-ends{display:flex;justify-content:space-between;color:var(--ink-hint)}.hover-readout{position:absolute;z-index:5;pointer-events:none;background:var(--panel-bg);border:1px solid var(--border-soft);border-radius:6px;padding:.35rem .5rem;font-size:.8rem;box-shadow:0 2px 8px #0000002e;max-width:18rem}.hover-readout .hover-title{font-weight:600;margin-bottom:.15rem}.hover-readout dl{display:grid;grid-template-columns:auto auto;gap:.05rem .5rem;margin:0}.hover-readout dt{color:var(--ink-hint)}.hover-readout dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.scenario-view{padding:1rem;max-width:60rem}.scenario-add{display:flex;gap:.5rem;margin:.5rem 0 .9rem}.scenario-add input{flex:1;max-width:20rem}.scenario-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.scenario-list li{display:flex;align-items:center;gap:.6rem}.scenario-list input{min-width:12rem}.case-table th:first-child{text-align:left;white-space:nowrap}.case-table td{text-align:right;font-variant-numeric:tabular-nums}.case-table td.case-worst{color:var(--error);font-weight:600}.case-errors{margin-top:.6rem}.select-by-panel{position:absolute;top:.5rem;left:.75rem;z-index:6;background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;padding:.6rem .7rem;font-size:.85rem;display:flex;flex-direction:column;gap:.4rem;min-width:14rem;box-shadow:0 4px 14px #0000002e}.select-by-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.select-by-kinds{border:1px solid var(--border-soft);border-radius:4px;padding:.3rem .5rem;margin:0}.select-by-kinds legend{padding:0 .3rem}.select-by-kinds .field{display:block}.node.drop-target circle{stroke:var(--link-hx);stroke-width:3;stroke-dasharray:3 2}.cvsize-noise--ok{color:var(--ink-hint);background:transparent;border-color:var(--border)}.cvsize-noise--hearing-protection{color:var(--ink);background:var(--warn-bg);border-color:var(--warn-border)}.cvsize-noise--piping-fatigue{color:var(--error);background:color-mix(in srgb,var(--error) 14%,transparent);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.transient-add{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.transient-run{margin-top:.75rem}.transient-chips{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center}.cvsize-manual label.transient-chip{display:inline-flex;align-items:center;gap:.35rem;margin:0}.cvsize-manual label.transient-chip input[type=checkbox]{width:auto;flex:0 0 auto}.transient-warning{border-left:3px solid var(--warn-border);padding-left:.6rem}.transient-ev--flow-reversal{color:var(--ink);background:var(--warn-bg);border-color:var(--warn-border)}.transient-ev--check-valve-shut,.transient-ev--check-valve-open{color:var(--ink-hint);background:transparent;border-color:var(--border)}.transient-ev--check-valve-flutter,.transient-ev--solve-failed{color:var(--error);background:color-mix(in srgb,var(--error) 14%,transparent);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.cvsize-manual label.transient-tier{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.cvsize-manual label.transient-tier input[type=checkbox]{width:auto;flex:0 0 auto}.transient-ev--column-separation{color:var(--error);background:color-mix(in srgb,var(--error) 14%,transparent);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.transient-ev--pressure-peak,.transient-ev--pressure-trough{color:var(--ink);background:var(--warn-bg);border-color:var(--warn-border)}.transient-unphysical{color:var(--error)}@media (max-width: 700px),((pointer: coarse) and (max-width: 1024px)){.app-menu-bar{flex-wrap:wrap;gap:.5rem;padding:.5rem .6rem;align-items:center}.menu-bar-status .project-selector{max-width:9rem}.menu-bar-status{margin-left:auto;flex-wrap:wrap;align-items:center;gap:.35rem}.menu-bar-status .app-version,.menu-bar-status .hint{display:none}main{padding-left:.6rem;padding-right:.6rem}.action-bar button,.toolbar button,.loop-tabs button{white-space:nowrap}.action-bar,.toolbar{overflow-x:auto}main table{display:block;width:100%;overflow-x:auto}.tools-drawer{width:100vw;max-width:100vw}.dock-host{display:flex;flex-direction:column}.dock-canvas{flex:1 1 auto;min-height:320px}.dock-pane{width:100%;max-height:45vh}.dock-splitter,.dock-collapse{display:none}.tool-palette,.tool-strip{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.tool-sep{width:0;border-top:none;border-left:1px solid var(--border);height:70%;margin:auto 4px}.canvas-wrap{flex:1 1 auto;min-width:0;width:100%}.element-panel{min-width:0;width:100%}svg{max-width:100%;height:auto}}@media (pointer: coarse){:root{--ctl-h: 44px;--ctl-h-sm: 38px}button,select,input[type=checkbox]{min-height:var(--ctl-h-touch)}.tool-tile{min-height:var(--ctl-h)}.dock-splitter-left,.dock-splitter-right{width:var(--ctl-h-touch)}.dock-splitter-bottom,table.grid th{height:var(--ctl-h-touch)}.doc-tab-close{width:var(--ctl-h-touch);height:var(--ctl-h-touch)}}.version-history-panel{position:absolute;right:0;top:0;width:24rem;max-height:100%;overflow:auto;background:var(--panel-bg, #1c1f26);border-left:1px solid var(--border, #333);z-index:5;padding:.5rem}.version-history-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.version-history-error{color:var(--danger);margin:.25rem 0}.version-list{list-style:none;padding:0;margin:0}.version-row{border-top:1px solid var(--border, #333);padding:.4rem 0}.version-row-head{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.version-num{font-weight:600}.version-current,.version-deleted{font-size:.7rem;text-transform:uppercase;border:1px solid var(--border, #333);border-radius:3px;padding:0 .25rem}.version-deleted{color:var(--danger)}.version-when{opacity:.7}.version-row-actions{display:flex;gap:.4rem;margin-top:.25rem}.version-row-body{margin:.35rem 0 0 .5rem}.version-diff-summary{font-weight:600;margin:.25rem 0}@media (max-width: 40rem){.version-history-panel{left:0;width:auto;max-height:60%;border-left:none;border-bottom:1px solid var(--border, #333)}.version-row-actions{flex-wrap:wrap}}.conflict-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0009}.conflict-modal{position:relative;max-width:34rem;width:90%;max-height:80vh;overflow:auto;background:var(--panel-bg, #1c1f26);border:1px solid var(--border, #333);border-radius:6px;padding:1rem}.conflict-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.conflict-summary,.conflict-summary-deleted{font-weight:600;margin:.25rem 0}.conflict-cosmetic{margin:.25rem 0}.conflict-changes{margin:.5rem 0}.diff-change-list,.diff-field-list{margin:.25rem 0 0 1rem;padding:0}.diff-change-kind{display:inline-block;min-width:5rem;opacity:.7;text-transform:uppercase;font-size:.75rem}.diff-field{opacity:.8}.conflict-actions{display:flex;gap:.5rem;margin:.75rem 0 .25rem}.conflict-error{color:var(--danger);margin:.25rem 0}
