.electrical-layer{color:#c62828;pointer-events:none}.electrical-symbol{fill:#fff;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.electrical-wire{fill:none;stroke:currentColor;stroke-linejoin:round}.electrical-draft{fill:none;stroke:#c62828}.electrical-wall-snap{stroke:#c62828;opacity:.65}.electrical-wire-selection{fill:none;stroke:#ef9a9a;opacity:.6}.electrical-vertex{fill:#fff;stroke:#c62828}.wall-device-hover{fill:none;stroke:#c62828;opacity:.45}.electrical-point-selection{fill:#ffebee;stroke:#c62828}.electrical-label,.electrical-cable-label{fill:currentColor;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.electrical-cable-label{font-weight:600}.electrical-symbol .electrical-stack-count{fill:currentColor;stroke:none;font-weight:600}.plan2d svg{touch-action:none;-webkit-user-select:none;user-select:none;display:block}.grid-minor{stroke:#e6e6e2;stroke-width:1px;fill:none}.grid-major{stroke:#cfcfc9;stroke-width:1px;fill:none}.room{fill:#fff}.room-label{fill:#111;paint-order:stroke;stroke:#fff;stroke-width:4px;pointer-events:none;font:600 13px ui-sans-serif,system-ui,sans-serif}.outline{fill:none;stroke:#111;stroke-width:1.9px;stroke-linejoin:miter;pointer-events:none}.wall-hover{fill:#2563eb2e;pointer-events:none}.wall-selected{fill:#2563eb47;stroke:#2563eb;stroke-width:2px;pointer-events:none}.opening-gap{fill:#fff}.opening line,.opening path{stroke:#111;stroke-width:1.2px;fill:none}.opening .thin{stroke-width:.7px}.opening .jamb{stroke-width:1.8px}.opening .leaf{stroke-width:1.6px}.opening .swing{stroke-width:.8px;stroke-dasharray:4 3}.opening.selected line,.opening.selected path{stroke:#1d4ed8}.sel-box{fill:#3b82f624;stroke:#1d4ed8!important;stroke-width:1px!important}.dim-line{stroke:#111;stroke-width:.8px}.dim-ext{stroke:#111;stroke-width:.6px}.dim-tick{stroke:#111;stroke-width:1.4px}.dim-text{fill:#111;paint-order:stroke;stroke:#ffffffd9;stroke-width:3px;pointer-events:none;font:500 12px ui-sans-serif,system-ui,sans-serif}.dim-sel .dim-line,.dim-sel .dim-ext,.dim-sel .dim-tick{stroke:#2563eb}.dim-sel .dim-text{fill:#1d4ed8;font-weight:700}.dim-clear .dim-line,.dim-clear .dim-tick{stroke:#c2410c;stroke-dasharray:5 3}.dim-clear .dim-tick{stroke-dasharray:none}.dim-clear .dim-text{fill:#c2410c;font-weight:700}.dim-live .dim-line,.dim-live .dim-ext,.dim-live .dim-tick{stroke:#2563eb}.dim-live .dim-text{fill:#1d4ed8;font-size:13px;font-weight:700}.dim-typed .dim-line,.dim-typed .dim-ext,.dim-typed .dim-tick{stroke:#dc2626}.dim-typed .dim-text{fill:#dc2626;font-size:15px;font-weight:800}.node{fill:#fff;stroke:#1d4ed8;stroke-width:1.2px;pointer-events:none}.node.free{fill:#fb923c;stroke:#c2410c}.end-badge{fill:#2563eb}.end-text{fill:#fff;pointer-events:none;font:700 11px ui-sans-serif,system-ui,sans-serif}.preview{stroke:#2563eb59;stroke-linecap:butt}.ghost{stroke:#2563eb66}.ghost.bad{stroke:#dc262666}.ray{stroke:#16a34a;stroke-width:1px;stroke-dasharray:5 5;opacity:.45;pointer-events:none}.ray.active{opacity:1;stroke-width:1.4px}.angle-arc{fill:none;stroke:#dc2626;stroke-width:1.2px;pointer-events:none}.angle-dot{fill:#dc2626;pointer-events:none}.angle-text{fill:#dc2626;paint-order:stroke;stroke:#fff;stroke-width:4px;pointer-events:none;font:700 12px ui-sans-serif,system-ui,sans-serif}.align-guide{stroke:#c026d3;stroke-width:1px;stroke-dasharray:2 4;pointer-events:none}.snap-zone{fill:#dc26261a;stroke:none;pointer-events:none}.snap-dot{fill:#dc2626;pointer-events:none}.snap-node.snap-zone{fill:#16a34a29}.snap-node.snap-dot{fill:#16a34a}.snap-wall.snap-zone{fill:#d9770629}.snap-wall.snap-dot{fill:#d97706}.snap-align.snap-dot{fill:#c026d3}.handle{fill:#fff;stroke:#2563eb;stroke-width:1.6px}.chip-input{text-align:center;color:#1d4ed8;background:#fff;border:1px solid #2563eb;border-radius:4px;width:62px;padding:2px 4px;font:600 12px ui-sans-serif,system-ui,sans-serif;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000026}.chip-input:focus{outline:2px solid #2563eb59}.plan2d.over{background:0 0}.plan2d.over .room,.plan2d.over .wallfill,.plan2d.over .opening-gap{fill:none}.plan2d.over .grid-minor{stroke:#0000000d}.plan2d.over .grid-major{stroke:#00000017}.plan2d.over .outline{stroke:#0b0b0b}.plan2d.over .dim-text,.plan2d.over .room-label{stroke:#ffffffe6}.dim-open .dim-line,.dim-open .dim-ext{stroke:#555;stroke-width:.6px}.dim-open .dim-text{fill:#333;font-size:11px;font-weight:500}.furn-lines>*{fill:none;stroke:#444;stroke-width:.8px}.furn-lines .furn-outline{fill:#fafafa;stroke:#262626;stroke-width:1.15px}.furn-lines .furn-surface{fill:#f1f1f1}.furn-lines [data-part=front],.furn-lines [data-part=back]{fill:#e2e2e2;stroke:#535353}.furn-lines .furn-fine{stroke:#747474;stroke-width:.6px}.furn-lines [data-part=canopy],.furn-lines [data-part=overhead]{stroke-dasharray:8 5}.furn-lines [data-part=handle],.furn-lines [data-part=control]{stroke:#303030;stroke-width:1.2px}.beam-bearing{stroke:#262626;stroke-width:3.2px;stroke-linecap:butt;pointer-events:none}.furn.ghost{opacity:.6}.furn-seam{stroke:#f59e0b;stroke-width:3px;stroke-linecap:round;pointer-events:none}.furn-collide{fill:#dc262629;stroke:#dc2626;stroke-width:2.2px;pointer-events:none}.furn-sel{fill:#2563eb1a;stroke:#2563eb;stroke-width:1.6px}.furn-label{fill:#666;pointer-events:none;paint-order:stroke;stroke:#fffc;stroke-width:2.5px;font:500 10px ui-sans-serif,system-ui,sans-serif}.frot-handle{fill:#fff;stroke:#2563eb;stroke-width:1.6px;cursor:grab}.fsize-handle{fill:#fff;stroke:#2563eb;stroke-width:1.4px}.fsize .fsize-handle,.fsize .fsize-arrow{transform-box:view-box;transform-origin:0 0}.fsize .fsize-handle{transition:opacity .14s,transform .16s cubic-bezier(.2,.8,.2,1)}.fsize .fsize-arrow{fill:#2563eb;stroke:#fff;stroke-width:1.2px;stroke-linejoin:round;opacity:0;pointer-events:none;transition:opacity .14s,transform .18s cubic-bezier(.2,.9,.3,1.25);transform:scale(.2)}.fsize.on .fsize-handle{opacity:0;transform:scale(.2)}.fsize.on .fsize-arrow{opacity:1;transform:scale(1)}.fsize-guide{stroke:#2563eb;stroke-width:1.2px;stroke-dasharray:1.5 4;stroke-linecap:round;pointer-events:none}.fsize-pill{animation:.14s cubic-bezier(.2,.9,.3,1.2) fsize-pill-in}.fsize-pill-bg{fill:#2563eb}.fsize-pill-text{fill:#fff;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font:600 12px ui-sans-serif,system-ui,sans-serif}@keyframes fsize-pill-in{0%{opacity:0;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.fsize .fsize-handle,.fsize .fsize-arrow,.fsize-pill{transition:none;animation:none}}.glyph{pointer-events:none}.glyph .glyph-base,.glyph .glyph-arrow{transform-origin:0 0}.glyph .glyph-base{transition:opacity .14s,transform .16s cubic-bezier(.2,.8,.2,1)}.glyph .glyph-arrow{fill:#2563eb;stroke:#fff;stroke-width:1.2px;stroke-linejoin:round;opacity:0;transition:opacity .14s,transform .18s cubic-bezier(.2,.9,.3,1.25);transform:scale(.2)}.glyph.warm .glyph-arrow{fill:#fb923c}.glyph.on .glyph-base{opacity:0;transform:scale(.2)}.glyph.on .glyph-arrow{opacity:1;transform:scale(1)}@media (prefers-reduced-motion:reduce){.glyph .glyph-base,.glyph .glyph-arrow{transition:none}}.frotg{pointer-events:none}.frotg .frot-handle{cursor:inherit}.frotg-dot,.frotg-arrow{transform-origin:0 0}.frotg-dot{transition:opacity .14s,transform .16s cubic-bezier(.2,.8,.2,1)}.frotg-arrow{opacity:0;pointer-events:none;transition:opacity .14s,transform .18s cubic-bezier(.2,.9,.3,1.25);transform:scale(.2)}.frotg-arc{fill:none;stroke:#2563eb;stroke-width:2.6px;stroke-linecap:round}.frotg-head{fill:#2563eb;stroke:#2563eb;stroke-width:1.2px;stroke-linejoin:round}.frotg.on .frotg-dot{opacity:0;transform:scale(.2)}.frotg.on .frotg-arrow{opacity:1;transform:scale(1)}@media (prefers-reduced-motion:reduce){.frotg-dot,.frotg-arrow{transition:none}}.frot-line{stroke:#2563eb;stroke-width:1px}.plan2d.over .furn-lines>*{fill:none}.marquee{fill:#2563eb14;stroke:#2563eb;stroke-width:1px;stroke-dasharray:4 3;pointer-events:none}.below-floor{fill:#78828c29;stroke:#78828c73;stroke-width:.8px;pointer-events:none}.dim-arc .dim-text{font-style:italic}.dim-hit{fill:#0000;cursor:default;pointer-events:all}.dim-capsule{fill:#fff;stroke:#2563eb;stroke-width:1px;pointer-events:none}.dim-capsule-text{fill:#1d4ed8;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;font:600 12px ui-sans-serif,system-ui,sans-serif}.dim-hot .dim-line,.dim-hot .dim-ext,.dim-hot .dim-tick{stroke:#2563eb;stroke-width:2px}.dim-measure{stroke:#2563eb;stroke-width:4px;stroke-linecap:round;opacity:.45;pointer-events:none}.plan2d:not(.can-edit) .dim-hit{display:none}.axis-line{stroke:#b4405a;stroke-width:.9px;stroke-dasharray:14 4 2 4;fill:none}.axis-line.selected{stroke:#2563eb;stroke-width:1.6px}.axis-bubble{fill:#fff;stroke:#b4405a;stroke-width:1.1px}.axis-bubble.selected{stroke:#2563eb}.axis-text{fill:#b4405a;pointer-events:none;font:700 12px ui-sans-serif,system-ui,sans-serif}.dim-axis .dim-line,.dim-axis .dim-tick,.dim-axis .dim-ext{stroke:#b4405a}.dim-axis .dim-text{fill:#8a2c42}.dim-facade .dim-line,.dim-facade .dim-ext{stroke-width:.7px}.dim-facade .dim-text{font-weight:600}.wallfill.layer{stroke:#333;stroke-width:.8px}.plan2d.over .wallfill.layer{stroke:none}.issue-poly{fill:#dc262638;stroke:#dc2626;stroke-width:1.2px;stroke-dasharray:5 3;pointer-events:none}.issue.warn .issue-poly{fill:#d9770633;stroke:#d97706}.issue-dot{fill:#dc2626;pointer-events:none}.issue.warn .issue-dot{fill:#d97706}.issue-mark{fill:#fff;pointer-events:none;font:800 12px ui-sans-serif,system-ui,sans-serif}.opening .leaf-rect{fill:#fff;stroke:#111;stroke-width:1.2px}.wall-state{pointer-events:none}.wall-lb{fill:#1f1f22;stroke:#000;stroke-width:1px}.wall-demo{fill:url(#h-demo);stroke:#dc2626;stroke-width:1.4px;stroke-dasharray:6 3}.wall-new{fill:#16a34a4d;stroke:#16a34a;stroke-width:1.4px}.wall-new.wall-lb{fill:#1f1f22d9}.plan2d.over .wall-lb{fill:#00000073}.snap-shape{fill:#fff;stroke:#6366f1;stroke-width:1.6px;pointer-events:none}.snap-shape.snap-node{stroke:#16a34a}.snap-shape.snap-mid{stroke:#6366f1;fill:#fff}.snap-shape.snap-cross,.snap-shape.snap-cross line{stroke:#c026d3;fill:none}.snap-shape.snap-align{stroke:#c026d3}.snap-shape.snap-wall{stroke:#d97706}.snap-mid.snap-zone{fill:#6366f124}.snap-cross.snap-zone{fill:#c026d31f}.room-name{fill:#111;paint-order:stroke;stroke:#ffffffd9;stroke-width:3.5px;pointer-events:none;font:700 13px ui-sans-serif,system-ui,sans-serif}.room-sel{fill:#2563eb1a;stroke:#2563eb;stroke-width:2px;stroke-dasharray:6 4;pointer-events:none}.plan2d.over .room{fill:none!important}.plan2d{background:#f6f6f4;overflow:hidden}:root[data-canvas=dark] .plan2d:not(.over){filter:invert(.92)hue-rotate(180deg)}.plan2d.blueprint,:root[data-canvas=dark] .plan2d.blueprint:not(.over){filter:none;background:#1d4f9f}.plan2d.blueprint svg{filter:invert()hue-rotate(180deg);mix-blend-mode:screen}.rulers{z-index:3;pointer-events:none;position:absolute;inset:0}.ruler,.ruler-corner{pointer-events:auto;background:#fbfbf8;border:0 solid #cfcfc9;position:absolute}.ruler-corner{border-bottom-width:1px;border-right-width:1px}.ruler--top{cursor:row-resize;border-bottom-width:1px;top:0}.ruler--left{cursor:col-resize;border-right-width:1px}.ruler svg{display:block}.ruler-tick{stroke:#666;stroke-width:1px}.ruler-label{fill:#555;-webkit-user-select:none;user-select:none;pointer-events:none;font:500 9px ui-sans-serif,system-ui,sans-serif}.ruler-axis{stroke:#b4405a;stroke-width:2px}.tape-line{stroke:#2563eb;stroke-width:1.4px;stroke-dasharray:6 4}.tape-dot{fill:#fff;stroke:#2563eb;stroke-width:1.6px}.paint-hover{fill:#2563eb24;stroke:#2563eb;pointer-events:none}.wall-paint{stroke:#00000040;stroke-width:.5px;vector-effect:non-scaling-stroke;pointer-events:none}.paint-hover-wall{stroke:#2563eb;stroke-linecap:round;pointer-events:none}.paint-hover.walls{fill:#2563eb0d;stroke:none}.draft-outline{fill:none;stroke:#d9822b;stroke-width:2.4px;stroke-linejoin:miter;pointer-events:none}.draft-joint{fill:#ef444429;stroke:none;pointer-events:none}.dim-draft .dim-line,.dim-draft .dim-ext,.dim-draft .dim-tick{stroke:#1f2328}.dim-draft .dim-text{fill:#111;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:13px;font-weight:700}.pivot-zone{fill:#16a34a17;stroke:none;pointer-events:none}.electrical-wire-casing{fill:none;stroke:#fff;stroke-linejoin:round}.electrical-port{fill:#fff;stroke:currentColor}.electrical-port--used{fill:currentColor}.electrical-box-count{fill:currentColor;font-weight:600}.electrical-label-leader{stroke:currentColor;opacity:.45;stroke-dasharray:2 2}.electrical-label-box{fill:#fff;stroke:currentColor}.view3d.under{pointer-events:none}.view3d{overflow:hidden}.view3d canvas{display:block}.hint3d{color:var(--color-text-muted);pointer-events:none;font-size:12px;position:absolute;bottom:8px;left:10px}.labels3d{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label3d{color:#222;text-align:center;white-space:nowrap;background:#ffffffed;border-radius:12px;padding:3px 9px 4px;font-size:11px;line-height:1.25;display:none;position:absolute;top:0;left:0;box-shadow:0 1px 6px #0000002e}.label3d b{font-size:12px;display:block}.label3d span{color:#666}.crosshair{pointer-events:none;border:1.5px solid #ffffffe6;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000059}.walk-hint{color:#fff;pointer-events:none;white-space:nowrap;background:#14181ec7;border-radius:8px;padding:6px 12px;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.pill3d{color:var(--color-surface);background:var(--color-accent);border-radius:var(--radius-full);font:var(--type-caption);font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:3;padding:2px 9px;font-weight:600;animation:.14s cubic-bezier(.2,.9,.3,1.2) pill3d-in;display:none;position:absolute;top:0;left:0}@keyframes pill3d-in{0%{opacity:0;scale:.7}}@media (prefers-reduced-motion:reduce){.pill3d{animation:none}}
