:root{font-family:var(--font);color:var(--ink);background:var(--paper);font-size:16px}.frame-vector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.frame-vector input{padding:5px;min-width:0}.frame-actions{display:flex;flex-wrap:wrap;gap:5px}.frame-passport button:not(.secondary){padding:5px;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);font-size:11px}.frame-result{display:grid;gap:2px;padding:5px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.frame-result span{font-variant-numeric:tabular-nums}.frame-result ul{padding-left:17px;margin:0}.frame-save{padding:8px 0}.frame-save p{font-size:12px}.frame-passport details>summary{font-size:12px}.engineering-panel{font-size:12px;line-height:1.4}.engineering-tabs{display:flex;gap:4px;position:sticky;top:31px;z-index:2;background:var(--paper);padding:4px 0}.engineering-tabs button{flex:1;padding:7px 5px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);font-size:12px}.engineering-tabs button.chosen{background:var(--ink);color:var(--paper);border-color:var(--ink)}.engineering-fields{padding:0 9px 9px;min-width:0}.engineering-fields p{margin:6px 0;overflow-wrap:anywhere}.engineering-fields a{overflow-wrap:anywhere;color:var(--ink)}.engineering-entry summary{line-height:1.4;overflow-wrap:anywhere}.engineering-entry summary small{display:block;font-weight:400;color:var(--ink-muted);margin-bottom:3px}.engineering-check{padding:7px 0;border-top:1px solid #dce2df}.engineering-check b,.engineering-check span{display:block}.engineering-check span{font-size:11px;color:var(--warn)}.engineering-check p{font-size:12px;color:var(--ink-muted)}.engineering-panel input[aria-invalid=true]{border-color:var(--danger-line)}.engineering-panel label small[role=alert]{color:var(--danger)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible,.opening:focus-visible,.facade-opening:focus-visible,.checks-panel article:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app{display:grid;grid-template-columns:330px minmax(0,1fr);grid-template-rows:50px 46px minmax(0,1fr);width:100%;height:100vh;background:var(--paper);transition:grid-template-columns .16s ease}.app.panel-hidden{grid-template-columns:0 minmax(0,1fr)}.offline-banner{position:fixed;z-index:100;top:0;left:50%;transform:translate(-50%);max-width:calc(100% - 24px);padding:10px 18px;border:2px solid var(--ink);border-top:0;background:var(--acid);color:var(--ink);font-weight:800;text-align:center;box-shadow:var(--shadow-md)}.app.offline aside input,.app.offline aside select,.app.offline aside textarea,.app.offline aside button{pointer-events:none;opacity:.48}header{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--ink);color:var(--paper);border-bottom:2px solid var(--acid);min-width:0}header>div:first-child{display:flex;align-items:baseline;gap:10px;white-space:nowrap}.brand{font-weight:850;letter-spacing:.035em;font-size:15px}.demo{color:var(--brand-muted);font-size:12px}.status,.save-state{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.save-state{margin-left:auto;color:var(--paper-muted)}.save-state.error{color:#ff9a88}.save-state.saving{color:#f0ce71}.status i{width:8px;height:8px;border-radius:50%}.ok{background:var(--status-ok)}.warn{background:var(--status-warn)}.bad{background:var(--status-bad)}.revision{font:12px ui-monospace;color:var(--brand-muted);white-space:nowrap}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}.primary{height:34px;padding:0 13px;border:0;border-radius:var(--radius);background:var(--acid);color:var(--ink);font-size:13px;font-weight:850}.toolbar{grid-column:1/-1;display:flex;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;padding:6px 8px;background:var(--paper);border-bottom:1px solid var(--line-strong);box-shadow:var(--shadow-sm);min-width:0;scrollbar-width:thin}.tool-group,.view-group,.zoom-group{display:flex;align-items:center;gap:3px;flex:none}.tool-spacer{flex:1;min-width:8px}.toolbar button{height:33px;padding:0 9px;border:1px solid transparent;background:transparent;border-radius:var(--radius);color:var(--ink);font-size:13px;font-weight:720;white-space:nowrap}.toolbar button:hover{background:var(--ink-06)}.toolbar button.chosen{background:var(--ink);color:var(--paper);border-color:var(--ink)}.panel-toggle{width:34px;padding:0!important;border-color:var(--line-strong)!important}.view-group,.zoom-group{padding-left:7px;border-left:1px solid #c7ceca}.view-group button{min-width:39px}.zoom-group button:nth-child(2){min-width:54px}.panel-title h1{margin:0;font-family:var(--font);font-size:14px;letter-spacing:.035em;text-transform:uppercase}aside{grid-column:1;grid-row:3;min-width:0;min-height:0;overflow:auto;background:var(--paper);border-right:1px solid var(--line-strong);padding:11px 13px 20px;scrollbar-width:thin;transition:opacity .12s}.panel-hidden aside{visibility:hidden;opacity:0}.panel-title{position:sticky;top:-11px;z-index:3;display:flex;align-items:center;min-height:42px;margin:-11px -13px 9px;padding:0 13px;background:var(--ink-06);border-bottom:1px solid var(--line-strong)}.panel-select{width:auto;min-width:0;flex:1;height:30px;border:0;background:transparent;color:var(--ink);font-family:var(--font);font-weight:850;text-transform:uppercase}.panel-title span{margin-left:auto;padding:2px 7px;border-radius:var(--radius);background:var(--line);color:var(--ink-muted);font-size:12px}.panel-title button{margin-left:6px;border:0;background:transparent;font-size:20px;color:var(--ink-muted)}section{margin:0 0 16px;padding:0}h2{margin:14px 0 8px;color:var(--ink-muted);font-size:12px;letter-spacing:.065em;text-transform:uppercase}section:first-of-type h2{margin-top:5px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px}label{display:grid;gap:4px;margin:7px 0;color:var(--ink-muted);font-size:13px;line-height:1.25}input,select{width:100%;height:34px;padding:5px 8px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:13px}input:focus,select:focus{border-color:var(--ink)}input:disabled,select:disabled{background:var(--ink-06);color:var(--ink-faint);border-color:var(--line)}.check{grid-template-columns:18px 1fr;align-items:center;gap:7px}.check input{width:16px;height:16px}.form{margin-top:8px}.hint{margin:8px 0;color:var(--ink-muted);font-size:12px;line-height:1.4}.field-label{display:inline-flex;align-items:center;gap:5px}.field-hint{position:relative;display:inline-flex}.field-hint-mark{width:16px;height:16px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--ink-muted);font-size:11px;font-weight:800;line-height:1;cursor:help}.field-hint-mark:hover{border-color:var(--ink);background:var(--ink-06);color:var(--ink)}.field-hint-box{position:absolute;bottom:calc(100% + 6px);left:-8px;z-index:30;width:270px;max-width:74vw;padding:9px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);color:var(--ink-muted);font-size:12px;font-weight:400;line-height:1.45;text-transform:none;white-space:normal}.field-hint-box[hidden]{display:none}.metrics{display:flex;gap:6px;margin-top:8px}.metrics span{flex:1;min-width:0;padding:8px;background:var(--ink-06);color:var(--ink-muted);font-size:12px}.metrics b{display:block;margin-top:3px;color:var(--ink);font-size:13px}.transport{margin:0;padding:9px;background:var(--ink-06);font-size:13px;line-height:1.5}button.secondary{width:100%;min-height:34px;padding:4px 7px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:12px;font-weight:800}.remove{width:100%;height:34px;margin-top:8px;border:1px solid var(--danger-line);border-radius:var(--radius);background:var(--surface);color:var(--danger);font-size:13px}.facade-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}details{margin:9px 0;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}summary{cursor:pointer;padding:9px;color:var(--ink);font-size:13px;font-weight:800}details>.form,details>.air-results{margin:0;padding:0 9px 9px}.air-results{display:grid;grid-template-columns:1fr 1fr;gap:6px}.air-results span{min-width:0;padding:7px;background:#edf1ef;color:#596762;font-size:12px;line-height:1.3}.air-results b{display:block;margin-top:3px;color:#17201e;font-size:13px;overflow-wrap:anywhere}.engine-catalog{padding:0 9px 9px}.catalog-note,.catalog-warning,.catalog-danger{margin:7px 0;padding:8px;font-size:12px;line-height:1.4}.catalog-note{background:var(--ok-bg);color:var(--ok)}.catalog-warning{background:var(--warn-bg);color:var(--warn)}.catalog-danger{background:var(--danger-bg);color:var(--danger);border-left:3px solid var(--danger-line);font-weight:750}.catalog-summary{display:grid;gap:3px;margin-top:7px;padding:8px;background:var(--ink-06);font-size:12px}.catalog-summary b{color:var(--ink);font-size:13px}.catalog-summary span{color:var(--ink-muted)}.measurement-list{display:grid;gap:5px;margin-top:7px}.measurement-list article{display:grid;grid-template-columns:1fr auto;gap:3px 6px;padding:7px;border:1px solid var(--line);background:var(--surface);font-size:12px}.measurement-list article small,.measurement-list article a{grid-column:1/-1;overflow-wrap:anywhere}.measurement-list article a{color:var(--ink);text-decoration:underline}.envelope-catalog{margin-top:8px}.envelope-list{display:grid;gap:5px;padding:0 9px 9px}.envelope-list article{display:grid;gap:3px;padding:7px;border:1px solid var(--line);background:var(--surface);font-size:12px}.envelope-list article b{font-size:13px}.envelope-list article span{color:var(--ink-muted);overflow-wrap:anywhere}.envelope-list article a{color:var(--ink);text-decoration:underline}.envelope-list article small{padding:6px;background:var(--warn-bg);color:var(--warn);line-height:1.35}.envelope-list article.envelope-tall{border-left:3px solid var(--warn-line)}.envelope-list button{margin-top:3px;justify-self:start}.estimate-card{display:grid;gap:5px;margin-top:8px;padding:9px;border:1px solid var(--warn-line);background:var(--warn-bg);font-size:12px}.estimate-card small{line-height:1.35}.estimate-card button{margin-top:3px}.migration{display:flex;align-items:center;gap:7px;margin:0 0 9px;padding:8px;background:var(--warn-bg);border-left:3px solid var(--warn-line);font-size:12px}.migration button{margin-left:auto;border:1px solid var(--warn);background:var(--surface);color:var(--warn);font-size:12px}.selection-id{margin-top:7px;color:var(--ink-muted);font:12px ui-monospace}.opening-dimensions{display:grid;gap:4px;margin-top:8px;padding:8px;background:var(--ink-06);font-size:12px}.opening-dimensions b{display:block;color:var(--ink)}.empty-note{padding:10px;background:var(--ink-06);color:var(--ink-muted);font-size:13px}.workspace{grid-column:2;grid-row:3;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;overflow:hidden;background:var(--paper)}.canvas{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:auto;padding:14px;background:var(--paper)}.view-stage{grid-row:2;width:100%;height:100%;min-width:360px;min-height:300px;display:grid;place-items:center;transform-origin:center center;transition:transform .12s}.plan,.facade,.plan-interactions{display:block;grid-area:1/1;width:100%;height:100%;max-width:100%;max-height:100%}.plan,.facade{background:var(--surface);box-shadow:var(--shadow-sheet)}.plan-interactions{z-index:1;pointer-events:none}.plan-interactions .opening{pointer-events:auto}.print-header{display:none}.outer{fill:var(--ink-06);stroke:var(--ink);stroke-width:4}.inner{fill:var(--surface);stroke:var(--ink);stroke-width:2}.equipment{fill:#69b49e;stroke:#144b3d;stroke-width:3}.equipment+line,.equipment+line+line{stroke:#173d33;stroke-width:2}.equipment~text{fill:var(--ink);font-size:11px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.opening rect,.opening-visual rect{fill:#e6573f;stroke:#9c2e1e;stroke-width:2;cursor:ew-resize;touch-action:none}.opening.end rect,.opening-visual.end rect{cursor:pointer}.opening.selected rect,.opening-visual.selected rect{stroke:#125ee8;stroke-width:5}.svg-title{font-size:17px;font-weight:800;fill:var(--ink)}.svg-note{font-size:12px;fill:var(--danger);font-weight:800}.svg-meta{font-size:10px;fill:var(--ink)}.dim{stroke:var(--ink);stroke-width:1}.dimtext{font-size:13px;fill:var(--ink)}.hash{font:11px ui-monospace;fill:var(--ink-muted)}.fuel line{stroke:#e09a22;stroke-width:5;stroke-dasharray:8 5}.fuel text{fill:var(--ink);font-size:10px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.facade-wall{fill:var(--surface);stroke:var(--ink);stroke-width:3}.facade .brand-mark{opacity:.32;pointer-events:none}.frame-zone,.column rect{fill:var(--line-strong);opacity:.6}.frame-zone.collision,.column.collision rect{fill:#ef4e39;opacity:.8}.facade-opening{cursor:move;touch-action:none}.facade-opening rect{fill:#66aa96;stroke:#164d3f;stroke-width:3}.facade-opening text{font-size:10px;font-weight:800;fill:var(--ink);pointer-events:none}.facade-opening.selected rect{stroke:#125ee8;stroke-width:6}.facade-opening.collision rect{fill:#ff6b55;stroke:#b32213;stroke-width:5}.facade-opening.selected.collision rect{stroke:#8b160a;stroke-dasharray:10 5}.facade-opening.collision text{fill:var(--ink)}.facade-empty text:first-child{font-size:15px;font-weight:800;fill:var(--ink)}.facade-empty text:last-child{font-size:11px;fill:var(--ink-muted)}.preview3d-wrap{position:relative;width:100%;height:100%;min-height:300px}.preview3d{width:100%;height:100%}.preview-controls{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:8px}.preview-badge{padding:7px 9px;border-radius:var(--radius);background:color-mix(in srgb,var(--ink) 91%,transparent);color:var(--paper);font-size:12px;position:static;pointer-events:none}.error,.notice,.job{display:flex;align-items:center;gap:9px;margin:0 14px 11px;padding:9px 10px;background:var(--danger-bg);border-left:3px solid var(--danger-line);font-size:12px}.error span{min-width:0;overflow-wrap:anywhere}.error button{margin-left:auto;white-space:nowrap}.notice,.job{background:var(--ok-bg);border-color:var(--ok-line)}.job a{color:var(--ink);font-weight:800}.job button{margin-left:auto}.checks-panel article{border-left:3px solid var(--line-strong);padding:8px;margin:6px 0;background:var(--surface)}.checks-panel article.pass{border-color:var(--ok-line)}.checks-panel article.fail{border-color:var(--danger-line);background:var(--danger-bg)}.checks-panel article.unknown{border-color:var(--warn-line)}.checks-panel article.actionable{cursor:pointer}.checks-panel article span,.checks-panel .check-group summary span{font:700 11px ui-monospace}.checks-panel article b,.checks-panel .check-group summary b{float:right;font-size:12px}.checks-panel .check-components{display:block;clear:both;padding-top:5px;color:var(--ink-muted);font-size:12px;font-weight:750;line-height:1.35}.checks-panel article p{clear:both;margin:5px 0 0;font-size:12px;line-height:1.4}.checks-panel .check-group{margin:6px 0;border:0;background:transparent}.checks-panel .check-group>summary{padding:8px;border-left:3px solid var(--ok-line);background:var(--surface)}.checks-panel .check-group>article{margin-left:10px}.bom-panel table{width:100%;border-collapse:collapse;font-size:12px}.bom-panel th,.bom-panel td{text-align:left;border-bottom:1px solid var(--line);padding:7px 3px}.bom-panel th:last-child,.bom-panel td:last-child{text-align:right}.bom-panel small{display:block;color:var(--ink-muted);margin-top:3px}.bom-toolbar{display:grid;gap:6px;margin:10px 0}.bom-toolbar label{display:grid;gap:4px;font-size:12px;font-weight:750}.bom-search,.bom-copy-fallback textarea{width:100%;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:7px}.bom-found{margin:0;color:var(--ink-muted);font-size:12px}.bom-copy{min-height:34px;border:1px solid var(--ink);background:var(--acid);color:var(--ink);font-weight:800}.bom-copy-fallback textarea{min-height:130px;font:11px/1.4 ui-monospace,monospace}.bom-section{margin:7px 0}.bom-section>summary{font-size:12px;font-weight:750}.bom-panel th:nth-child(2),.bom-panel td:nth-child(2),.bom-panel th:nth-child(3),.bom-panel td:nth-child(3){text-align:right}.bom-mass{font-variant-numeric:tabular-nums}.check-status-help{display:block;clear:both;padding-top:5px;font-size:12px}.next-step{margin:0 0 9px;padding:7px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-size:12px;font-weight:750}.app.busy aside,.app.busy .canvas{opacity:.8}.loading,.fatal{min-height:100vh;display:grid;place-content:center;text-align:center;max-width:720px;margin:auto;padding:24px}.mark{width:58px;height:58px;display:grid;place-items:center;margin:auto;background:#182321;color:#d7df36;font-weight:900}.loading-actions{display:flex;justify-content:center;gap:8px}.loading button,.fatal button{padding:8px 13px}@media(max-width:980px){.app{grid-template-columns:280px minmax(0,1fr)}.brand{font-size:13px}.demo,.revision{display:none}.toolbar button{padding:0 7px}.grid{grid-template-columns:1fr}.view-stage{min-width:700px}}@media(max-width:700px){.app,.app.panel-hidden{position:relative;grid-template-columns:minmax(0,1fr);grid-template-rows:50px 46px minmax(0,1fr)}header{gap:8px}.brand{font-size:12px}.status{display:none}.primary{margin-left:auto;font-size:12px;padding:0 8px}.save-state{margin-left:0}.toolbar{padding-right:12px}.tool-spacer{display:none}aside{position:absolute;z-index:10;top:96px;bottom:0;left:0;width:min(340px,88vw);box-shadow:5px 0 18px #17221f33;grid-column:auto;grid-row:auto}.panel-hidden aside{transform:translate(-102%);visibility:hidden}.workspace{grid-column:1;grid-row:3}.canvas{padding:8px}.tool-group{display:flex}.panel-title{min-height:44px}.panel-select{height:44px;min-height:44px;font-size:16px;line-height:normal}aside section select,aside section input:not([type=checkbox]):not([type=radio]){min-height:44px;font-size:16px;line-height:normal}}@media(max-width:480px){header .save-state{display:none}.toolbar{gap:4px}.view-group button{min-width:36px;padding:0 6px}.zoom-group button{padding:0 6px}.zoom-group button:nth-child(2){min-width:48px}}.diffuser polygon{fill:#73949e66;stroke:#496a74;stroke-width:2}.diffuser text{fill:var(--ink);font-size:8px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.fuel line{stroke:#d78b1f;stroke-width:5;stroke-dasharray:8 5}.facade-opening.grille>rect{fill:#78938c}.grille-detail line{stroke:#263b36;stroke-width:4;pointer-events:none}.door-detail line{stroke:#173d33;stroke-width:4;pointer-events:none}.door-detail circle{fill:#dbe2df;stroke:#173d33;stroke-width:2;pointer-events:none}.requirement-card,.standard-list{display:grid;gap:6px;margin:8px 0;padding:9px;background:var(--ink-06);font-size:12px;line-height:1.35}.requirement-card{border-left:3px solid var(--warn-line)}.requirement-card b{color:var(--warn)}.facade-interior{pointer-events:none}.dgu-projection rect{fill:#5888b01f;stroke:#426f91;stroke-width:1.5;stroke-dasharray:7 4}.dgu-projection line{stroke:#426f91;stroke-width:2;stroke-dasharray:7 4}.dgu-projection text{fill:var(--ink);font-size:10px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.fuel-projection rect{fill:#daae4824;stroke:none}.fuel-projection line{stroke:#ad7817;stroke-width:2;stroke-dasharray:8 4}.fuel-projection text,.fuel-behind-label{fill:var(--ink);font-size:9px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.body-fit-note{font-size:11px;line-height:1.4;color:#59665e}.body-fit-note p{margin:6px 0}.body-fit-note details{margin-bottom:8px}.job{flex-wrap:wrap}.job>b{flex-basis:100%}.job .download-bundle{display:inline-block;padding:10px 14px;background:var(--acid);color:var(--ink);border-radius:var(--radius);font-size:14px;text-decoration:none}.export-separate{display:flex;gap:12px;flex-wrap:wrap}.export-error{color:var(--danger)}.job p{margin:3px 0}.job .export-separate{flex-basis:100%}.selection{max-width:940px;margin:0 auto;padding:18px 16px 40px;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.selection header{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.selection header h1{margin:0 0 4px;font-size:20px}.selection header p{margin:0;color:var(--ink-muted);font-size:13px;line-height:1.45;max-width:640px}.mode-switch{display:flex;gap:6px;margin-bottom:12px}.mode-switch button{padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}.mode-switch button.chosen{background:var(--ink);color:var(--paper);border-color:var(--ink)}.selection-form{display:grid;gap:9px;padding:12px;border:1px solid var(--line-strong);background:var(--surface)}.selection-form label{display:grid;gap:3px;font-size:12px;color:var(--ink-muted)}.selection-form label.check{display:flex;gap:7px;align-items:center}.selection-form select,.selection-form input[type=number],.selection-form input[type=text],.selection-form input:not([type]){padding:7px;border:1px solid var(--line-strong);font-size:13px}.selection-form button.primary{justify-self:start;margin-top:4px;padding:9px 16px;border:0;background:var(--acid);color:var(--ink);font-size:13px;font-weight:750;cursor:pointer}.selection-result{margin-top:14px;display:grid;gap:9px}.pick-card{display:grid;gap:4px;padding:11px;border:1px solid var(--ok-line);background:var(--ok-bg);font-size:12px}.pick-card b{color:var(--ok);font-size:14px}.pick-card span{color:var(--ok)}.pick-card button{justify-self:start;margin-top:5px;padding:7px 12px;border:0;background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;cursor:pointer}.pick-list{display:grid;gap:7px;padding:9px}.selection .brand{margin:0 0 2px;color:var(--ink);font-size:11px;font-weight:800;letter-spacing:.08em}.incompatible{position:fixed;left:50%;top:70px;transform:translate(-50%);z-index:40;max-width:560px;display:grid;gap:6px;padding:12px 14px;border:1px solid var(--danger-line);border-left-width:4px;background:var(--surface);box-shadow:var(--shadow-lg);font-size:12px;line-height:1.45}.incompatible b{font-size:13px;color:var(--danger)}.incompatible p{margin:0}.incompatible button{justify-self:start;padding:7px 12px;border:0;background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;cursor:pointer}.incompatible button.secondary{border:1px solid var(--line-strong);background:var(--ink-06);color:var(--ink)}.options-grid{display:grid;gap:5px;padding:8px 2px}.incompatible-need{padding:7px 8px;background:var(--warn-bg);color:var(--warn)}.incompatible-actions{display:flex;flex-wrap:wrap;gap:6px}.incompatible-actions button{flex:none}@media(max-width:700px){.incompatible{inset:auto 8px 8px;transform:none;max-width:none;max-height:64vh;overflow-y:auto}}.fuel-tank rect{fill:#e9c98a;stroke:#8a6420;stroke-width:2;opacity:.9}.facade-opening text{paint-order:stroke;stroke:#f8faf8;stroke-width:4px;stroke-linejoin:round}.opening-visual.collision rect{fill:#ff6b55;stroke:#b32213;stroke-width:4}.layout-warning{display:flex;align-items:center;gap:7px;margin:0 0 9px;padding:8px;background:var(--warn-bg);border-left:3px solid var(--warn-line);color:var(--warn);font-size:12px;cursor:pointer}.layout-warning:hover{filter:brightness(.97)}@media(max-width:700px),(max-height:560px){html,body,#root{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}.app,.app.panel-hidden{height:auto;min-height:100vh;min-height:100dvh}.workspace{min-height:70vh}.canvas{min-height:70vh;overflow-x:auto;overflow-y:visible}.selection{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}}@media(max-width:700px){.app,.app.panel-hidden{display:block;padding-top:96px}.app>header{position:fixed;top:0;left:0;right:0;z-index:20}.app>.toolbar{position:fixed;top:50px;left:0;right:0;z-index:15}.workspace{display:block}aside{position:fixed;top:96px}}.export-audience{display:flex;align-items:center;gap:6px;margin:0;color:var(--brand-muted);font-size:12px;white-space:nowrap}.export-audience select{width:auto;height:30px;padding:0 6px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--ink);color:var(--paper);font-size:12px}.auth-button{height:30px;padding:0 10px;border:1px solid var(--line-dark);border-radius:var(--radius);background:transparent;color:var(--paper-muted);font-size:12px;font-weight:700}.auth-button:hover{background:var(--ink-hover)}.auth-card{position:fixed;right:12px;top:52px;z-index:50;width:min(380px,92vw);display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);color:var(--ink);font-size:12px;line-height:1.45;text-align:left}.auth-card b{font-size:13px}.auth-card p{margin:0;color:var(--ink-muted)}.auth-form{display:grid;gap:6px}.auth-form label{margin:0;font-size:12px}.auth-form input:disabled{background:var(--ink-06);color:var(--ink-faint)}.auth-error{margin:0;padding:6px 8px;border-left:3px solid var(--danger-line);background:var(--danger-bg);color:var(--danger);font-weight:700}.auth-sets{margin:0;padding-left:16px;display:grid;gap:5px}.auth-sets li{color:var(--ink-muted)}.auth-sets b{display:block;color:var(--ink)}@media(max-width:700px){.export-audience span{display:none}.export-audience select{min-width:9.5em}.auth-card{right:6px;top:48px}.job{position:relative;z-index:20}}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/Manrope-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/Manrope-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/SpaceGrotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#10201f;--acid:#d7ff39;--paper:#f5f3ec;--brand-muted:#8f9d97;--brand-orange:#ff7043;--model-wall:#4d5056;--model-frame:#767a81;--model-fitting:#2d3033;--model-louver:#3c3f44;--model-door:#5a5d63;--model-detail:#7c8086;--model-steel:#c9ced0;--model-partition:#b89257;--model-tank:#c99a4a;--model-aux:#8a9196;--model-lamp:#ffd23f;--model-engine:#628a7a;--model-alternator:#79907f;--model-radiator:#33454a;--model-exhaust:#c9ced0;--model-panel:#7c8086;--model-ats:#c06a34;--model-detector:#efeee8;--model-suppression:#b8432c;--model-extinguisher:#d1352a;--model-extinguisher-cap:#1b1e21;--model-fire-panel:#d8362b;--model-heater:#f2c53d;--model-heater-edge:#d8362b;--model-fan:#7d858c;--model-cable:#232629;--model-duct:#638e98;--model-brand:#f2f4f3;--model-selected:#d7ff39;--surface:#ffffff;--acid-hover:#e4ff6b;--acid-press:#b9de35;--focus-ring:rgba(215,255,57,.55);--ink-hover:#22312f;--ink-06:rgba(16,32,31,.06);--ink-10:rgba(16,32,31,.1);--ink-muted:rgba(16,32,31,.7);--ink-faint:rgba(16,32,31,.45);--line:rgba(16,32,31,.18);--line-strong:rgba(16,32,31,.5);--line-dark:rgba(245,243,236,.18);--paper-muted:rgba(245,243,236,.7);--ok:#1f7a53;--ok-bg:#eaf6f0;--ok-line:#2d8c6d;--warn:#70480e;--warn-bg:#fff1dd;--warn-line:#d49931;--danger:#8d2619;--danger-bg:#ffe3dd;--danger-line:#d64d39;--status-ok:#68d39d;--status-warn:#e0a83a;--status-bad:#ff6e57;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:17px;--fs-hero:clamp(27px,3.6vw,42px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--h-md:34px;--h-sm:32px;--radius:0;--shadow-sm:0 1px 3px rgba(16,32,31,.1);--shadow-md:0 4px 14px rgba(16,32,31,.14);--shadow-lg:0 8px 24px rgba(16,32,31,.2);--shadow-sheet:0 5px 18px rgba(16,32,31,.18);--font:"Manrope",Inter,Arial,sans-serif;--display:"Space Grotesk","Manrope",Arial,sans-serif;font-family:var(--font)}.intro-layer{position:fixed;inset:0;z-index:60;display:grid;place-items:start center;padding:10vh 16px;pointer-events:none}.intro-card{width:min(620px,100%);padding:22px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:8px 8px 0 var(--ink);pointer-events:auto}.intro-card h2{margin:0 0 16px;font-size:22px}.intro-card ol{display:grid;gap:12px;margin:0 0 18px;padding-left:28px}.intro-card li{padding-left:4px}.intro-card li::marker{font-weight:800}.intro-card li b,.intro-card li span{display:block}.intro-card li span{margin-top:2px;font-size:13px}.intro-card button{padding:9px 18px;border:1px solid var(--ink);background:var(--acid);color:var(--ink);font-weight:800}header{background:var(--ink);border-bottom:2px solid var(--acid);gap:11px;padding:0 14px}header>div:first-child{align-items:center;gap:9px}.brand-mark{height:26px;width:auto;flex:none;opacity:.94}header .brand{font:800 13px/1 var(--font);letter-spacing:.055em}header .demo{font:700 10px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-muted);border:1px solid var(--line-dark);padding:5px 7px;white-space:nowrap}header .save-state,header .status{font:700 11px/1 var(--font);letter-spacing:.02em;color:var(--paper-muted)}header .revision{font:600 11px/1 var(--display);letter-spacing:.05em;color:var(--brand-muted)}.export-audience{gap:7px;font:700 10px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-muted)}.export-audience select{height:32px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--ink);color:var(--paper);font:700 12px var(--font)}.export-audience select:focus{border-color:var(--ink)}header .primary{height:32px;border-radius:0;background:var(--acid);color:var(--ink);font:800 12px/1 var(--font);letter-spacing:.04em;padding:0 15px}header .primary:hover:not(:disabled){background:var(--acid-hover)}.auth-button{height:32px;border-radius:var(--radius);border-color:var(--line-dark);color:var(--paper-muted);font:800 12px/1 var(--font);letter-spacing:.04em}.auth-button:hover{background:var(--ink-06);border-color:var(--line-strong);color:var(--ink)}.auth-card{border-radius:var(--radius);border-color:var(--line-strong);font-family:var(--font)}.auth-card b{font:800 13px/1.3 var(--font)}.selection header{position:static;display:flex;align-items:flex-start;gap:20px;margin:-18px -16px 16px;padding:24px 22px 22px;background:var(--ink);color:var(--paper);border-bottom:3px solid var(--acid);background-image:repeating-linear-gradient(102deg,rgba(255,255,255,.055) 0 1px,transparent 1px 56px),repeating-linear-gradient(12deg,rgba(255,255,255,.04) 0 1px,transparent 1px 56px);background-color:var(--ink)}.hero-mark{width:82px;height:auto;flex:none;margin-top:4px}.hero-copy{min-width:0}@media(min-width:821px){.hero-copy{border-left:2px solid rgba(215,255,57,.32);padding-left:19px}}.selection header .brand{margin:0 0 7px;color:var(--acid);font:800 11px/1 var(--font);letter-spacing:.17em}.selection header h1{margin:0 0 9px;color:var(--paper);font:800 var(--fs-hero)/1.02 var(--font);letter-spacing:-.035em}.selection header .hero-lead{max-width:660px;color:var(--paper-muted);font-size:13.5px;line-height:1.55}.hero-badges{margin-left:auto;display:grid;gap:7px;justify-items:end;flex:none}.hero-chip{border:1px solid rgba(215,255,57,.42);background:transparent;color:var(--acid);padding:6px 9px;font:800 10px/1 var(--font);letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}.hero-chip.draft{border-color:var(--brand-orange);color:var(--brand-orange)}@media(max-width:820px){.selection header{flex-wrap:wrap;gap:14px;padding:18px 16px}.hero-mark{width:52px}.hero-badges{margin-left:0;justify-items:start;grid-auto-flow:column;grid-auto-columns:max-content}}@media(max-width:520px){.hero-badges{grid-auto-flow:row}.selection header .hero-lead{font-size:13px}}@media(max-width:979px){.selection{width:100%;max-width:100%;padding-right:var(--space-3);padding-left:var(--space-3)}.selection header{min-width:0;margin-right:calc(-1 * var(--space-3));margin-left:calc(-1 * var(--space-3))}.selection header>*{min-width:0}.hero-copy,.hero-copy p,.hero-badges{max-width:100%;overflow-wrap:anywhere}.mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.mode-switch button{min-width:0;min-height:44px;padding:var(--space-2);white-space:normal;overflow-wrap:anywhere}.selection-form{min-width:0;width:100%;overflow-wrap:anywhere}.selection-form>*{min-width:0;max-width:100%}.selection-form label{min-width:0;font-size:var(--fs-md)}.selection-form select,.selection-form input[type=number],.selection-form input[type=text],.selection-form input:not([type]){min-width:0;max-width:100%;height:44px;font-size:16px}.selection-form label.check{min-height:44px;white-space:normal}.selection-form label.check input{width:20px;height:20px;flex:none}.selection-form details>summary{min-height:44px;font-size:var(--fs-md);overflow-wrap:anywhere}.selection-form button.primary{justify-self:stretch;min-height:44px;margin-left:0;padding:var(--space-2) var(--space-3);font-size:16px;white-space:normal}.intro-layer{padding:var(--space-4);align-items:start}.intro-card{max-height:calc(100vh - 2 * var(--space-4));max-height:calc(100dvh - 2 * var(--space-4));overflow-y:auto;overscroll-behavior:contain}.intro-card button{min-height:44px}.app>header{min-width:0;gap:var(--space-1);padding-right:var(--space-2);padding-left:var(--space-2)}.app>header>div:first-child{min-width:0}.app>header .brand,.app>header .demo,.app>header .revision{display:none}.app>header .brand-mark{width:auto;height:26px}.app>header .save-state,.app>header .status{display:none}.app>header .export-audience{min-width:0;flex:0 1 132px}.app>header .export-audience select{width:100%;min-width:0;height:44px;font-size:16px}.app>header .primary{min-width:0;height:44px;flex:1 1 150px;margin-left:0;padding:0 var(--space-2);white-space:normal}.app>header .auth-button{min-width:44px;height:44px;padding:0 var(--space-2);flex:none}.job{min-width:0}.job .export-downloads,.job .export-separate{min-width:0;width:100%}.job .export-separate{gap:var(--space-2)}.job a,.job .download-bundle{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-2);overflow-wrap:anywhere}}@media(max-width:520px){.selection header{gap:var(--space-3)}.hero-mark{width:44px}.hero-copy{flex:1 1 calc(100% - 56px)}.selection header h1{font-size:26px}.hero-badges{width:100%;grid-template-columns:minmax(0,1fr) auto;grid-auto-flow:row;align-items:start}.hero-chip{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.hero-badges .auth-button{grid-column:2;grid-row:1 / span 2;min-width:44px;min-height:44px}.intro-card{padding:var(--space-4);box-shadow:var(--space-2) var(--space-2) 0 var(--ink)}.intro-card h2{font-size:20px}.intro-card ol{gap:var(--space-2);margin-bottom:var(--space-3)}.app>header .brand-mark{height:22px}.app>header .export-audience{flex-basis:98px}.app>header .primary{flex-basis:122px;font-size:var(--fs-2xs)}}.aux rect{fill:#f0a23a66;stroke:#c1741a;stroke-width:2}.aux-ceiling rect{fill:#f0a23a33;stroke-dasharray:5 3}.aux text{fill:var(--ink);font:700 9px ui-sans-serif,system-ui;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.mass-panel details{margin:6px 0}.mass-panel summary{color:var(--ink);font-size:12px;font-weight:750}.mass-line{display:flex;justify-content:space-between;gap:8px;margin:3px 0;font-size:12px;line-height:1.35}.mass-line span{min-width:0;color:var(--ink-muted);overflow-wrap:anywhere}.mass-line b{color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}.preview3d-fallback{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;place-items:center;gap:6px;padding:24px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1.45;text-align:center}.view-fallback{display:block;width:100%;height:100%;min-height:0;object-fit:contain;border-bottom:2px solid var(--acid);background:var(--paper)}.preview3d-fallback b{font-size:15px}.preview3d-fallback p{margin:0;max-width:520px}.primary:hover:not(:disabled),.bom-copy:hover:not(:disabled),.selection-form button.primary:hover:not(:disabled),.job .download-bundle:hover{background:var(--acid-hover)}.primary:active:not(:disabled),.bom-copy:active:not(:disabled),.selection-form button.primary:active:not(:disabled),.job .download-bundle:active{background:var(--acid-press)}.toolbar button.chosen:hover:not(:disabled),.toolbar button.chosen:active:not(:disabled),.engineering-tabs button.chosen:hover:not(:disabled),.engineering-tabs button.chosen:active:not(:disabled),.mode-switch button.chosen:hover:not(:disabled),.mode-switch button.chosen:active:not(:disabled),.incompatible button:not(.secondary):hover:not(:disabled),.incompatible button:not(.secondary):active:not(:disabled),.pick-card button:hover:not(:disabled),.pick-card button:active:not(:disabled){background:var(--ink-hover)}button.secondary:hover:not(:disabled),.mode-switch button:not(.chosen):hover:not(:disabled),.engineering-tabs button:not(.chosen):hover:not(:disabled),.frame-passport button:not(.secondary):hover:not(:disabled),.incompatible button.secondary:hover:not(:disabled){background:var(--ink-06)}button.secondary:active:not(:disabled),.mode-switch button:not(.chosen):active:not(:disabled),.engineering-tabs button:not(.chosen):active:not(:disabled),.frame-passport button:not(.secondary):active:not(:disabled),.incompatible button.secondary:active:not(:disabled){background:var(--ink-10)}.remove:hover:not(:disabled){background:var(--danger-bg)}.remove:active:not(:disabled){border-color:var(--danger);background:var(--danger-bg)}.panel-title button:hover{color:var(--ink)}@page{size:A4 landscape;margin:10mm}@media print{html,body,#root{width:auto;height:auto;overflow:visible;background:var(--paper)}.app,.app.panel-hidden{display:block;width:100%;height:auto;background:var(--paper)}header,.toolbar,aside,.preview-badge,.notice,.error,.job,button{display:none!important}.workspace{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:180mm;overflow:visible}.print-header{display:block;margin:0 0 4mm;color:var(--ink);font:800 11pt/1.2 var(--font);letter-spacing:.04em}.canvas{display:block;width:100%;height:165mm;overflow:visible;padding:0;background:var(--paper)}.view-stage{display:grid;width:100%;height:100%;min-width:0;min-height:0;transform:none!important;transition:none}.plan,.facade{width:100%;height:100%;max-width:100%;max-height:100%;box-shadow:none;object-fit:contain}.app:has(.bom-panel) .workspace{display:none}.app:has(.bom-panel) aside{display:block!important;width:100%;height:auto;overflow:visible;padding:0;border:0;background:var(--paper)}.app:has(.bom-panel) aside>:not(.print-header):not(.mass-panel):not(.bom-panel){display:none!important}.app:has(.bom-panel) .panel-title,.app:has(.bom-panel) .bom-toolbar{display:none!important}.bom-section::details-content{content-visibility:visible!important;block-size:auto!important}.bom-section:not([open])>table{display:table!important}.bom-section{break-inside:avoid;background:var(--paper)}}@media(min-width:701px)and (max-width:1400px){.app,.app.panel-hidden{grid-template-rows:50px auto minmax(0,1fr)}.toolbar{flex-wrap:wrap;row-gap:2px;overflow-x:visible}.view-zoom{margin-left:auto}}.view-zoom{display:flex;align-items:center;gap:7px;flex:none}@media(max-width:1280px){.demo{display:none}}@media(max-width:1100px){.revision{display:none}header{gap:10px}}.legal-footer{padding:12px 16px 16px;border-top:1px solid var(--line, #d9dcd3);color:var(--muted, #66716f);font-size:11px;line-height:1.45}.legal-footer p{margin:0;max-width:960px}.intro-terms{margin:0 0 14px;padding:10px 12px;border-left:3px solid var(--acid);background:#d7ff3924;font-size:12px;line-height:1.45}@media print{.legal-footer{font-size:8pt;color:#000}}.legal-footer.compact{padding:4px 14px;border-top:1px solid var(--line, #d9dcd3);font-size:11px;line-height:1.4}.legal-footer.compact summary{cursor:pointer;list-style:none;color:var(--muted, #66716f)}.legal-footer.compact summary::-webkit-details-marker{display:none}.legal-footer.compact p{margin:6px 0 4px;max-width:960px}
