.planner-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.mlabel{font:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;background:var(--chakra-colors-accent);color:var(--chakra-colors-accent-fg);cursor:pointer;pointer-events:auto;border:0;border-radius:6px;padding:3px 8px;font-size:12.5px;font-weight:600;position:absolute;top:0;left:0;transform:translate(-50%,-140%)}.mlabel:hover{filter:brightness(1.1)}.mlabel:focus-visible{outline:2px solid var(--chakra-colors-accent);outline-offset:2px}.mlabel.pending{pointer-events:none;opacity:.85}.fp-scan{pointer-events:none;background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--chakra-colors-bg) 55%, transparent) 50%, transparent 100%);background-repeat:no-repeat;background-size:100% 40%;animation:2.4s ease-in-out infinite fp-scan}@keyframes fp-scan{0%{background-position:0 -60%}to{background-position:0 160%}}.fp-progress{background-image:linear-gradient(90deg,#0000 0%,#ffffff59 50%,#0000 100%);background-size:200% 100%;animation:1.6s linear infinite fp-sheen}@keyframes fp-sheen{0%{background-position:150% 0}to{background-position:-50% 0}}.planner-ghost{pointer-events:none;filter:grayscale()contrast(1.2);mix-blend-mode:multiply;opacity:.22;background-position:50%;background-repeat:no-repeat;background-size:contain;animation:.4s ease-out planner-ghost-in;position:absolute;inset:12%}@keyframes planner-ghost-in{0%{opacity:0;transform:scale(.98)}}.planner-skeleton{animation:1.8s ease-in-out infinite planner-pulse}@keyframes planner-pulse{50%{opacity:.45}}.planner-hint{animation:.22s ease-out .35s both planner-hint-in}@keyframes planner-hint-in{0%{opacity:0;transform:translateY(6px)}}.planner-empty{animation:.25s ease-out .15s both planner-empty-in}@keyframes planner-empty-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.fp-scan,.fp-progress,.planner-skeleton,.planner-ghost,.planner-hint,.planner-empty{animation:none}}.mlabel.live{pointer-events:none;background:color-mix(in srgb, var(--chakra-colors-bg-panel) 92%, transparent);color:var(--chakra-colors-fg-muted);border:1px solid var(--chakra-colors-border);border-radius:999px;padding:1px 6px;font-size:11px;font-weight:500;transform:translate(-50%,-50%);box-shadow:0 1px 2px #0000000f}.plan2d{--plan-floor:#fff;--plan-wall:#3a3a3a;--plan-line:#a3a3a3;--plan-window:#525252;--plan-piece:#fbfbfb;--plan-piece-line:#9a9a9a;--plan-selected:#171717;--plan-text:#3f3f3f;--plan-text-muted:#7a7a7a;--plan-halo:#ffffffe6;--plan-handle:#525252;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;font-family:inherit;position:absolute;inset:0;overflow:hidden}.dark .plan2d{--plan-floor:#2a2a2a;--plan-wall:#d4d4d4;--plan-line:#8a8a8a;--plan-window:#bdbdbd;--plan-piece:#333;--plan-piece-line:#7a7a7a;--plan-selected:#fafafa;--plan-text:#e5e5e5;--plan-text-muted:#a3a3a3;--plan-halo:#1e1e1ed9;--plan-handle:#d4d4d4}.plan2d path,.plan2d circle{vector-effect:non-scaling-stroke}.plan2d .plan-floor{fill:var(--plan-tint,var(--plan-floor));stroke:none}.dark .plan2d .plan-floor{fill:var(--plan-floor)}.plan2d .plan-floor-model{stroke:var(--plan-wall);stroke-width:2px}.plan2d .plan-wall{fill:var(--plan-wall);stroke:var(--plan-wall);stroke-width:.5px;stroke-linejoin:miter}.plan2d .plan-window-fill{fill:var(--plan-floor);stroke:none}.plan2d .plan-window{fill:none;stroke:var(--plan-window);stroke-width:1px}.plan2d .plan-door{fill:none;stroke:var(--plan-line);stroke-width:1px;stroke-linecap:round}.plan2d .plan-door-leaf{fill:none;stroke:var(--plan-window);stroke-width:1.75px;stroke-linecap:round}.plan2d .plan-piece-body{fill:var(--plan-piece);stroke:var(--plan-piece-line);stroke-width:1.1px;stroke-linejoin:round}.plan2d .plan-piece.selected .plan-piece-body{stroke:var(--plan-selected);stroke-width:1.75px}.plan2d text{paint-order:stroke;stroke:var(--plan-halo);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.plan2d .plan-room-name{fill:var(--plan-text);font-size:12.5px;font-weight:600}.plan2d .plan-room-area{fill:var(--plan-text-muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.plan2d .plan-piece-label{fill:var(--plan-text-muted);font-size:10.5px;font-weight:500}.plan2d .plan-measure{fill:none;stroke:var(--plan-selected);stroke-width:1.5px}.plan2d .plan-measure-dot,.plan2d .plan-hover{fill:var(--plan-selected);stroke:none}.plan2d .plan-live{fill:none;stroke:var(--plan-handle);stroke-width:1px;opacity:.9}.plan2d .plan-ring{fill:none;stroke:var(--plan-handle);stroke-width:1.25px;opacity:.55}.plan2d .plan-knob,.plan2d .plan-handles{fill:var(--plan-floor);stroke:var(--plan-handle);stroke-width:1.5px}
