:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#faf8f4;--fg:#16212b;--muted:#46525e;--card:#fff;--line:#cfd5da;--field:#fff;--field-line:#6b7782;--pri:#1d4f7a;--pri-hover:#163e60;--on-pri:#fff;--sec-bg:#e9eef2;--danger:#a3161b;--on-danger:#fff;--danger-bg:#fdecec;--ok-bg:#e5f3e8;--ok-fg:#1d5a2a;--focus:#e0a100;--sheet:#fbfcfc;--wall:#1b2630;--mark:#c2410c;--fill:#1f7a4a}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#11171c;--fg:#eef1f3;--muted:#b8c2ca;--card:#1a232a;--line:#3a4650;--field:#0f1519;--field-line:#8b98a3;--pri:#9ccbf2;--pri-hover:#bcdcf7;--on-pri:#0b1620;--sec-bg:#26323b;--danger:#ff9b94;--on-danger:#2a0606;--danger-bg:#3a1a1b;--ok-bg:#173322;--ok-fg:#a6e3b5;--focus:#ffd257;--sheet:#171e23;--wall:#d5dde3;--mark:#ffb17a;--fill:#6fd39c}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);margin:0;font:20px/1.5 Atkinson Hyperlegible,system-ui,sans-serif}a{color:var(--pri);text-underline-offset:3px}:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.top{justify-content:space-between;align-items:center;gap:12px;max-width:44rem;margin:0 auto;padding:16px;display:flex}.logo{color:var(--fg);align-items:center;gap:10px;font-size:1.3em;font-weight:700;text-decoration:none;display:inline-flex}.logo svg{flex:none;width:36px;height:36px}main{max-width:44rem;margin:0 auto;padding:8px 16px 64px}.top.wide,main.wide{max-width:72rem}h1{margin:16px 0;font-size:1.8em;line-height:1.2}h2{overflow-wrap:anywhere;margin:0 0 12px;font-size:1.35em;line-height:1.25}p{margin:0 0 16px}.lead{font-size:1.1em}.muted{color:var(--muted)}.card{background:var(--card);border:2px solid var(--line);border-radius:16px;margin:0 0 24px;padding:24px 20px}.btn{min-height:56px;font:inherit;text-align:center;cursor:pointer;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-weight:700;text-decoration:none;display:inline-flex}.btn.primary{background:var(--pri);color:var(--on-pri)}.btn.primary:hover{background:var(--pri-hover)}.btn.secondary{background:var(--sec-bg);color:var(--fg);border-color:var(--field-line)}.btn.danger{background:var(--danger);color:var(--on-danger)}.btn.quiet{color:var(--fg);border-color:var(--field-line);background:0 0;min-height:48px;padding:8px 18px}.btn[disabled]{opacity:.6;cursor:default}.btn.wide{width:100%}.btn svg{flex:none;width:24px;height:24px}.actions{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.actions .btn{flex:14rem}.more{border-top:2px solid var(--line);flex-wrap:wrap;gap:12px;margin-top:20px;padding-top:20px;display:flex}.more .btn{flex:10rem}form.stack{gap:20px;display:grid}.field{gap:6px;display:grid}.field label{font-weight:700}.field .hint{color:var(--muted);font-size:.9em}input[type=text],input[type=email],input[type=password],input[type=url]{border:2px solid var(--field-line);background:var(--field);width:100%;min-height:56px;color:var(--fg);font:inherit;border-radius:10px;padding:10px 14px}input[readonly]{background:var(--sec-bg)}.error,.notice{border:2px solid;border-radius:12px;margin:0 0 16px;padding:14px 16px}.error{background:var(--danger-bg);color:var(--fg);border-color:var(--danger)}.notice{background:var(--ok-bg);color:var(--ok-fg);border-color:currentColor}.confirm{background:var(--danger-bg);border:2px solid var(--danger);border-radius:12px;margin-top:20px;padding:16px}.confirm.plain{background:var(--sec-bg);border-color:var(--field-line)}.confirm p{margin-bottom:12px}.share{margin-top:20px}.share .row{flex-wrap:wrap;gap:12px;display:flex}.share input{flex:16rem;font-size:.8em}.share .btn{flex:12rem}.share .by-hand{margin:12px 0 0}.btn[aria-pressed=true]{background:var(--pri);color:var(--on-pri);border-color:var(--pri)}h3{margin:0 0 12px;font-size:1.15em}.field .label{font-weight:700}.row{flex-wrap:wrap;gap:12px;display:flex}.row input{flex:10rem;width:auto}.edit-plan{margin-top:12px}.editor-head{flex-wrap:wrap;align-items:baseline;gap:4px 20px;margin-bottom:8px;display:flex}.editor-head p{margin:0}.step-count{font-size:1.1em}.save-status{min-height:1.5em;color:var(--muted);margin-left:auto!important}.save-status.error{color:var(--danger);background:0 0;border:0;padding:0;font-weight:700}.step-help{color:var(--muted)}.tool-row,.choice{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.tool-row .btn,.choice .btn{flex:auto}.small-choice{flex:0 auto;margin:0}.small-choice .btn{padding-left:16px;padding-right:16px}.step-nav{flex-wrap:wrap;gap:12px;margin:24px 0 8px;display:flex}.step-nav .btn{flex:12rem}.result{margin:12px 0 20px;font-size:1.1em;font-weight:700}.result.error{font-weight:400}.about{gap:20px;margin-top:8px;display:grid}.summary{margin:0 0 16px;padding-left:1.2em}input[type=range]{width:100%;height:48px;accent-color:var(--pri);cursor:pointer;margin:0}.range-ends{color:var(--muted);justify-content:space-between;gap:12px;font-size:.85em;display:flex}.viewer{margin:0 0 12px}.viewer-box{border:2px solid var(--line);background:var(--sec-bg);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:12px;height:min(70vh,720px);min-height:320px;position:relative;overflow:hidden}.viewer-box.draws{cursor:crosshair}.viewer-content{transform-origin:0 0;position:absolute;top:0;left:0}.viewer-content .layer{width:100%;height:100%;display:block;position:absolute;top:0;left:0}.viewer-content img.layer{pointer-events:none}.layer.sheet{background:var(--sheet)}.layer.faint{opacity:.3}.editor>.field{margin-bottom:16px}@media (prefers-color-scheme:dark){.layer.faint{filter:invert();opacity:.25}}.viewer-overlay{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.viewer-zoom{gap:8px;margin-top:8px;display:flex}.viewer-zoom .btn{flex:auto;min-width:56px;font-size:1.1em}.handle,.draggable{pointer-events:all;cursor:grab;outline:none}.handle-hit{fill:#0000}.handle-dot{fill:var(--mark);stroke:#fff;fill-opacity:.85}.handle-centre{fill:#fff}.handle:focus-visible .handle-dot,.draggable:focus-visible .probe,.draggable:focus-visible .probe-door{stroke:var(--focus)}.crop-shade{fill:#00000073}.crop-frame,.measure,.measure-room{fill:none;stroke:var(--mark);vector-effect:non-scaling-stroke;stroke-width:3px}.measure-room{fill:var(--mark);fill-opacity:.15}.brush{fill:none;stroke:var(--mark)}.scalebar path{fill:none;stroke:var(--wall)}.scalebar text,.probe-label{fill:var(--wall);font-weight:700}.scalebar-bg{fill:var(--sheet);fill-opacity:.85}.probe{fill:#8eaad0;fill-opacity:.85;stroke:var(--wall);stroke-width:2px;vector-effect:non-scaling-stroke}.probe-pillow{fill:#fff;fill-opacity:.7}.probe-hit{fill:#0000}.probe-door{fill:none;stroke:var(--mark);stroke-width:3px;vector-effect:non-scaling-stroke}.door-mark line{stroke:var(--mark);stroke-linecap:round}.door-mark line.hit{stroke:#0000}.door-mark.selected line:not(.hit){stroke:var(--pri)}.door-mark text,.piece-mark text{fill:var(--fg);paint-order:stroke;stroke:var(--sheet);stroke-width:4px;stroke-linejoin:round;font-weight:700}.pickable{pointer-events:all;cursor:pointer}.pickable text{pointer-events:none}.door-start{fill:var(--mark)}.piece-mark rect{fill:var(--sheet);fill-opacity:.55;stroke:var(--mark);vector-effect:non-scaling-stroke}.piece-mark.fixture rect{stroke-dasharray:6 4}.piece-mark.selected rect{stroke:var(--pri);fill-opacity:.75}.placing{background:var(--sec-bg);border:2px solid var(--field-line);border-radius:12px;margin:0 0 12px;padding:12px 16px}.selected-card{margin-top:8px}.btn.side{flex:12rem}.btn .arrow{font-size:1.5em;line-height:1}.mark-list{margin:0 0 16px;padding-left:1.4em}.mark-list li{margin:0 0 8px}.mark-list li>span:first-child{margin-right:12px;display:inline-block}.mark-actions{flex-wrap:wrap;gap:8px;display:inline-flex}.piece-groups{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:4px 24px;display:grid}.piece-group p{margin-bottom:8px}.row.sizes .field{flex:8rem}.row.sizes input{width:100%}.field-error{color:var(--danger);font-size:.9em;font-weight:700}.thumbs{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:0 0 16px;display:grid}.thumb{border:2px solid var(--field-line);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;border-radius:12px;gap:6px;min-height:56px;padding:8px;display:grid}.thumb img{background:#fff;width:100%;height:auto}.north-row{align-items:center;gap:16px;display:flex}.north{flex:none;width:64px;height:64px}.north-ring{fill:var(--card);stroke:var(--line);stroke-width:2px}.north-needle{fill:var(--danger)}.small{font-size:.9em}.center{text-align:center}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=480px){body{font-size:19px}h1{font-size:1.6em}.card{padding:20px 16px}.btn{width:100%}.top .btn,.tool-row .btn,.choice .btn,.viewer-zoom .btn,.mark-actions .btn{width:auto}.viewer-box{height:60vh}.north-row .btn{flex:auto}}.reading{background:var(--sec-bg);border:2px solid var(--field-line);border-radius:12px;padding:14px 16px}.found{margin:0 0 20px}.found p:last-child{margin-bottom:0}.found-rooms{flex-wrap:wrap;gap:8px;display:flex}.found-rooms .btn{flex:0 auto;min-height:48px;padding:8px 18px}.muted-in{font-weight:400}.label-mark{fill:none;stroke:var(--pri);stroke-width:2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.label-mark.chosen{stroke-width:4px;stroke-dasharray:none}@media (width<=480px){.found-rooms .btn{width:auto}}.suggest{margin:0 0 20px}.suggest p:last-child,.tidy>:last-child{margin-bottom:0}.suggest .btn{width:100%}.in-use{color:var(--ok-fg);font-weight:700}.area-check{margin-top:12px}.area-check.more,.area-check.less{border-left:4px solid var(--mark);padding-left:12px}.room-fills{pointer-events:none}.tidy{gap:16px;margin-top:8px;display:grid}.tidy h3,.tidied{margin:0}.scale-warning{margin:0 0 16px}
