:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--wirer-bg:#f0f1f3;--wirer-fg:#525252;--wirer-surface:#fff;--wirer-canvas:#6ba8dc;--junction-box-fill:#3a4a3f;--junction-box-fill-breaker:#354640;--wire-red:#c62828;--wire-black:#1a1a1a;--wire-white:#f5f5f5;color:var(--wirer-fg);background-color:var(--wirer-bg);font-family:system-ui,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--wirer-bg:#141416;--wirer-fg:#e8e8e8;--wirer-surface:#222226;--wirer-canvas:#6ba8dc;--wire-black:#1a1a1a;--wire-white:#f0f0f0}}html,body,#root{min-height:100vh;color:var(--wirer-fg);background-color:var(--wirer-bg);margin:0}body{margin:0}#root{min-height:100vh}.home-screen{padding:1.25rem 1.5rem 2rem}.error-fallback{color:var(--wirer-fg);background:var(--wirer-bg);min-height:100vh}.app{max-width:56rem;margin:0 auto;padding:0}.app--editor{max-width:none;margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{min-height:44px;font:inherit;border:1px solid color-mix(in srgb, var(--wirer-fg) 35%, var(--wirer-surface));background:var(--wirer-surface);color:var(--wirer-fg);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 1rem;display:inline-flex}.btn--small{min-height:40px;padding:0 .75rem;font-size:.875rem}.btn--primary{background:var(--wirer-fg);color:var(--wirer-surface);border-color:var(--wirer-fg)}.btn--active{background:color-mix(in srgb, var(--wirer-fg) 12%, var(--wirer-surface));border-color:color-mix(in srgb, var(--wirer-fg) 60%, var(--wirer-surface))}.btn--danger{color:#fff;background:#b91c1c;border-color:#991b1b}.btn--danger:hover{background:#991b1b}.btn--danger:disabled{opacity:.45;cursor:not-allowed}.btn--block{width:100%;margin-top:.75rem}.inspector__hint--error{color:#b91c1c}.inspector__hint--warn{color:#b45309}.inspector kbd{border:1px solid color-mix(in srgb, var(--wirer-fg) 25%, transparent);border-radius:4px;padding:.1em .35em;font-size:.85em}.editor-label-settings{border-bottom:1px solid color-mix(in srgb, var(--wirer-fg) 12%, var(--wirer-surface));margin-bottom:.85rem;padding:0 0 .85rem}.editor-label-settings__title{margin:0 0 .65rem;font-size:.95rem;font-weight:650}.editor-label-settings__value{opacity:.75;font-weight:500}.editor-label-settings__slider{width:100%;accent-color:var(--wirer-fg);margin-top:.35rem}.inspector__field--row{flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem}.inspector__field--row .inspector__label{margin-bottom:0}.conduit-bundle--breaker .wire-stroke{stroke-width:3px}.conduit-bundle--selected .wire-stroke:not(.wire-stroke--selected),.cable-bundle--selected .wire-stroke:not(.wire-stroke--selected){filter:drop-shadow(0 0 2px #2563eb73)}.wire-link-hit,.conduit-hit,.cable-footprint{cursor:pointer}.cable-footprint.cable-footprint--inactive{cursor:default}.conduit-run .conduit-run__sheath-outline{stroke:#c4a574;stroke-width:22px;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}.conduit-run .conduit-run__sheath{stroke:#f5e6c8;stroke-width:20px;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:none}.conduit-run--selected .conduit-run__sheath-outline{stroke:#edd8a8}.conduit-run--selected .conduit-run__sheath{stroke:#fdf6e6}.conduit-run--stub.conduit-run--stub-connect-pending-source .conduit-run__sheath-outline{stroke:#f59e0b;stroke-width:24px}.conduit-run--stub.conduit-run--stub-connect-compat .conduit-run__sheath-outline{stroke:#15803d}.conduit-run--stub.conduit-run--stub-connect-first-target .conduit-run__sheath-outline{stroke:#3b82f6}.conduit-run--stub.conduit-run--stub-dimmed{opacity:.38}.editor-toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.editor-toolbar--scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:.15rem;overflow-x:auto}.editor-toolbar--scroll::-webkit-scrollbar{display:none}.editor-toolbar__divider{background:color-mix(in srgb, var(--wirer-fg) 18%, transparent);align-self:stretch;width:1px;min-height:2.75rem;margin:0 .15rem}.toolbar-btn{border:1px solid color-mix(in srgb, var(--wirer-fg) 16%, transparent);background:var(--wirer-surface);width:2.75rem;height:2.75rem;color:var(--wirer-fg);cursor:pointer;border-radius:.45rem;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.toolbar-btn:hover:not(:disabled){background:color-mix(in srgb, var(--wirer-fg) 8%, var(--wirer-surface))}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn--active{border-color:color-mix(in srgb, var(--wirer-accent) 70%, transparent);background:color-mix(in srgb, var(--wirer-accent) 16%, var(--wirer-surface));color:var(--wirer-accent)}.toolbar-btn__key{opacity:.65;pointer-events:none;font-size:.55rem;font-weight:600;line-height:1;position:absolute;bottom:.1rem;right:.2rem}.toolbar-group{align-items:center;gap:.25rem;display:inline-flex}.toolbar-variant-select{border:1px solid color-mix(in srgb, var(--wirer-fg) 16%, transparent);background:var(--wirer-surface);max-width:6.5rem;height:2.75rem;color:var(--wirer-fg);border-radius:.45rem;padding:0 .35rem;font-size:.75rem}.home-screen__header{border-bottom:1px solid color-mix(in srgb, var(--wirer-fg) 14%, var(--wirer-surface));flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.25rem 1.5rem 1rem;display:flex}.home-screen__subtitle{opacity:.82;margin:.25rem 0 0}.home-screen__actions{flex-wrap:wrap;gap:.5rem;display:flex}.home-screen__library{padding:1rem 1.5rem 2rem}.home-screen__library-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.job-select-all{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;min-height:44px;display:inline-flex}.home-screen__bulk-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.home-screen__bulk-count{opacity:.85;margin-right:.25rem;font-size:.875rem}.home-screen__empty{opacity:.8;margin:2rem 0}.job-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.job-row{border:1px solid color-mix(in srgb, var(--wirer-fg) 18%, var(--wirer-surface));background:color-mix(in srgb, var(--wirer-fg) 5%, var(--wirer-surface));border-radius:10px;align-items:center;gap:.75rem;width:100%;min-height:52px;padding:.5rem .5rem .5rem .75rem;display:flex}.job-row--selected{border-color:color-mix(in srgb, var(--wirer-fg) 45%, var(--wirer-surface));background:color-mix(in srgb, var(--wirer-fg) 10%, var(--wirer-surface))}.job-row__checkbox{cursor:pointer;flex-shrink:0;width:1.1rem;height:1.1rem;margin:0}.job-row__open{min-height:44px;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.5rem .75rem;display:grid}.job-row__open:active{transform:translateY(1px)}.job-row__delete{flex-shrink:0;margin-right:.35rem}.job-row__rename{flex-shrink:0}.job-row__rename-input{border:1px solid color-mix(in srgb, var(--wirer-accent,#2563eb) 55%, var(--wirer-fg));background:var(--wirer-surface);min-width:0;font:inherit;color:inherit;border-radius:8px;flex:1;margin:.35rem .5rem .35rem .75rem;padding:.45rem .65rem;font-weight:600}.job-row__name{font-weight:600}.job-row__meta{opacity:.75;white-space:nowrap;font-size:.875rem}.editor-screen__header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.editor-screen__title{flex:1;margin:0;font-size:1.125rem}.editor-screen__title-input{min-width:0;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;padding:.35rem .55rem;font-weight:600}.editor-screen__title-input:hover{border-color:color-mix(in srgb, var(--wirer-fg) 18%, transparent)}.editor-screen__title-input:focus{border-color:color-mix(in srgb, var(--wirer-accent,#2563eb) 55%, var(--wirer-fg));background:var(--wirer-surface);outline:none}.canvas-viewport{touch-action:none;border:1px solid color-mix(in srgb, var(--wirer-fg) 22%, var(--wirer-surface));background-color:var(--wirer-canvas);border-radius:12px;width:100%;height:clamp(340px,72vh,900px);display:block}.canvas-viewport__frame{fill:var(--wirer-canvas);stroke:color-mix(in srgb, var(--wire-black) 18%, var(--wirer-canvas));stroke-width:1px}.canvas-viewport__sheet{fill:#0000;stroke:#0000}.canvas-viewport--tool-select{cursor:default}.canvas-viewport--tool-pan{cursor:grab}.canvas-viewport--tool-place-junction{cursor:cell}.canvas-viewport--tool-place-light-bulb{cursor:copy}.canvas-viewport--tool-place-switch{cursor:pointer}.canvas-viewport--tool-place-outlet{cursor:copy}.canvas-viewport--tool-cable{cursor:crosshair}.canvas-viewport--tool-conduit-connect{cursor:ew-resize}.canvas-viewport--tool-conduit-breaker{cursor:alias}.canvas-viewport--tool-connect-wires{cursor:nesw-resize}.canvas-viewport--tool-pan .canvas-viewport__sheet,.canvas-viewport--tool-pan .canvas-pan-overlay{cursor:grab}.canvas-viewport--tool-pan .canvas-viewport__sheet:active,.canvas-viewport--tool-pan .canvas-pan-overlay:active{cursor:grabbing}.canvas-pan-overlay{fill:#0000}.canvas-viewport--tool-select .wire-hit,.canvas-viewport--tool-select .wire-link-hit,.canvas-viewport--tool-select .conduit-hit,.canvas-viewport--tool-select .cable-footprint,.canvas-viewport--tool-select .conduit-run-hit,.canvas-viewport--tool-select .hub-bridge-hit,.canvas-viewport--tool-select .hub,.canvas-viewport--tool-select .device-node-hit{cursor:pointer}.canvas-viewport--tool-select .junction-box-frame,.canvas-viewport--tool-select .light-bulb__body,.canvas-viewport--tool-select .switch-device__body,.canvas-viewport--tool-select .dimmer-device__body,.canvas-viewport--tool-select .outlet-device__body,.canvas-viewport--tool-select .junction-anchor--selected,.canvas-viewport--tool-select .path-joint-handle{cursor:grab}.canvas-viewport--tool-select .junction-box-frame:active,.canvas-viewport--tool-select .light-bulb__body:active,.canvas-viewport--tool-select .switch-device__body:active,.canvas-viewport--tool-select .dimmer-device__body:active,.canvas-viewport--tool-select .outlet-device__body:active,.canvas-viewport--tool-select .junction-anchor--selected:active,.canvas-viewport--tool-select .path-joint-handle:active{cursor:grabbing}.canvas-viewport--tool-cable .junction-anchor,.canvas-viewport--tool-cable .hub,.canvas-viewport--tool-cable .device-node-hit{cursor:crosshair}.canvas-viewport--tool-conduit-connect .junction-anchor{cursor:ew-resize}.canvas-viewport--tool-conduit-connect .conduit-run--stub-hit{cursor:crosshair}.canvas-viewport--tool-conduit-breaker .junction-anchor{cursor:alias}.canvas-viewport--tool-connect-wires .wire-endpoint-hit,.canvas-viewport--tool-connect-wires .hub,.canvas-viewport--tool-connect-wires .device-node-hit{cursor:crosshair}.selection-marquee{fill-opacity:.12;stroke-width:1.5px;vector-effect:non-scaling-stroke}.selection-marquee--crossing{fill:#3b82f626;stroke:#3b82f6}.selection-marquee--window{fill:#22c55e1f;stroke:#22c55e;stroke-dasharray:6 4}.diagram-grid{pointer-events:none}.diagram-grid__line{stroke:color-mix(in srgb, var(--wirer-fg) 10%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.diagram-grid__line--major{stroke:color-mix(in srgb, var(--wirer-fg) 14%, transparent)}.diagram-svg{isolation:isolate}.junction-box-frame{fill:var(--junction-box-fill);stroke:color-mix(in srgb, var(--junction-box-fill) 35%, #1a1a1a);stroke-width:3px}.junction-box-frame--breaker{fill:var(--junction-box-fill-breaker);stroke:color-mix(in srgb, var(--junction-box-fill-breaker) 30%, #1a1a1a);stroke-width:4px}.junction-box--selected .junction-box-frame{stroke:#2563eb}.room__outline{fill:none;stroke:#6d4fb8;stroke-width:4px;stroke-dasharray:12 8;stroke-linecap:round;pointer-events:none}.room--selected .room__outline{stroke:#5536a3;stroke-width:5px}.room__hit{fill:none;stroke:#0000;pointer-events:stroke}.room__label{fill:color-mix(in srgb, #5536a3 90%, var(--wirer-fg));pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:700}.room__handle{fill:var(--wirer-surface);stroke:#6d4fb8;stroke-width:2.5px}.canvas-viewport--tool-select .room__hit{cursor:grab}.canvas-viewport--tool-select .room__hit:active,.canvas-viewport--tool-select .room__handle:active{cursor:grabbing}.canvas-viewport--tool-select .room__handle{cursor:nwse-resize}.canvas-viewport--tool-place-room{cursor:cell}.inspector__door-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.inspector__door-item{border:1px solid color-mix(in srgb, var(--wirer-fg) 14%, transparent);border-radius:8px;gap:.35rem;padding:.65rem;display:grid}.inspector__door-field{gap:.2rem;font-size:.82rem;display:grid}.inspector__door-actions{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.diagram-labels-layer{pointer-events:none}.diagram-label{fill:#fff;paint-order:stroke fill;stroke:#1a1a1a;stroke-width:2px;stroke-linejoin:round;pointer-events:none;font-weight:600}.junction-box__label--breaker{font-weight:700}.conduit-label{opacity:.85;pointer-events:none;font-weight:500}.wire-label{font-weight:500}.junction-anchor{fill:color-mix(in srgb, var(--wirer-fg) 15%, transparent);stroke:color-mix(in srgb, var(--wirer-fg) 45%, transparent);stroke-width:1px}.junction-anchor--selected{fill:color-mix(in srgb, var(--wirer-accent) 35%, transparent);stroke:var(--wirer-accent);stroke-width:2px}.junction-handle{fill:color-mix(in srgb, var(--wirer-surface) 80%, var(--wirer-fg) 20%);stroke:var(--wirer-fg);stroke-width:1.5px;cursor:nwse-resize}.junction-handle--ne,.junction-handle--sw{cursor:nesw-resize}.diagram-svg--placing>:not(.diagram-place-overlay){pointer-events:none}.diagram-place-overlay{fill:#0000;pointer-events:all}.junction-box__handles{pointer-events:auto}.hub-slots{pointer-events:none}.hub-slot{fill:color-mix(in srgb, var(--wirer-fg) 6%, transparent);stroke:color-mix(in srgb, var(--wirer-fg) 18%, transparent);stroke-width:1.5px;stroke-dasharray:3 3}.hub-slot--filled{fill:#0000;stroke:#0000}.hub__ring{fill:color-mix(in srgb, var(--wirer-accent,#c9a227) 35%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-accent,#c9a227) 85%, var(--wirer-fg));stroke-width:2px}.hub__core{fill:color-mix(in srgb, var(--wirer-accent,#c9a227) 70%, var(--wirer-fg));stroke:none}.hub--selected .hub__ring{stroke-width:3px;stroke:var(--wirer-fg)}.hub--pending .hub__ring{stroke-dasharray:4 3;animation:.9s ease-in-out infinite hub-pulse}@keyframes hub-pulse{50%{opacity:.55}}.hub-wire-link{pointer-events:none}.hub-bridge__path{stroke:color-mix(in srgb, var(--wirer-accent,#c9a227) 90%, var(--wirer-fg));stroke-width:3px;stroke-dasharray:10 6}.hub-bridge--selected .hub-bridge__path{stroke-width:4px}.light-bulb__body{fill:color-mix(in srgb, #f5e6a8 55%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-fg) 70%, transparent);stroke-width:2px}.light-bulb--selected .light-bulb__body{stroke:var(--wirer-fg);stroke-width:3px}.light-bulb__label,.switch-device__label,.hub-label,.wire-label{pointer-events:none}.light-bulb__label{fill:var(--wirer-fg)}.switch-device__body{fill:color-mix(in srgb, var(--wirer-fg) 8%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-fg) 65%, transparent);stroke-width:2px}.switch-device--selected .switch-device__body{stroke:var(--wirer-fg);stroke-width:3px}.light-bulb--lit .light-bulb__body{fill:color-mix(in srgb, #ffe566 calc(var(--bulb-brightness,1) * 100%), color-mix(in srgb, #f5e6a8 55%, var(--wirer-surface)));filter:drop-shadow(0 0 calc(4px + var(--bulb-brightness,1) * 10px) rgba(255, 220, 80, calc(var(--bulb-brightness,1) * .75)))}.switch-device__state{fill:color-mix(in srgb, var(--wirer-fg) 75%, transparent);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:10px}.switch-device__path{stroke:color-mix(in srgb, var(--wirer-fg) 35%, transparent);stroke-width:2px;pointer-events:none}.switch-device__path--closed{stroke:#5cb85c;stroke-width:3px}.switch-device--closed .switch-device__body{fill:color-mix(in srgb, #5cb85c 12%, var(--wirer-surface))}.breaker-toggle__body{fill:color-mix(in srgb, var(--wirer-fg) 8%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-fg) 35%, var(--wirer-border));stroke-width:2px}.breaker-toggle--selected .breaker-toggle__body{stroke:var(--wirer-accent);stroke-width:2.5px}.breaker-toggle--closed .breaker-toggle__body{fill:color-mix(in srgb, #5cb85c 14%, var(--wirer-surface));stroke:color-mix(in srgb, #5cb85c 50%, var(--wirer-fg))}.breaker-toggle--open .breaker-toggle__body{fill:color-mix(in srgb, #d9534f 10%, var(--wirer-surface));stroke:color-mix(in srgb, #d9534f 45%, var(--wirer-fg))}.breaker-toggle__state{fill:var(--wirer-fg);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600}.canvas-viewport--tool-select .breaker-toggle__body{cursor:pointer}.device-node--active .device-node__core{fill:#5cb85c}.device-node--active .device-node__ring{stroke:#5cb85c}.switch-device__label{fill:var(--wirer-fg)}.dimmer-device__body{fill:color-mix(in srgb, #e6a700 10%, var(--wirer-surface));stroke:color-mix(in srgb, #e6a700 55%, var(--wirer-fg));stroke-width:2px}.dimmer-device--selected .dimmer-device__body{stroke:#e6a700;stroke-width:3px}.dimmer-device--on .dimmer-device__body{fill:color-mix(in srgb, #5cb85c 14%, var(--wirer-surface));stroke:#5cb85c}.dimmer-device__icon{fill:color-mix(in srgb, #e6a700 85%, var(--wirer-fg));pointer-events:none;-webkit-user-select:none;user-select:none;font-size:14px}.dimmer-device__state{fill:color-mix(in srgb, var(--wirer-fg) 75%, transparent);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:10px}.dimmer-device__level-track{fill:color-mix(in srgb, var(--wirer-fg) 12%, transparent);pointer-events:none}.dimmer-device__level-fill{fill:color-mix(in srgb, #e6a700 80%, var(--wirer-fg));pointer-events:none}.dimmer-device__label{fill:var(--wirer-fg)}.outlet-device__body{fill:color-mix(in srgb, var(--wirer-fg) 8%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-fg) 65%, transparent);stroke-width:2px}.outlet-device--selected .outlet-device__body{stroke:var(--wirer-fg);stroke-width:3px}.outlet-device--energized .outlet-device__body{fill:color-mix(in srgb, #5cb85c 12%, var(--wirer-surface));stroke:#5cb85c}.outlet-device__face{fill:color-mix(in srgb, var(--wirer-fg) 6%, var(--wirer-surface));stroke:color-mix(in srgb, var(--wirer-fg) 35%, transparent);stroke-width:1.5px}.outlet-device__slot-divider{stroke:color-mix(in srgb, var(--wirer-fg) 30%, transparent);stroke-width:1.5px}.outlet-device__label{fill:var(--wirer-fg)}.device-node__stub{stroke:color-mix(in srgb, #6b9bd1 55%, var(--wirer-fg));stroke-width:2px;pointer-events:none}.device-node__ring{fill:var(--wirer-surface);stroke:color-mix(in srgb, #4a7eb8 90%, var(--wirer-fg));stroke-width:2.5px}.device-node__core{fill:color-mix(in srgb, #6b9bd1 70%, var(--wirer-fg));stroke:none}.device-node--conduit .device-node__ring{stroke:color-mix(in srgb, #6b9bd1 95%, var(--wirer-fg))}.device-node--selected .device-node__ring{stroke-width:3px;stroke:var(--wirer-fg)}.device-node--pending .device-node__ring{stroke-dasharray:4 3;animation:.9s ease-in-out infinite hub-pulse}.device-wire-link{stroke:color-mix(in srgb, #6b9bd1 75%, var(--wirer-fg));stroke-width:2px;stroke-dasharray:5 4;pointer-events:none}.inspector__wire-list{opacity:.9;margin:.5rem 0 0;padding-left:1.1rem;font-size:.88rem}.editor-screen{padding:1rem 1.25rem}.editor-screen--deck{flex-direction:column;min-height:0;display:flex}.editor-screen--deck .editor-screen__header,.editor-screen--deck .editor-toolbar{flex-shrink:0}.editor-screen--deck .editor-screen__header{margin-bottom:.75rem}.editor-screen__helper{opacity:.75;flex-shrink:0;margin-top:.75rem;font-size:.85rem}.editor-screen__main{flex-direction:column;flex:1;gap:1rem;min-height:0;display:flex}.editor-screen__canvas-col{flex-direction:column;flex:1;width:100%;min-width:0;min-height:0;display:flex}.editor-screen__viewport{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.canvas-viewport-shell{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.canvas-viewport-shell .canvas-viewport{flex:1;min-height:0}.canvas-zoom-controls{z-index:6;border:1px solid color-mix(in srgb, var(--wirer-fg) 22%, var(--wirer-surface));background:color-mix(in srgb, var(--wirer-surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:stretch;display:flex;position:absolute;bottom:.65rem;right:.65rem;overflow:hidden;box-shadow:0 4px 18px #00000024}.canvas-zoom-controls__btn{min-width:44px;min-height:44px;color:var(--wirer-fg);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 .65rem;font-size:1.25rem;font-weight:600;line-height:1}.canvas-zoom-controls__btn+.canvas-zoom-controls__btn{border-left:1px solid color-mix(in srgb, var(--wirer-fg) 14%, var(--wirer-surface))}.canvas-zoom-controls__btn--label{letter-spacing:.01em;min-width:3.6rem;font-size:.82rem;font-weight:650}.canvas-zoom-controls__btn:active{background:color-mix(in srgb, var(--wirer-fg) 10%, var(--wirer-surface))}.editor-panel{flex-direction:column;min-height:0;display:flex}.editor-panel__toggle{border:1px solid color-mix(in srgb, var(--wirer-fg) 22%, var(--wirer-surface));background:var(--wirer-surface);min-height:44px;color:var(--wirer-fg);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:0 .85rem;font-size:.875rem;font-weight:600;display:inline-flex;box-shadow:0 4px 16px #0000001f}.editor-panel__toggle-icon{border-bottom:2px solid;border-right:2px solid;width:14px;height:14px;transition:transform .18s;transform:rotate(-135deg)}.editor-panel--open .editor-panel__toggle-icon{transform:rotate(45deg)}.editor-panel__content{flex-direction:column;gap:1rem;min-height:0;display:flex}.editor-panel__content[hidden]{display:none!important}.editor-panel__inspector-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:1rem;min-height:0;display:flex;overflow-y:auto}@media (width<=767px){html,body,#root{height:100%;overflow:hidden}.app--editor{flex-direction:column;max-width:none;height:100dvh;margin:0;display:flex;overflow:hidden}.app--editor .editor-screen--deck{min-height:0;padding:.55rem .65rem 0;padding-bottom:max(.35rem, env(safe-area-inset-bottom,0px));flex:1}.editor-screen--deck .editor-screen__header{gap:.45rem;margin-bottom:.45rem}.editor-screen--deck .editor-screen__title{font-size:1rem}.editor-screen--deck .editor-screen__header .btn{min-height:40px;padding:0 .65rem;font-size:.875rem}.editor-toolbar{margin-bottom:.45rem}.toolbar-btn__key{display:none}.toolbar-variant-select{max-width:6.5rem;font-size:.78rem}.editor-screen__main{gap:0;position:relative}.canvas-viewport{border-radius:10px;height:100%;max-height:none}.editor-panel{z-index:30;pointer-events:none;padding:0 .65rem max(.55rem, env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0}.editor-panel__toggle{pointer-events:auto;margin:0 auto}.editor-panel--collapsed .editor-panel__toggle{margin-bottom:0}.editor-panel--open .editor-panel__content{pointer-events:auto;border:1px solid color-mix(in srgb, var(--wirer-fg) 18%, var(--wirer-surface));background:var(--wirer-surface);border-radius:14px 14px 0 0;max-height:min(52vh,460px);margin-top:.45rem;padding:.65rem .75rem .85rem;box-shadow:0 -10px 36px #0000002e}.editor-panel--open .editor-panel__inspector-scroll{max-height:calc(min(52vh,460px) - 1rem)}.editor-panel--open .inspector{background:0 0;border:none;padding:0}.editor-screen__helper{display:none}.canvas-zoom-controls{right:.5rem;bottom:calc(4.25rem + env(safe-area-inset-bottom,0px))}.editor-panel--open .canvas-zoom-controls{bottom:calc(min(52vh, 460px) + 1rem + env(safe-area-inset-bottom,0px))}}@media (width>=768px){.app--editor{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app--editor .editor-screen--deck{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.editor-screen--deck .editor-screen__banner{flex-shrink:0}.editor-screen__main{flex-direction:row;flex:1;align-items:stretch;gap:1.25rem;min-height:0}.editor-screen__canvas-col{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.editor-screen__viewport{flex:1;min-height:0;display:flex}.editor-screen__viewport .canvas-viewport{flex:1;height:auto;min-height:0;max-height:none}.editor-screen__sidebar,.editor-panel{flex-shrink:0;width:min(320px,34vw);min-height:0;max-height:100%}.editor-panel--collapsed{align-items:flex-end;width:auto}.editor-panel--collapsed .editor-panel__content{display:none!important}.editor-panel--open .editor-panel__content{flex:1;overflow:hidden}.editor-panel--open .editor-panel__inspector-scroll{flex:1;padding-right:.15rem}.editor-panel__toggle{box-shadow:none;border-radius:10px;align-self:flex-end}.editor-panel--collapsed .editor-panel__toggle{writing-mode:vertical-rl;text-orientation:mixed;border-radius:10px 0 0 10px;min-height:7rem;padding:.75rem .55rem}.editor-panel--collapsed .editor-panel__toggle-icon{transform:rotate(-45deg)}.editor-panel>.issues-panel{flex-shrink:0}.editor-screen--deck .editor-screen__helper{flex-shrink:0;margin-top:.35rem}}.wire-link__path--selected{stroke-width:5.5px;filter:drop-shadow(0 0 3px #2563eb99)}.issues-panel{border:1px solid color-mix(in srgb, var(--wirer-fg) 18%, var(--wirer-surface));background:color-mix(in srgb, var(--wirer-fg) 4%, var(--wirer-surface));border-radius:12px;padding:1rem 1.1rem}.issues-panel__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.75rem;display:flex}.issues-panel__title{margin:0;font-size:1rem}.issues-panel__actions{flex-wrap:wrap;gap:.45rem;display:flex}.issues-panel__block+.issues-panel__block{border-top:1px solid color-mix(in srgb, var(--wirer-fg) 12%, var(--wirer-surface));margin-top:.85rem;padding-top:.85rem}.issues-panel__subtitle{text-transform:uppercase;letter-spacing:.04em;opacity:.78;margin:0 0 .45rem;font-size:.82rem;font-weight:650}.issues-panel__empty{opacity:.75;margin:0;font-size:.88rem}.issues-panel__list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.issues-panel__row{text-align:left;border:1px solid color-mix(in srgb, var(--wirer-fg) 16%, var(--wirer-surface));background:var(--wirer-surface);width:100%;font:inherit;color:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.issues-panel__row:hover{background:color-mix(in srgb, var(--wirer-fg) 6%, var(--wirer-surface))}.issues-panel__row--selected{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb66}.issues-panel__row-label{font-size:.9rem;font-weight:600}.issues-panel__row-meta{opacity:.72;text-transform:uppercase;font-size:.8rem}.inspector{border:1px solid color-mix(in srgb, var(--wirer-fg) 18%, var(--wirer-surface));background:color-mix(in srgb, var(--wirer-fg) 4%, var(--wirer-surface));border-radius:12px;padding:1rem 1.1rem}.inspector__title{margin:0 0 .5rem;font-size:1rem}.inspector__meta{opacity:.88;margin:0 0 1rem;font-size:.9rem}.inspector__empty{opacity:.8;margin:0;font-size:.9rem}.inspector__field{flex-direction:column;gap:.35rem;margin-bottom:.85rem;font-weight:600;display:flex}.inspector__label{font-size:.85rem}.inspector__input{min-height:40px;font:inherit;border:1px solid color-mix(in srgb, var(--wirer-fg) 35%, var(--wirer-surface));background:var(--wirer-surface);color:inherit;border-radius:8px;padding:0 .5rem}.inspector__range{accent-color:#e6a700;width:100%}.inspector__hint{opacity:.82;margin:0;font-size:.82rem;font-weight:400}.conduit-dialog{border:1px solid color-mix(in srgb, var(--wirer-fg) 20%, var(--wirer-surface));color:var(--wirer-fg);background-color:var(--wirer-surface);border-radius:12px;max-width:min(420px,92vw);padding:0}.conduit-dialog::backdrop{background:#00000073}.conduit-dialog__form{flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.conduit-dialog__title{margin:0;font-size:1.125rem}.conduit-dialog__hint{opacity:.85;margin:0;font-size:.9rem}.conduit-dialog__field{flex-direction:column;gap:.35rem;font-weight:600;display:flex}.conduit-dialog__field--inline{flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem}.conduit-dialog__field input,.conduit-dialog__field select{min-height:40px;font:inherit;border:1px solid color-mix(in srgb, var(--wirer-fg) 35%, var(--wirer-surface));background:var(--wirer-surface);color:inherit;border-radius:8px;padding:0 .5rem}.conduit-dialog__wires{flex-direction:column;gap:.5rem;max-height:40vh;display:flex;overflow:auto}.conduit-dialog__actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.wire-stroke{stroke-width:5.5px;fill:none;pointer-events:none}.wire-stroke--red{stroke:var(--wire-red)}.wire-stroke--black{stroke:var(--wire-black)}.wire-stroke--white{stroke:var(--wire-white)}.wire-chevron{fill:#facc15;stroke:#ca8a04;stroke-width:.75px;paint-order:stroke fill;pointer-events:none}.wire-chevron-group--conflict .wire-chevron{fill:color-mix(in srgb, #b91c1c 75%, var(--wirer-fg));stroke:#ef4444;stroke-width:1.35px;paint-order:stroke fill}.wire-stroke--selected{stroke-width:7.5px;filter:drop-shadow(0 0 3px #2563eb8c)}.wire-stroke--pending-link{stroke-width:7.5px;filter:drop-shadow(0 0 3px #ca8a048c)}.wire-endpoint-hit{fill:#2563eb40;stroke:#2563eb;stroke-width:2px;pointer-events:all}.wire-endpoint-hit--linked{fill:#16a34a4d;stroke:#16a34a}.wire-endpoint-hit--pending{fill:#ca8a0459;stroke:#ca8a04;stroke-width:3px}.wire-link__path{fill:none;stroke-width:4.5px;stroke-dasharray:8 6;stroke-linecap:round;pointer-events:none}.wire-link__warn-bg{fill:color-mix(in srgb, #fef3c7 90%, var(--wirer-surface));stroke:#b45309;stroke-width:1.25px}.wire-link__warn-icon{fill:#92400e;pointer-events:none;font-size:12px;font-weight:800}.editor-screen__banner{background:color-mix(in srgb, #fef3c7 35%, var(--wirer-surface));border:1px solid #b45309;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.75rem;margin:0 0 .75rem;padding:.65rem .9rem;font-size:.9rem;display:flex}.editor-screen__banner p{margin:0}.editor-screen__banner button{flex-shrink:0}.path-nudge{margin:.75rem 0}.path-nudge__grid{grid-template-rows:2.25rem 2.25rem 2.25rem;grid-template-columns:2.25rem 2.25rem 2.25rem;justify-content:start;gap:.35rem;margin-top:.35rem;display:grid}.path-nudge__btn{min-width:2.25rem;padding:.2rem .35rem;font-size:1rem;line-height:1}.path-nudge__center{color:color-mix(in srgb, var(--wirer-fg) 55%, transparent);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.path-joint-handles{pointer-events:none}.path-joint-handle{fill:var(--wirer-surface);stroke:#2563eb;stroke-width:2.5px;pointer-events:all}.path-joint-handle:active{fill:#dbeafe}.path-joint-handle--selected{fill:#dbeafe;stroke:#1d4ed8;filter:drop-shadow(0 0 2px #2563eb73)}.conduit-bundle--selected .path-joint-handle,.wire-link--selected .path-joint-handle{stroke:#1d4ed8;filter:drop-shadow(0 0 2px #2563eb73)}
