@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(./JetBrainsMono-cyrillic-Buze_B52.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(./JetBrainsMono-latin-6fWv1k7M.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(./Manrope-cyrillic-Dvxsihut.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(./Manrope-latin-DHIcAJRg.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--n-0:#fff;--n-50:#f6f7f8;--n-100:#edeff1;--n-200:#dee1e5;--n-300:#c6cbd2;--n-400:#9aa1ab;--n-500:#6e7681;--n-600:#4f5661;--n-700:#363c45;--n-800:#23272e;--n-850:#1b1e23;--n-900:#15171b;--n-950:#0e1013;--copper-50:#fbf2eb;--copper-100:#f6e0d0;--copper-200:#edc0a1;--copper-300:#e39c70;--copper-400:#d67d47;--copper-500:#c4622b;--copper-600:#a84e1f;--copper-700:#8a3f19;--copper-800:#5f2c13;--copper-900:#3a1b0d;--green-600:#1f7a5a;--green-100:#e2f2ea;--green-300:#5ccb9c;--green-900:#10291f;--amber-600:#8a5a00;--amber-100:#fbf0d5;--amber-300:#f0be5a;--amber-900:#2e230c;--red-600:#b42318;--red-100:#fce8e6;--red-300:#ff8a7a;--red-900:#3a1512;--blue-600:#2f5f8f;--blue-100:#e4ecf5;--blue-300:#8db8e6;--blue-900:#152233;--circuit-1:#d9622b;--circuit-2:#2f7fc1;--circuit-3:#2e9e6e;--circuit-4:#8e5bd0;--circuit-5:#c9a227;--circuit-6:#d2457a;--circuit-7:#1fa3a8;--circuit-8:#6b8e23;--circuit-9:#4f63d2;--circuit-10:#b5651d;--circuit-11:#a34fa3;--circuit-12:#5e8fa8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-app:var(--n-100);--surface-1:var(--n-0);--surface-2:var(--n-50);--surface-3:var(--n-100);--surface-inverse:var(--n-900);--line-1:var(--n-200);--line-2:var(--n-300);--text-1:var(--n-900);--text-2:var(--n-600);--text-3:#646c77;--text-inverse:var(--n-0);--accent:var(--copper-600);--accent-hover:var(--copper-700);--accent-fg:#fff;--accent-soft:var(--copper-50);--accent-line:var(--copper-200);--accent-ink:var(--copper-700);--focus-ring:color-mix(in oklab, var(--copper-500) 45%, transparent);--ok:var(--green-600);--ok-bg:var(--green-100);--warn:var(--amber-600);--warn-bg:var(--amber-100);--bad:var(--red-600);--bad-bg:var(--red-100);--info:var(--blue-600);--info-bg:var(--blue-100);--canvas:#fbfbfa;--canvas-grid:#1e283712;--room-heated:#f6ece2;--room-leads-only:#e6edf4;--room-unheated:#e9eaec;--room-stroke:var(--n-300);--wall:#3a3f47;--opening:var(--canvas);--window:#8db8e6;--obstacle:#cdd1d7;--manifold:var(--copper-600);--scrim:#0e10135c;--canvas-plan:var(--canvas);--canvas-pipes:#fcf5ec;--mode-plan:var(--blue-600);--mode-plan-fg:#fff;--mode-plan-soft:var(--blue-100);--mode-pipes:var(--copper-600);--mode-pipes-fg:#fff;--mode-pipes-soft:var(--copper-50);--mode-documents:var(--n-600);--mode-documents-fg:#fff}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:var(--n-950);--surface-1:var(--n-900);--surface-2:var(--n-850);--surface-3:var(--n-800);--surface-inverse:var(--n-50);--line-1:#2b3037;--line-2:#3a4049;--text-1:#eceef1;--text-2:#a6adb7;--text-3:#8a929c;--text-inverse:var(--n-900);--accent:var(--copper-400);--accent-hover:var(--copper-300);--accent-fg:#1e0f06;--accent-soft:#2a1a10;--accent-line:#5f2c13;--accent-ink:var(--copper-300);--ok:var(--green-300);--ok-bg:var(--green-900);--warn:var(--amber-300);--warn-bg:var(--amber-900);--bad:var(--red-300);--bad-bg:var(--red-900);--info:var(--blue-300);--info-bg:var(--blue-900);--canvas:#15181c;--canvas-grid:#dce6f50f;--room-heated:#2a211a;--room-leads-only:#18222d;--room-unheated:#1f2227;--room-stroke:#3a4049;--wall:#a7aeb8;--opening:var(--canvas);--window:#4d7ca8;--obstacle:#3a3f47;--manifold:var(--copper-400);--scrim:#0000008c;--canvas-plan:var(--canvas);--canvas-pipes:#1d1813;--mode-plan:var(--blue-300);--mode-plan-fg:#0f1a26;--mode-plan-soft:var(--blue-900);--mode-pipes:var(--copper-400);--mode-pipes-fg:#1e0f06;--mode-pipes-soft:#2a1a10;--mode-documents:var(--n-300);--mode-documents-fg:var(--n-900)}:root{--font-sans:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-17:17px;--fs-20:20px;--fs-24:24px;--fs-32:32px;--fs-44:44px;--fs-60:60px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-heavy:800;--lh-tight:1.1;--lh-snug:1.3;--lh-body:1.5;--tracking-display:-.025em;--tracking-tight:-.01em;--tracking-caps:.06em;--type-display:var(--fw-heavy) var(--fs-44)/var(--lh-tight) var(--font-sans);--type-h1:var(--fw-bold) var(--fs-32)/var(--lh-tight) var(--font-sans);--type-h2:var(--fw-bold) var(--fs-24)/var(--lh-snug) var(--font-sans);--type-h3:var(--fw-semibold) var(--fs-17)/var(--lh-snug) var(--font-sans);--type-body:var(--fw-regular) var(--fs-15)/var(--lh-body) var(--font-sans);--type-body-sm:var(--fw-regular) var(--fs-13)/var(--lh-body) var(--font-sans);--type-label:var(--fw-semibold) var(--fs-13)/var(--lh-snug) var(--font-sans);--type-caps:var(--fw-bold) var(--fs-11)/var(--lh-snug) var(--font-sans);--type-num:var(--fw-medium) var(--fs-14)/var(--lh-snug) var(--font-mono);--type-num-lg:var(--fw-medium) var(--fs-24)/var(--lh-tight) var(--font-mono);--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:56px;--space-11:72px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--touch:44px;--control-sm:32px;--control-md:40px;--control-lg:52px;--header-h:56px;--rail-w:64px;--panel-w:380px;--border-w:1px;--shadow-1:0 1px 2px #1013180f, 0 0 0 1px #1013180a;--shadow-2:0 6px 16px -4px #1013181a, 0 1px 3px #1013180f;--shadow-3:0 24px 48px -12px #10131838, 0 2px 6px #10131814;--shadow-inset:inset 0 1px 0 #ffffff80;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-inout:cubic-bezier(.6, 0, .3, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--z-header:20;--z-panel:30;--z-popover:40;--z-modal:50;--z-toast:60}[data-theme=dark]{--shadow-1:0 1px 2px #0006, 0 0 0 1px #ffffff0a;--shadow-2:0 8px 20px -6px #0009, 0 0 0 1px #ffffff0d;--shadow-3:0 28px 56px -12px #000000b3, 0 0 0 1px #ffffff0f;--shadow-inset:inset 0 1px 0 #ffffff0d}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-app);color:var(--text-1);font:var(--type-body);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;overflow-wrap:break-word;margin:0}h1,h2,h3,h4{text-wrap:balance;margin:0}h1{font:var(--type-h1);letter-spacing:var(--tracking-display)}h2{font:var(--type-h2);letter-spacing:var(--tracking-tight)}h3{font:var(--type-h3)}p{text-wrap:pretty;margin:0}a{color:var(--accent-ink);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--copper-200);color:var(--n-900)}.pf-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.pf-caps{font:var(--type-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3)}.pf-muted{color:var(--text-2)}.pf-grid-bg{background-color:var(--canvas);background-image:radial-gradient(var(--canvas-grid) 1px, transparent 1.2px);background-size:16px 16px}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}.pf-btn{min-height:var(--control-md);border:1px solid var(--line-2);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-1);font:var(--type-label);white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;display:inline-flex}.pf-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-3)}.pf-btn:active:not(:disabled){transform:scale(.98)}.pf-btn:disabled{opacity:.45;cursor:not-allowed}.pf-btn--sm{min-height:var(--control-sm);border-radius:var(--radius-sm);padding:0 12px;font-size:13px}.pf-btn--lg{min-height:var(--control-lg);border-radius:var(--radius-lg);padding:0 22px;font-size:16px}.pf-btn--block{width:100%}.pf-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-inset), 0 1px 2px #78320f40}.pf-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.pf-btn--secondary{background:var(--surface-1)}.pf-btn--ghost{color:var(--text-2);background:0 0;border-color:#0000}.pf-btn--ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text-1);border-color:#0000}.pf-btn--danger{background:var(--surface-1);border-color:var(--bad);color:var(--bad)}.pf-btn--danger:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad)}.pf-btn[data-loading=true]{pointer-events:none}.pf-btn .pf-spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite pf-spin}@keyframes pf-spin{to{transform:rotate(360deg)}}.pf-iconbtn{width:var(--touch);height:var(--touch);border-radius:var(--radius-md);color:var(--text-2);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.pf-iconbtn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}.pf-iconbtn:active:not(:disabled){transform:scale(.94)}.pf-iconbtn--outline{border-color:var(--line-2);background:var(--surface-1)}.pf-iconbtn--sm{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-sm)}.pf-iconbtn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.pf-iconbtn:disabled{opacity:.4;cursor:not-allowed}.pf-icon{flex:none;line-height:0;display:inline-flex}.pf-icon svg{stroke-width:2px;width:100%;height:100%;display:block}.pf-kbd{border:1px solid var(--line-2);background:var(--surface-2);min-width:20px;height:20px;color:var(--text-2);font:500 11px/1 var(--font-mono);border-bottom-width:2px;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.pf-badge{border-radius:var(--radius-pill);height:24px;font:var(--fw-semibold) 12px/1 var(--font-sans);background:var(--surface-3);color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.pf-badge--dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pf-badge--ok{background:var(--ok-bg);color:var(--ok)}.pf-badge--warn{background:var(--warn-bg);color:var(--warn)}.pf-badge--bad{background:var(--bad-bg);color:var(--bad)}.pf-badge--info{background:var(--info-bg);color:var(--info)}.pf-badge--accent{background:var(--accent-soft);color:var(--accent-ink)}.pf-circuit{background:var(--c);color:#fff;width:26px;height:26px;font:700 12px/1 var(--font-mono);box-shadow:0 0 0 2px var(--surface-1);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.pf-circuit--sm{width:20px;height:20px;font-size:10px}.pf-circuit--lg{width:34px;height:34px;font-size:14px}.pf-field{flex-direction:column;gap:6px;min-width:0;display:flex}.pf-field__label{font:var(--type-label);color:var(--text-2)}.pf-field__hint{font:var(--type-body-sm);color:var(--text-3)}.pf-field__error{font:var(--type-body-sm);color:var(--bad)}.pf-input{min-height:var(--control-md);border:1px solid var(--line-2);border-radius:var(--radius-md);background:var(--surface-1);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);align-items:center;gap:8px;padding:0 12px;display:flex}.pf-input:hover{border-color:var(--text-3)}.pf-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.pf-input[data-invalid=true]{border-color:var(--bad)}.pf-input input,.pf-input select{min-width:0;height:100%;min-height:calc(var(--control-md) - 2px);background:0 0;border:0;outline:0;flex:auto;padding:0}.pf-input--num input{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.pf-input__unit{color:var(--text-3);font:500 13px/1 var(--font-mono)}.pf-input__step{width:28px;height:28px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;margin:0 -6px;display:inline-flex}.pf-input__step:hover{background:var(--surface-3);color:var(--text-1)}.pf-select{appearance:none;cursor:pointer}.pf-seg{border-radius:var(--radius-md);background:var(--surface-3);gap:2px;min-width:0;padding:3px;display:inline-flex}.pf-seg--block{display:flex}.pf-seg--block button{white-space:normal;min-width:0;padding:4px 8px;line-height:1.2}.pf-seg button{min-height:34px;color:var(--text-2);font:var(--type-label);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast), color var(--dur-fast), box-shadow var(--dur-fast);background:0 0;border:0;border-radius:7px;flex:1 1 0;padding:0 12px}.pf-seg button:hover{color:var(--text-1)}.pf-seg button[aria-checked=true]{background:var(--surface-1);color:var(--text-1);box-shadow:var(--shadow-1)}.pf-check{min-height:var(--touch);cursor:pointer;font:var(--type-body);align-items:center;gap:10px;display:inline-flex}.pf-check input{appearance:none;border:1.5px solid var(--line-2);background:var(--surface-1);cursor:pointer;width:20px;height:20px;transition:background var(--dur-fast), border-color var(--dur-fast);border-radius:6px;flex:none;place-content:center;margin:0;display:grid}.pf-check input:checked{background:var(--accent);border-color:var(--accent)}.pf-check input:checked:after{content:"";border:2px solid var(--accent-fg);border-top:0;border-right:0;width:10px;height:6px;transform:translateY(-1px)rotate(-45deg)}.pf-check input:disabled{opacity:.5}.pf-switch{min-height:var(--touch);cursor:pointer;align-items:center;gap:10px;display:inline-flex}.pf-switch input{appearance:none;background:var(--line-2);cursor:pointer;width:36px;height:22px;transition:background var(--dur-base) var(--ease-out);border-radius:11px;flex:none;margin:0;position:relative}.pf-switch input:after{content:"";width:16px;height:16px;transition:transform var(--dur-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.pf-switch input:checked{background:var(--accent)}.pf-switch input:checked:after{transform:translate(14px)}.pf-chip{border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--surface-1);min-height:34px;color:var(--text-2);font:var(--fw-medium) 13px/1 var(--font-sans);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--dur-fast);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.pf-chip:hover{border-color:var(--text-3);color:var(--text-1)}.pf-chip[aria-pressed=true]{background:var(--text-1);border-color:var(--text-1);color:var(--surface-1)}.pf-chip__swatch{background:var(--c,var(--text-3));border-radius:3px;width:10px;height:10px}.pf-card{border:1px solid var(--line-1);border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:var(--shadow-1)}.pf-card--pad{padding:var(--space-6)}.pf-card--interactive{cursor:pointer;transition:box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base), transform var(--dur-base) var(--ease-out)}.pf-card--interactive:hover{box-shadow:var(--shadow-2);border-color:var(--line-2)}.pf-card--flat{box-shadow:none;background:var(--surface-2)}.pf-disc{border-top:1px solid var(--line-1)}.pf-disc>summary{min-height:var(--touch);font:var(--type-label);color:var(--text-1);cursor:pointer;align-items:center;gap:10px;padding:0 2px;font-size:14px;list-style:none;display:flex}.pf-disc>summary::-webkit-details-marker{display:none}.pf-disc>summary .pf-disc__meta{color:var(--text-3);margin-left:auto;font-weight:500}.pf-disc>summary .pf-disc__chev{transition:transform var(--dur-base) var(--ease-out);color:var(--text-3)}.pf-disc[open]>summary .pf-disc__chev{transform:rotate(90deg)}.pf-disc__body{flex-direction:column;gap:14px;padding:4px 2px 16px;display:flex}.pf-callout{border-radius:var(--radius-md);background:var(--surface-3);color:var(--text-1);font:var(--type-body-sm);align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;display:flex}.pf-callout__icon{color:var(--text-2);margin-top:1px}.pf-callout__title{font-weight:700}.pf-callout--ok{background:var(--ok-bg)}.pf-callout--ok .pf-callout__icon{color:var(--ok)}.pf-callout--warn{background:var(--warn-bg)}.pf-callout--warn .pf-callout__icon{color:var(--warn)}.pf-callout--bad{background:var(--bad-bg)}.pf-callout--bad .pf-callout__icon{color:var(--bad)}.pf-callout--info{background:var(--info-bg)}.pf-callout--info .pf-callout__icon{color:var(--info)}.pf-toast{border-radius:var(--radius-lg);background:var(--surface-inverse);min-height:48px;color:var(--text-inverse);box-shadow:var(--shadow-3);font:var(--type-body-sm);animation:pf-toast-in var(--dur-slow) var(--ease-out);align-items:center;gap:12px;padding:6px 6px 6px 16px;font-size:14px;display:inline-flex}.pf-toast__action{border-radius:var(--radius-md);min-height:36px;color:var(--copper-300);font:var(--type-label);cursor:pointer;background:0 0;border:0;padding:0 12px}.pf-toast__action:hover{background:#ffffff14}[data-theme=dark] .pf-toast__action{color:var(--copper-600)}.pf-toast--bad .pf-toast__icon{color:var(--red-300)}.pf-toast--ok .pf-toast__icon{color:var(--green-300)}@keyframes pf-toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.pf-stat{flex-direction:column;gap:2px;min-width:0;display:flex}.pf-stat__value{font:var(--type-num-lg);letter-spacing:-.02em;color:var(--text-1);font-variant-numeric:tabular-nums}.pf-stat__unit{color:var(--text-3);margin-left:3px;font-size:14px}.pf-stat__label{font:var(--type-body-sm);color:var(--text-2)}.pf-stat--warn .pf-stat__value{color:var(--warn)}.pf-stat--bad .pf-stat__value{color:var(--bad)}.pf-header{z-index:var(--z-header);height:var(--header-h);background:color-mix(in oklab, var(--surface-1) 88%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border-bottom:1px solid var(--line-1);align-items:center;gap:12px;padding:0 12px 0 16px;display:flex;position:sticky;top:0}.pf-wordmark{font:var(--fw-heavy) 18px/1 var(--font-sans);letter-spacing:-.03em;color:var(--text-1);white-space:nowrap;align-items:baseline;text-decoration:none;display:inline-flex}.pf-wordmark b{color:var(--accent);font-weight:inherit}.pf-header__project{min-width:0;color:var(--text-2);font:var(--fw-medium) 14px/1 var(--font-sans);align-items:center;gap:8px;display:flex}.pf-header__project span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pf-header__sep{color:var(--line-2)}.pf-header__center{flex:auto;justify-content:center;min-width:0;display:flex}.pf-header__tools{align-items:center;gap:4px;display:flex}.pf-cmdk-trigger{border:1px solid var(--line-1);border-radius:var(--radius-md);background:var(--surface-2);height:34px;color:var(--text-3);font:var(--fw-medium) 13px/1 var(--font-sans);cursor:pointer;align-items:center;gap:10px;padding:0 6px 0 12px;display:inline-flex}.pf-cmdk-trigger:hover{border-color:var(--line-2);color:var(--text-2)}.pf-steps{border-radius:var(--radius-pill);background:var(--surface-3);align-items:center;gap:2px;padding:3px;display:inline-flex}.pf-step{border-radius:var(--radius-pill);height:34px;color:var(--text-2);font:var(--type-label);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast), color var(--dur-fast);background:0 0;border:0;align-items:center;gap:8px;padding:0 14px 0 6px;display:inline-flex}.pf-step:hover{color:var(--text-1)}.pf-step__n{background:var(--surface-1);width:22px;height:22px;color:var(--text-2);font:700 11px/1 var(--font-mono);border-radius:50%;place-items:center;display:grid}.pf-step[aria-current=step]{background:var(--surface-1);color:var(--text-1);box-shadow:var(--shadow-1)}.pf-step[aria-current=step] .pf-step__n{background:var(--accent);color:var(--accent-fg)}.pf-step[data-done=true] .pf-step__n{background:var(--ok-bg);color:var(--ok)}.pf-step:disabled{opacity:.45;cursor:not-allowed}.pf-cmdk-scrim{z-index:var(--z-modal);background:var(--scrim);animation:pf-fade var(--dur-base) var(--ease-out);justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.pf-cmdk{border-radius:var(--radius-xl);background:var(--surface-1);width:min(560px,100vw - 32px);box-shadow:var(--shadow-3);animation:pf-pop var(--dur-base) var(--ease-out);overflow:hidden}.pf-cmdk__input{border-bottom:1px solid var(--line-1);height:56px;color:var(--text-3);align-items:center;gap:10px;padding:0 18px;display:flex}.pf-cmdk__input input{font:var(--fw-medium) 16px/1 var(--font-sans);color:var(--text-1);background:0 0;border:0;outline:0;flex:1}.pf-cmdk__list{max-height:340px;padding:6px;overflow:auto}.pf-cmdk__group{padding:10px 12px 4px}.pf-cmdk__item{border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-1);font:var(--fw-medium) 14px/1 var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;display:flex}.pf-cmdk__item .pf-icon{color:var(--text-3)}.pf-cmdk__item[data-active=true]{background:var(--surface-3)}.pf-cmdk__item .pf-cmdk__keys{gap:3px;margin-left:auto;display:flex}.pf-cmdk__empty{text-align:center;color:var(--text-3);font:var(--type-body-sm);padding:24px}@keyframes pf-fade{0%{opacity:0}}@keyframes pf-pop{0%{opacity:0;transform:translateY(-6px)scale(.985)}}.pf-tip{display:inline-flex;position:relative}.pf-tip__bubble{border-radius:var(--radius-sm);background:var(--surface-inverse);color:var(--text-inverse);font:var(--fw-medium) 12px/1.2 var(--font-sans);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast), transform var(--dur-fast) var(--ease-out);z-index:var(--z-popover);align-items:center;gap:8px;padding:6px 8px 6px 10px;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(2px)}.pf-tip__bubble .pf-kbd{color:inherit;opacity:.8;background:0 0;border-color:#ffffff40}.pf-tip:hover .pf-tip__bubble,.pf-tip:focus-within .pf-tip__bubble{opacity:1;transition-delay:.3s;transform:translate(-50%)translateY(0)}.pf-dialog-scrim{z-index:var(--z-modal);background:var(--scrim);animation:pf-fade var(--dur-base) var(--ease-out);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.pf-dialog{border-radius:var(--radius-xl);background:var(--surface-1);width:min(440px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-3);animation:pf-pop var(--dur-base) var(--ease-out);flex-direction:column;gap:12px;padding:24px;display:flex;overflow-y:auto}.pf-dialog__title{font:var(--type-h2);font-size:20px}.pf-dialog__body{color:var(--text-2)}.pf-dialog__actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.pf-logo{color:var(--text-1);align-items:center;text-decoration:none;display:inline-flex}.pf-sheet{z-index:var(--z-panel);background:var(--surface-1);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -8px 30px -8px #1013182e, 0 -1px 0 var(--line-1);transition:height var(--dur-slow) var(--ease-out);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.pf-sheet__handle{cursor:pointer;background:0 0;border:0;flex:none;place-items:center;height:22px;display:grid}.pf-sheet__handle i{background:var(--line-2);border-radius:3px;width:36px;height:5px}.pf-sheet__body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:0 16px 12px;display:flex;overflow:auto}.pf-sheet__footer{border-top:1px solid var(--line-1);flex:none;gap:8px;padding:10px 16px 12px;display:flex}.pf-tabbar{background:color-mix(in oklab, var(--surface-1) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line-1);flex:none;padding:6px 8px 4px;display:flex}.pf-tab{min-height:50px;color:var(--text-3);font:600 11px/1 var(--font-sans);cursor:pointer;transition:color var(--dur-fast);background:0 0;border:0;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:4px 0;display:flex}.pf-tab__icon{border-radius:var(--radius-pill);width:52px;height:30px;transition:background var(--dur-base) var(--ease-out);place-items:center;display:grid;position:relative}.pf-tab[aria-current=page]{color:var(--text-1)}.pf-tab[aria-current=page] .pf-tab__icon{background:var(--accent-soft);color:var(--accent-ink)}.pf-tab:disabled{opacity:.4}.pf-tab__dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface-1);border-radius:50%;position:absolute;top:3px;right:12px}html,body,#root{height:100%}html,body{overflow:hidden}h4{font:var(--type-label);color:var(--text-2)}textarea{font:var(--type-num)}.app{flex-direction:column;height:100dvh;display:flex}.app>.pf-header{flex:none}.app-main{flex:auto;min-height:0;position:relative}.app--mobile .pf-tabbar{padding-bottom:max(4px, env(safe-area-inset-bottom))}.toast-host{z-index:var(--z-toast);max-width:calc(100vw - 24px);position:fixed;bottom:112px;left:50%;transform:translate(-50%)}.app--mobile .toast-host{bottom:calc(76px + env(safe-area-inset-bottom))}.empty{text-align:center;height:100%;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.pf-header__center{overflow:visible}.work{grid-template-rows:minmax(0,1fr);height:100%;min-height:0;display:grid}.work__canvas{min-width:0;min-height:0;position:relative;overflow:hidden}.pf-panel{border-left:1px solid var(--line-1);background:var(--surface-1);flex-direction:column;min-height:0;display:flex}.pf-panel__body{flex-direction:column;flex:auto;gap:20px;min-height:0;padding:20px;display:flex;overflow:auto}.pf-panel__footer{border-top:1px solid var(--line-1);flex-direction:column;flex:none;gap:8px;padding:16px;display:flex}.footer-row{gap:8px;display:flex}.footer-row>.grow{flex:auto}.work--mobile{flex-direction:column;display:flex}.work__stage{flex:auto;min-height:0;position:relative}.work--mobile .work__canvas{position:absolute;inset:0}.pf-sheet__footer{flex-direction:column}.pf-sheet__footer .footer-row{width:100%}.m-topbar{padding:max(8px, env(safe-area-inset-top)) 12px 8px;background:var(--surface-1);border-bottom:1px solid var(--line-1);flex:none;align-items:center;gap:8px;display:flex}.m-topbar__title{flex:1;min-width:0}.m-topbar__title>div:first-child{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.m-topbar__title .pf-muted{font-size:12px}.float{z-index:2;border-radius:var(--radius-lg);background:var(--surface-1);box-shadow:var(--shadow-2);gap:4px;padding:4px;display:flex;position:absolute}.float--strip{scrollbar-width:none;top:8px;left:8px;right:8px;overflow-x:auto}.float--strip .pf-iconbtn{flex:none}.app--mobile .float--strip{padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000)}.rail{flex-direction:column;gap:2px;width:184px;max-height:calc(100% - 96px);top:12px;left:12px;overflow-y:auto}.rail__item{display:contents}.rail__mode{color:var(--mode,var(--accent));font:var(--type-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;align-items:center;gap:8px;padding:4px 10px 6px;display:flex}.rail__mode:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.rail__sep{background:var(--line-1);height:1px;margin:4px 8px}.rail__btn{border-radius:var(--radius);width:100%;min-height:36px;color:var(--text-1);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0 8px 0 10px;font-size:14px;display:flex}.rail__btn:hover{background:var(--surface-2)}.rail__btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.rail__btn .pf-icon{color:var(--text-2)}.rail__label{flex:auto}.rail__btn .pf-kbd{opacity:.75}.rail__btn[aria-pressed=true]{background:var(--mode,var(--accent));color:var(--mode-fg,var(--accent-fg));font-weight:600}.rail__btn[aria-pressed=true] .pf-icon{color:var(--mode-fg,var(--accent-fg))}.rail__btn[aria-pressed=true] .pf-kbd{opacity:1;color:var(--mode-fg,var(--accent-fg));background:0 0;border-color:currentColor}.tool-plate{flex-wrap:wrap;align-items:center;gap:6px 12px;width:max-content;max-width:calc(100% - 240px);padding:6px 12px;font-size:13px;bottom:16px;left:50%;transform:translate(-50%)}.tool-plate__name{border-radius:var(--radius-pill);background:var(--mode,var(--accent));color:var(--mode-fg,var(--accent-fg));white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-weight:600;display:inline-flex}.canvas-note{border:1px solid var(--warn);background:var(--warn-bg);color:var(--text-1);font:inherit;white-space:nowrap;cursor:pointer;align-items:center;padding:6px 14px;font-size:13px;font-weight:600;top:14px;left:50%;transform:translate(-50%)}.app--mobile .canvas-note{top:116px}.tool-plate__hint{color:var(--text-2);flex:260px;min-width:0;line-height:1.35}.tool-plate__actions{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.app--mobile .tool-plate{width:auto;max-width:none;inset:64px 8px auto;transform:none}.pf-header__slot{flex:auto;min-width:0;display:flex}.plan-bar{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.plan-bar__history,.plan-bar__right{align-items:center;gap:4px;margin-left:auto;display:flex}.plan-bar [aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.check-pill{border:1px solid var(--line-1);border-radius:var(--radius-pill);background:var(--surface-1);height:32px;color:var(--text-1);font:inherit;white-space:nowrap;cursor:pointer;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.check-pill__dot{background:var(--text-3);border-radius:50%;width:9px;height:9px}.check-pill--ok{border-color:var(--ok);background:var(--ok-bg)}.check-pill--ok .check-pill__dot{background:var(--ok)}.check-pill--bad{border-color:var(--bad);background:var(--bad-bg)}.check-pill--bad .check-pill__dot{background:var(--bad)}.check-pill--idle{color:var(--text-2)}.check-pill--warn{border-color:var(--warn);background:var(--warn-bg)}.check-pill--warn .check-pill__dot{background:var(--warn)}.problem-group{gap:4px;display:grid}.problem{border:1px solid var(--line-1);border-radius:var(--radius-md);background:var(--surface-1);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2px 10px;padding:8px 10px;display:grid}.problem:hover{background:var(--surface-2)}.problem__icon{background:var(--warn-bg);width:24px;height:24px;color:var(--warn);border-radius:6px;grid-row:span 2;place-items:center;display:grid}.problem--error .problem__icon{background:var(--bad-bg);color:var(--bad)}.problem__title{font-size:13.5px;font-weight:600;line-height:1.35}.problem__detail{color:var(--text-2);font-size:12.5px;line-height:1.35}.link-btn{color:var(--accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;padding:2px 0;font-size:13px;font-weight:600}.ctable{border-collapse:collapse;width:100%;font-size:13px}.ctable th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);text-align:left;padding:4px 6px;font-size:11px;font-weight:600}.ctable td{border-top:1px solid var(--line-1);padding:5px 6px}.ctable tbody tr{cursor:pointer}.ctable tbody tr:hover{background:var(--surface-2)}.ctable tbody tr[aria-selected=true]{background:var(--accent-soft)}.ctable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ctable .rooms{text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:0;overflow:hidden}.ctable .over{color:var(--bad);font-weight:600}.view-check{width:18px;display:inline-flex}.keys{gap:8px;min-width:0;display:grid}.keys__list{gap:4px;margin:0 0 8px;display:grid}.keys__list>div{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:12px;display:grid}.keys__list dt{flex-wrap:wrap;gap:3px;display:flex}.keys__list dd{color:var(--text-2);margin:0;font-size:13px}.pf-tip--right .pf-tip__bubble{top:50%;bottom:auto;left:calc(100% + 8px);transform:translateY(-50%)}.pf-tip--right:hover .pf-tip__bubble,.pf-tip--right:focus-within .pf-tip__bubble{transform:translateY(-50%)}.pf-menu{display:inline-flex;position:relative}.pf-menu__list,.popover{z-index:var(--z-popover);border-radius:var(--radius-lg);background:var(--surface-1);min-width:220px;box-shadow:var(--shadow-3);animation:pf-pop var(--dur-base) var(--ease-out);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.pf-menu__danger,.pf-menu__danger .pf-icon{color:var(--bad)!important}.pf-cmdk__item:disabled{opacity:.45;cursor:not-allowed}.popover{flex-wrap:wrap;gap:6px;width:min(360px,100vw - 32px);display:flex;left:0;right:auto}.stack{flex-direction:column;gap:18px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.stats{flex-wrap:wrap;gap:28px;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.section-head .pf-muted{font-size:12px}.row-btn{border-radius:var(--radius-md);width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast);background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 10px;display:grid}.row-btn:hover{background:var(--surface-2)}.row-btn[aria-selected=true]{background:var(--accent-soft)}.row-btn__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.row-btn__name small{color:var(--text-2);margin-left:8px;font-size:13px;font-weight:400}.swatch{border:1px solid var(--line-2);border-radius:4px;width:14px;height:14px}.swatch--heated{background:var(--room-heated)}.swatch--leadsOnly{background:var(--room-leads-only)}.swatch--unheated{background:var(--room-unheated)}.inspector-head{align-items:center;gap:8px;display:flex}.inspector-head .pf-num{margin-left:auto}.danger-zone{border-top:1px solid var(--line-1);padding-top:12px}.ghost-danger{color:var(--bad)!important}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips-scroll{scrollbar-width:none;flex:none;gap:6px;display:flex;overflow-x:auto}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pf-bad{color:var(--bad)}.pf-warn{color:var(--warn)}.grid-2{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px 12px;display:grid}.small{font-size:13px}.facts{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:2px 12px;margin:4px 0 0;display:grid}.facts div{justify-content:space-between;gap:8px;display:flex}.facts dt{color:var(--text-3)}.facts dd{font-family:var(--font-mono);margin:0}.pf-range{width:100%;min-height:var(--touch);accent-color:var(--accent)}.list-plain{font:var(--type-body-sm);color:var(--text-2);flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.settings-screen{flex-direction:column;height:100%;min-height:0;display:flex}.settings__inner{flex-direction:column;flex:auto;gap:20px;width:100%;max-width:760px;min-height:0;margin:0 auto;padding:40px 24px 32px;display:flex;overflow:auto}.settings__head h1{margin:0 0 6px}.settings-fold{flex-direction:column;gap:16px;display:flex}.settings-group h2{margin:0 0 14px;font-size:17px}.settings-group__body{flex-direction:column;gap:14px;display:flex}.settings-row{flex-direction:column;gap:4px;min-width:0;display:flex}.settings-reset{font:inherit;color:var(--accent-ink);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.settings-reset:hover{color:var(--text-1)}.settings__foot{border-top:1px solid var(--line-1);background:var(--surface-1);flex:none}.settings__foot-inner{justify-content:flex-end;max-width:760px;margin:0 auto;padding:12px 24px;display:flex}@media (max-width:640px){.settings__inner{padding:20px 16px 24px}.settings__foot-inner{padding:10px 16px}}.projects{height:100%;overflow:auto}.projects__inner{flex-direction:column;gap:40px;max-width:960px;margin:0 auto;padding:56px 24px 48px;display:flex}.projects__hero{flex-direction:column;gap:10px;display:flex}.projects__hero h1{letter-spacing:-.03em;font-size:44px;font-weight:800}.projects__hero p{max-width:560px;font-size:17px}.start-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.start-card{text-align:left;min-height:148px;font:inherit;color:inherit;align-items:flex-start;gap:16px;padding:24px;display:flex}.start-card__icon{background:var(--surface-3);width:48px;height:48px;color:var(--text-1);border-radius:14px;flex:none;place-items:center;display:grid}.start-card--primary .start-card__icon{background:var(--accent);color:var(--accent-fg)}.start-card__body{flex-direction:column;gap:6px;display:flex}.start-card__body p{font-size:14px}.start-card__go{font:var(--type-label);color:var(--text-2);align-items:center;gap:6px;margin-top:6px;display:inline-flex}.start-card--primary .start-card__go{color:var(--accent-ink)}.demo-cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.demo-card{text-align:left;font:inherit;color:inherit;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.demo-card__icon{background:var(--surface-3);width:36px;height:36px;color:var(--text-1);border-radius:10px;flex:none;place-items:center;display:grid}.demo-card__body{flex-direction:column;gap:4px;min-width:0;display:flex}.demo-card__body h3{font:var(--type-label);font-size:14px}.demo-card__body p{font-size:12.5px;line-height:1.35}.recent-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.recent{align-items:center;gap:16px;padding:10px;display:flex}.recent__thumb{border:1px solid var(--line-1);border-radius:8px;flex:none;width:96px;height:68px;overflow:hidden}.recent__thumb svg{width:100%;height:100%;display:block}.recent__main{flex:1;min-width:0}.recent__name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.recent__meta{color:var(--text-2);font-size:13px}.app--mobile .projects__inner{gap:22px;padding:16px 16px 24px}.app--mobile .projects__hero h1{font-size:30px}.app--mobile .projects__hero p{font-size:15px}.app--mobile .start-cards{grid-template-columns:1fr 1fr;gap:10px}.app--mobile .start-card{flex-direction:column;gap:14px;min-height:120px;padding:14px}.app--mobile .start-card__body p,.app--mobile .start-card__go{display:none}.app--mobile .start-card__body h3{font-size:15px;line-height:1.25}.app--mobile .start-card--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.app--mobile .start-card--primary .start-card__icon{width:auto;height:auto;color:inherit;background:0 0;place-items:start}.app--mobile .start-card .start-card__icon{background:0 0;place-items:start;width:auto;height:auto}.app--mobile .recent{gap:12px;padding:8px}.app--mobile .recent__thumb{width:64px;height:48px}.mobile-brand{justify-content:space-between;align-items:center;display:flex}.install{grid-template-rows:minmax(0,1fr);grid-template-columns:240px minmax(0,1fr) 360px;height:100%;min-height:0;display:grid}.install__sheets{border-right:1px solid var(--line-1);background:var(--surface-1);padding:12px;overflow:auto}.install__sheets .pf-caps{padding:8px 10px}.install__remarks{flex:none;align-self:stretch;width:100%;max-width:960px;margin:0 auto}.install__remarks .remarks{margin:6px 0 0;padding-left:18px;list-style:outside}.install__preview{background:var(--bg-app);flex-direction:column;justify-content:safe center;align-items:center;gap:10px;min-width:0;min-height:0;padding:32px;display:flex;overflow:auto}.paper{aspect-ratio:1.414;width:100%;max-width:900px;max-height:100%;box-shadow:var(--shadow-3);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border-radius:4px;padding:10px;position:relative}.paper .pz{background:#fff}.paper .pz-controls{bottom:8px;right:8px}.install__note{color:var(--text-3);font-size:12px}.bom-row{border-bottom:1px solid var(--line-1);align-items:baseline;gap:8px;padding:9px 0;display:flex}.bom-row__name{flex:1;min-width:0;font-size:14px;font-weight:600}.bom-row__note{color:var(--text-2);font-size:12px;font-weight:400}.bom-row__qty{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.bom-row__qty span{color:var(--text-3);margin-left:4px;font-size:13px}.install--mobile{flex-direction:column;height:100%;display:flex}.install--mobile .install__scroll{flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px 0;display:flex;overflow:auto}.install--mobile .chips-scroll{padding:0 16px}.install--mobile .paper{aspect-ratio:1.33;width:auto;box-shadow:var(--shadow-2);margin:0 16px;padding:6px}.install--mobile .pad-x{padding:0 16px}.install--mobile .install__footer{border-top:1px solid var(--line-1);background:var(--surface-1);flex:none;gap:8px;padding:10px 16px;display:flex}@media print{.pf-header,.pf-tabbar,.toast-host,.noprint{display:none!important}body{color:#000;background:#fff;overflow:visible}}.chips-scroll>*{white-space:nowrap;flex:none}.app--mobile .toast-host{justify-content:center;display:flex;left:12px;right:12px;transform:none}.app--mobile{--control-sm:44px;--control-md:44px}.app--mobile .pf-chip{min-height:44px}.app--mobile .pf-seg button{min-height:40px}.app--mobile .pf-input__step{width:40px;height:40px}.app--mobile .pf-check,.app--mobile .pf-switch{min-height:44px}.app:has(.step-bar) .pf-header__project{flex:0 0 clamp(72px,8vw,148px);width:clamp(72px,8vw,148px)}@media (max-width:1700px){.app:has(.step-bar) .pf-cmdk-trigger{display:none}}@media (max-width:1500px){.plan-bar__label--minor,.plan-bar__label--history{display:none}}@media (max-width:1400px){.plan-bar{gap:6px}.plan-bar__history,.plan-bar__right{gap:2px}}@media (max-width:1276px){.plan-bar__label{display:none}}@media (max-width:1160px){.step-switcher .pf-step{padding:0 12px}.step-switcher .pf-step__n{display:none}}@media (max-width:1090px){.app:has(.step-bar) .pf-header__project{display:none}.step-switcher .pf-step{padding:0 8px}.step-bar{gap:8px}.plan-bar{gap:6px}}@media (max-width:960px){.plan-bar .check-pill{text-overflow:ellipsis;max-width:132px;line-height:30px;display:inline-block;overflow:hidden}.plan-bar .check-pill__dot{margin-right:8px;display:inline-block}}.step-bar{flex:auto;align-items:center;gap:16px;min-width:0;display:flex}.step-switcher{flex:none}.step-switcher .pf-step[data-tone=plan]{--tone:var(--mode-plan);--tone-fg:var(--mode-plan-fg)}.step-switcher .pf-step[data-tone=pipes]{--tone:var(--mode-pipes);--tone-fg:var(--mode-pipes-fg)}.step-switcher .pf-step[data-tone=documents]{--tone:var(--mode-documents);--tone-fg:var(--mode-documents-fg)}.step-switcher .pf-step{font-weight:600}.step-switcher .pf-step[aria-current=step]{box-shadow:var(--shadow-1), inset 0 -2px 0 var(--tone)}.step-switcher .pf-step[aria-current=step] .pf-step__n{background:var(--tone);color:var(--tone-fg)}.pz{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.pz.pf-grid-bg{background-color:var(--canvas)}.pz>svg{cursor:grab;transform-origin:0 0;will-change:transform;display:block;overflow:visible}.pz>svg.pz-layer{pointer-events:none;cursor:inherit;position:absolute;inset:0}.pz-layer__root{pointer-events:visiblePainted}.pz.editor-surface[data-mode=plan]{--canvas:var(--canvas-plan);--opening:var(--canvas-plan);--mode:var(--mode-plan);--mode-fg:var(--mode-plan-fg);--mode-soft:var(--mode-plan-soft)}.pz.editor-surface[data-mode=pipes]{--canvas:var(--canvas-pipes);--opening:var(--canvas-pipes);--mode:var(--mode-pipes);--mode-fg:var(--mode-pipes-fg);--mode-soft:var(--mode-pipes-soft)}.pz.editor-surface[data-mode]{background-color:var(--canvas);transition:background-color var(--dur-base)}.pz.editor-surface[data-mode]:after{content:"";z-index:1;background:var(--mode);pointer-events:none;height:3px;position:absolute;inset:0 0 auto}.pipes--faint{opacity:.3}.pipes--faint .hit,.pipes--faint .badge{cursor:inherit}.pipe-plain.pipe-plain--faint{opacity:.25}.pz-controls{z-index:2;background:var(--surface-1);box-shadow:var(--shadow-2);border-radius:12px;flex-direction:column;gap:4px;padding:4px;display:flex;position:absolute;bottom:16px;right:16px}.app--mobile .pz-controls{display:none}.room{stroke:var(--room-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.room-heated{fill:var(--room-heated)}.room-leadsOnly{fill:var(--room-leads-only)}.room-unheated{fill:var(--room-unheated)}.room-heated-area{fill:color-mix(in oklab, var(--ok) 14%, transparent);stroke:color-mix(in oklab, var(--ok) 45%, transparent);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.room-label{fill:var(--text-2);pointer-events:none;font-family:var(--font-sans);paint-order:stroke;stroke:var(--canvas);stroke-width:.16em;stroke-linejoin:round;font-weight:700}.wall{fill:var(--wall);stroke:var(--wall);stroke-width:.75px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.opening{fill:var(--opening);stroke:none}.opening-window{fill:var(--window)}.obstacle{fill:var(--obstacle);stroke:var(--wall);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.manifold{fill:var(--manifold)}.pz-layer--back{opacity:.16}.halo{fill:none;stroke:var(--text-1);opacity:.2;stroke-linejoin:round;stroke-linecap:round}.hit{fill:none;stroke:#0000;pointer-events:stroke;cursor:pointer;stroke-linejoin:round}.badge{cursor:pointer}.badge circle,.badge-top circle{stroke:var(--canvas)}.badge text,.badge-top text{fill:#fff;font-weight:700;font-family:var(--font-mono);pointer-events:none}.violation .ring{fill:none;stroke:var(--bad);stroke-width:2.5px;vector-effect:non-scaling-stroke}.violation .dot{fill:var(--bad)}.editor-surface.has-underlay .room{fill-opacity:.45}.editor-surface>svg{cursor:crosshair}.editor-surface.tool--select>svg{cursor:default}[data-pan] .editor-surface>svg,[data-pan] .editor-surface .handle,[data-pan] .editor-surface .body-target{cursor:grab}.body-target{cursor:move;touch-action:none}.body-hit{fill:#0000;stroke:none;pointer-events:all}.body-hit--line{fill:none;stroke:#0000;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.handle{cursor:grab;touch-action:none}.handle-hit{fill:#0000;pointer-events:all}.handle-dot{fill:var(--surface-1);stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke}.handle.selected .handle-dot{fill:var(--accent)}.handle.invalid .handle-dot{stroke:var(--bad);fill:var(--bad-bg)}.handle-add .handle-dot{stroke-dasharray:3 2;opacity:.85}.handle-plus{stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.handle-end .handle-dot{fill:var(--accent)}.handle-minor .handle-dot{stroke-width:1.5px;opacity:.7}.handle-minor:hover .handle-dot,.handle-minor.selected .handle-dot{opacity:1}.handle-pick .handle-dot{stroke:var(--bad);fill:var(--bad-bg)}.draft-line{fill:none;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.draft-fill{fill:var(--accent);fill-opacity:.14;stroke:none}.draft-wall{fill:var(--wall);fill-opacity:.55;stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.draft.bad .draft-line{stroke:var(--bad)}.draft.bad .draft-fill{fill:var(--bad)}.draft-dot{fill:var(--accent)}.draft.bad .draft-dot{fill:var(--bad)}.draft-first{fill:var(--accent);fill-opacity:.12;stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.draft-len{fill:var(--text-1);paint-order:stroke;stroke:var(--canvas);stroke-width:3px;font-family:var(--font-mono)}.snap-mark{fill:var(--accent);fill-opacity:.25;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.snap-mark.snap-none{fill:none;stroke-width:1px}.snap-target{fill:none;stroke:var(--accent);stroke-width:4px;stroke-opacity:.55;stroke-linecap:round;vector-effect:non-scaling-stroke}.snap-guide{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.snap-label{fill:var(--accent-ink);font-family:var(--font-sans);paint-order:stroke;stroke:var(--canvas);stroke-width:4px;stroke-linejoin:round;font-weight:600}.cursor-dims{fill:var(--text-1);font-family:var(--font-mono);paint-order:stroke;stroke:var(--canvas);stroke-width:4px;stroke-linejoin:round;font-weight:600}.edit-outline{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke}.edit-outline.bad{fill:var(--bad);stroke:var(--bad)}.sel-outline{fill:none;stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke}.wall-hover{fill:var(--accent);fill-opacity:.35}.manifold-arrow line{stroke:var(--manifold);stroke-width:3px;vector-effect:non-scaling-stroke}.manifold-arrow polygon{fill:var(--manifold)}.calibration-line{stroke:var(--bad);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.pick-label{fill:var(--bad);font-weight:700;font-family:var(--font-mono)}.mat-region{fill:var(--canvas);fill-opacity:.35;stroke:none}.mat-line{fill:none;stroke:var(--line-2);stroke-width:1px;vector-effect:non-scaling-stroke}.mat-line.strong{stroke:var(--text-3);stroke-opacity:.7}.mat-corner circle{fill:var(--accent)}.mat-corner.auto circle{fill:var(--bad)}.mat-corner path{fill:none;stroke:var(--bad);stroke-width:3px;vector-effect:non-scaling-stroke}.editor-surface .mat-corner{display:none}.editor-surface .mat-line{stroke-opacity:.6}.editor-surface.tool--mat .mat-line{stroke:var(--text-3);stroke-opacity:.75}.editor-surface.tool--mat .mat-line.strong{stroke:var(--text-2);stroke-opacity:.9}.editor-surface.tool--mat .mat-region{fill:var(--accent-soft);fill-opacity:.45}.grid-start__axes{fill:none;stroke:var(--bad);stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.grid-start.auto .grid-start__axes{stroke-dasharray:6 4}.grid-corner-option{fill:var(--surface-1);stroke:var(--bad);stroke-width:1.5px;vector-effect:non-scaling-stroke}.grid-corner-option.target{fill:var(--bad)}.obstacle-label{fill:var(--text-2);font-family:var(--font-sans);paint-order:stroke;stroke:var(--canvas);stroke-width:3px}.pipe-plain{fill:none;stroke:var(--text-3);stroke-linejoin:round;stroke-linecap:round;opacity:.8}.pipe-plain.selected{stroke:var(--accent)}.pipe-draft .draft-line{stroke-width:3px}.draft-len{font-weight:600}.pf-lenentry{min-height:var(--touch,44px);border:1px solid var(--accent);border-radius:var(--radius,10px);background:var(--surface-1,var(--canvas));color:var(--text-1);align-items:center;gap:6px;padding:0 10px;font-size:14px;display:inline-flex}.pf-lenentry input{width:5.5em;color:inherit;font:inherit;font-family:var(--font-mono);text-align:right;background:0 0;border:0;outline:0}.contour-region polygon{fill-opacity:.1;stroke-opacity:.55;stroke-width:1px;vector-effect:non-scaling-stroke}.contour-region.manual polygon{stroke-dasharray:5 3}.contour-region.selected-mark polygon{fill-opacity:.09;stroke-opacity:.9;stroke-width:1.5px}.contour-region.bad polygon{stroke-opacity:1;stroke-width:2.5px;stroke:var(--bad)!important}.contour-region .route-failed{fill:none;stroke:var(--bad);stroke-width:2.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.contour-manual{color:var(--warn)}.own-region-preview polygon{fill:var(--accent);fill-opacity:.22;stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.route-entry{fill:var(--accent);stroke:var(--surface-1);stroke-width:2px;vector-effect:non-scaling-stroke}.route-outlet{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.route-outlet.taken{stroke:var(--text-3);stroke-dasharray:3 2}.route-draft .draft-line{stroke-width:3px}
