:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f1ea;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{color:#fff;cursor:pointer;background:#1f6f78;border:1px solid #283747;border-radius:6px;min-height:38px}button:disabled{cursor:not-allowed;background:#c3ccd0;border-color:#9aa6ac}.workspace{min-height:100vh;padding:24px}.topbar{justify-content:space-between;align-items:flex-end;gap:24px;max-width:1380px;margin:0 auto 20px;display:flex}.eyebrow{color:#6a4b22;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.6rem,3vw,2.4rem)}h2{margin-bottom:12px;font-size:1rem}.status{color:#385031;background:#eef4e6;border:1px solid #b6c0aa;border-radius:999px;padding:8px 12px;font-size:.9rem}.stage-grid{grid-template-columns:minmax(320px,380px) minmax(0,1fr);gap:18px;max-width:1380px;margin:0 auto;display:grid}.controls{align-content:start;gap:12px;display:grid}.controls section,.preview-panel,.plan-preview{background:#fffdf8;border:1px solid #d5d0c4;border-radius:8px;box-shadow:0 12px 28px #27221814}.controls section{padding:16px}.upload-zone{background:#fbf8f1;border:1px dashed #8a8172;border-radius:6px;gap:8px;padding:14px;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}label{color:#4d5a60;gap:6px;font-size:.88rem;display:grid}input,select{color:#17202a;background:#fff;border:1px solid #b9c2c6;border-radius:6px;width:100%;padding:9px 10px}.note,.error,.warning{margin:10px 0 0;font-size:.9rem}.error,.warning{color:#9d341f}.canvas-column{grid-template-rows:minmax(360px,52vh) minmax(300px,34vh);gap:18px;min-width:0;display:grid}.plan-preview{min-height:360px;position:relative;overflow:hidden}.plan-preview canvas{cursor:crosshair;background:#ece7da;width:100%;min-height:360px;display:block}.plan-preview img,.plan-preview object{object-fit:contain;background:#ece7da;width:100%;height:100%;min-height:360px}.overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scale-point{fill:#d63f20;stroke:#fff;stroke-width:3px}.scale-line{stroke:#d63f20;stroke-width:4px;stroke-dasharray:10 8}.wall{pointer-events:all;cursor:pointer;stroke-width:7px;stroke-linecap:round}.drag-handle{pointer-events:all;cursor:grab;fill:#fffdf8;stroke:#17202a;stroke-width:2px}.accepted{stroke:#1f6f78}.rejected{stroke:#c4512d;stroke-dasharray:12 10}.door-symbol{pointer-events:all;cursor:grab}.opening-marker{pointer-events:all;cursor:pointer;fill:#fffdf8;stroke:#7a4fb3;stroke-width:3px}.selected-geometry{filter:drop-shadow(0 0 4px #17202ab3);outline:none}.door-symbol rect{fill:#fffdf88c;stroke-width:2px}.door-symbol polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.door-symbol circle{fill:#fffdf8;stroke-width:2px}.accepted-door rect,.accepted-door polyline,.accepted-door circle{stroke:#4b7f2c}.rejected-door rect,.rejected-door polyline,.rejected-door circle{stroke:#c4512d;stroke-dasharray:8 6}.overlay text{fill:#17202a;font-weight:700}.preview-panel{grid-template-rows:auto 1fr;min-height:300px;display:grid;overflow:hidden}.panel-header{border-bottom:1px solid #d5d0c4;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.panel-header h2{margin:0}.empty-preview{color:#657176;text-align:center;place-items:center;min-height:100%;padding:24px;display:grid}.wall-list{gap:8px;display:grid}.wall-item{grid-template-columns:1fr auto auto;align-items:center;gap:8px;display:grid}.selected-row{border-left:3px solid #1f6f78;padding-left:6px}.item-select{color:#17202a;text-align:left;background:0 0;border-color:#0000}.review-editor,.issue-list{gap:10px;margin-top:12px;display:grid}.review-editor{border-top:1px solid #d5d0c4;padding-top:12px}.review-editor h3{margin:0;font-size:.95rem}.button-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}@media (width<=900px){.workspace{padding:16px}.topbar,.stage-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.canvas-column{grid-template-rows:minmax(320px,42vh) minmax(280px,36vh)}}
