:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;color:#20211f;background:#ebece8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}.mast{height:94px;background:#f5f5f1;border-bottom:1px solid #c8cac4;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 34px}.brand{display:flex;gap:13px;align-items:center}.mark{display:grid;place-items:center;width:44px;height:44px;border:2px solid #232421;font-family:Georgia,serif;font-size:29px;font-style:italic}.brand h1{font:500 25px/1 Georgia,serif;margin:0;letter-spacing:.5px}.brand p{margin:6px 0 0;color:#6d6f69;font-size:11px;letter-spacing:.25em}.measure{text-align:center;border-left:1px solid #d3d5cf;border-right:1px solid #d3d5cf;padding:0 42px}.measure label{font-size:13px;font-weight:700}.measure input{width:58px;border:0;border-bottom:1px solid #74766e;background:transparent;text-align:center;color:#d14e36;font-weight:800}.measure span{display:block;font-size:11px;color:#777a73;margin-top:7px}.save{justify-self:end;background:#20211f;color:#fff;border:0;padding:12px 22px;border-radius:2px;font-size:13px}.workspace{display:grid;grid-template-columns:240px minmax(400px,1fr) 250px;min-height:calc(100vh - 94px)}.tools,.report{background:#f5f5f1;padding:27px 24px}.tools{border-right:1px solid #c8cac4}.report{border-left:1px solid #c8cac4}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:10px;font-weight:800;color:#74766f;margin:0 0 15px}.add-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-bottom:24px;border-bottom:1px solid #d7d8d3}.add-grid button{background:#fff;border:1px solid #d0d2cc;padding:10px 3px;font-size:11px}.add-grid b{display:block;font-size:24px;font-weight:400;margin-bottom:4px}.add-grid button:hover{border-color:#20211f}.inspector{padding-top:24px}.inspector label{font-size:11px;color:#62645e;display:block;margin:12px 0}.inspector input:not([type=range]){display:block;width:100%;border:1px solid #cfd1cb;background:#fff;margin-top:6px;padding:8px}.inspector output{float:right;font-weight:700;color:#20211f}.inspector input[type=range]{display:block;width:100%;accent-color:#d14e36;margin-top:8px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.delete,.reset{border:0;background:transparent;text-decoration:underline;color:#686a65;font-size:11px;padding:8px 0}.empty{font-size:12px;color:#777;line-height:1.6;padding-top:20px}.stage-wrap{padding:24px 28px 10px;min-width:0}.stage-head{display:flex;gap:18px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}.stage-head small{margin-left:auto;color:#777;text-transform:none;letter-spacing:0}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.dot.moving{background:#e5b93f}.dot.fixed{background:#59615e}.dot.collision{background:#d14e36}.stage{display:block;width:100%;height:auto;max-height:calc(100vh - 175px);aspect-ratio:760/500;background:#f9f9f6;border:1px solid #bbbdb6;touch-action:none;box-shadow:0 8px 28px #31332f12}.object{cursor:grab}.object:active{cursor:grabbing}.object text{font-size:11px;fill:#333;text-anchor:middle;pointer-events:none}.furniture{fill:#7e8581;stroke:#454b48;stroke-width:2}.hatch{stroke:#aeb3af;stroke-width:1}.selected .furniture,.selected .drawer-base{stroke:#d14e36;stroke-width:3}.sweep{fill:#e6bc3e2c;stroke:#c59a20;stroke-width:1.5;stroke-dasharray:5 4}.leaf{stroke:#b08517;stroke-width:7;stroke-linecap:round}.hinge{fill:#f7f7f3;stroke:#252622;stroke-width:3}.drawer-base{fill:#a8aca8;stroke:#555c58;stroke-width:2}.drawer-open{fill:#e6bc3e32;stroke:#c59a20;stroke-width:2;stroke-dasharray:5 3}.travel{stroke:#c59a20;stroke-width:2;marker-end:none}.hit circle{fill:#d14e36aa;stroke:#fff;stroke-width:2}.hit path{stroke:#fff;stroke-width:2}.scale-line line{stroke:#252622;stroke-width:3}.scale-line text{font-size:10px}.hint{margin:8px 0 0;font-size:10px;color:#74766f;display:flex;justify-content:space-between}.report{text-align:left}.status-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid currentColor;border-radius:50%;font:500 30px Georgia,serif;margin:34px 0 18px}.danger .status-icon,.danger h2{color:#c34833}.safe .status-icon,.safe h2{color:#31745f}.report h2{font:500 22px/1.2 Georgia,serif;margin:0 0 10px}.report>p:not(.eyebrow):not(.disclaimer){font-size:12px;line-height:1.6;color:#666963}.metric{margin:24px 0;border-top:1px solid #d4d6d0;border-bottom:1px solid #d4d6d0;padding:18px 0}.metric span,.metric small{display:block;font-size:10px;color:#797b75}.metric strong{display:block;font:500 32px Georgia,serif;margin:6px 0}.collision-list>div{display:flex;gap:12px;border-bottom:1px solid #ddded9;padding:10px 0;font-size:12px}.collision-list b{color:#c34833}.collision-list small{display:block;color:#777;margin-top:3px}.reset{margin-top:18px}.disclaimer{font-size:10px!important;line-height:1.6!important;color:#8b8d87!important;border-left:2px solid #c7c9c3;padding-left:9px;margin-top:28px!important}@media(max-width:960px){.mast{grid-template-columns:1fr auto;height:auto;padding:18px}.measure{grid-column:1/-1;grid-row:2;padding:14px 0 0;margin-top:14px;border:0;border-top:1px solid #d3d5cf}.workspace{grid-template-columns:210px 1fr}.report{grid-column:1/-1;border-left:0;border-top:1px solid #c8cac4;display:grid;grid-template-columns:auto 1fr;gap:10px 25px}.report .eyebrow,.report .metric,.report .collision-list,.report .reset,.report .disclaimer{grid-column:1/-1}.status-icon{margin:5px 0}.report h2{align-self:end}.report>p:not(.eyebrow):not(.disclaimer){margin-top:0}.stage{max-height:none}}@media(max-width:650px){.mast{display:flex;flex-wrap:wrap;gap:15px}.save{margin-left:auto}.brand p{display:none}.measure{flex-basis:100%}.workspace{display:block}.tools{border-right:0;border-bottom:1px solid #c8cac4}.stage-wrap{padding:18px 12px}.stage-head{flex-wrap:wrap}.stage-head small{width:100%;margin:0}.stage{min-height:330px}.hint{display:block}.hint span{display:block;margin-top:4px}.inspector{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.inspector>.eyebrow,.inspector>.delete{grid-column:1/-1}.pair{display:contents}.report{display:block}.status-icon{margin-top:20px}}
