:root{--bg:#fff;--fg:#1d2329;--muted:#66707a;--line:#d9dee3;--wall:#2b3138;--accent:#0b6bcb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);flex-direction:column;font:15px/1.4 system-ui,sans-serif;display:flex}header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;display:flex}h1{margin:0 8px 0 0;font-size:17px}.muted{color:var(--muted)}button,.button,select{font:inherit;border:1px solid var(--line);color:var(--fg);cursor:pointer;background:#f5f7f9;border-radius:8px;padding:6px 12px}main{flex:1;min-height:0;display:flex}#stage{touch-action:none;flex:1;min-width:0;position:relative;overflow:hidden}#hint{pointer-events:none;margin:0;font-size:13px;position:absolute;bottom:8px;left:16px}#panel{border-left:1px solid var(--line);width:400px;max-width:45vw;padding:12px 16px;font-size:14px;overflow:auto}#panel h2{margin:12px 0 6px;font-size:15px}#panel table{border-collapse:collapse;width:100%}#panel td,#panel th{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:3px 4px}#panel td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}#panel .warn{color:#a3470a}svg.plan{cursor:crosshair;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.grid-minor{stroke:#eef1f4;stroke-width:1px;vector-effect:non-scaling-stroke}.grid-major{stroke:#e1e6eb;stroke-width:1px;vector-effect:non-scaling-stroke}.room{stroke:none}.wall{fill:var(--wall)}.wall-shared{fill:#46505b}.opening-cut{fill:#fff}.door{stroke:#b06a00;stroke-width:2px;vector-effect:non-scaling-stroke}.window{stroke:#1e88c8;stroke-width:1.5px;vector-effect:non-scaling-stroke}.opening{stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.item{fill:#78828c2e;stroke:#7a848e;stroke-width:1px;vector-effect:non-scaling-stroke}.item-label{fill:#4b545d}.room-name{fill:var(--fg);font-weight:600}.room-info{fill:var(--muted)}.dim{fill:#55606b;font-variant-numeric:tabular-nums}.scale{stroke:var(--fg);stroke-width:1.5px;vector-effect:non-scaling-stroke}.measure-line{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.measure-point{fill:var(--accent)}.measure-label{fill:var(--accent);paint-order:stroke;stroke:#fff;stroke-width:.04px;font-weight:600}@media (width<=720px){main{flex-direction:column}#panel{border-left:0;border-top:1px solid var(--line);width:auto;max-width:none;max-height:40vh}}
