*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#171717;background:#f5f5f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}main{min-height:100vh}header{color:#fff;background:#111;justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex}header strong{letter-spacing:.08em}header span{color:#aaa}header small{color:#888}.hero{justify-content:space-between;align-items:flex-end;padding:48px 48px 40px;display:flex}.hero h1{letter-spacing:-.045em;max-width:760px;margin:4px 0 10px;font-size:clamp(36px,5vw,64px)}.hero p{color:#666}.eyebrow{letter-spacing:.15em;font-size:12px;font-weight:700}.status{color:#666;font-size:13px}.dot{background:#3e8e58;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.workspace{background:#fff;border:1px solid #ddd;grid-template-columns:280px 1fr;min-height:570px;margin:0 32px 32px;display:grid}aside{border-right:1px solid #ddd;padding:24px}aside h2{margin-top:0}.create{gap:8px;display:flex}input{border:1px solid #ccc;width:100%;min-width:0;padding:10px}button{cursor:pointer}.create button{color:#fff;background:#111;border:0;padding:10px 14px}.projects{margin-top:20px}.project{text-align:left;background:#fafafa;border:1px solid #ddd;width:100%;margin-bottom:8px;padding:12px}.project span,.project small{display:block}.project small{color:#777;margin-top:4px}.canvas{min-width:0}.canvas-toolbar{border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}.canvas-toolbar span{color:#888;font-size:12px}.drawing{padding:32px}svg{background-color:#0000;background-image:linear-gradient(#eee 1px,#0000 1px),linear-gradient(90deg,#eee 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;width:100%;height:430px}svg line{stroke:#161616;stroke-width:12px;stroke-linecap:square}svg text{fill:#555;font-size:20px;font-weight:600}svg .dimension{fill:#999;font-size:12px;font-weight:400}@media (width<=800px){.hero{padding:32px 20px}.status{display:none}.workspace{grid-template-columns:1fr;margin:0 12px 12px}aside{border-bottom:1px solid #ddd;border-right:0}}.wall{cursor:pointer;transition:opacity .12s,stroke-width .12s}.wall:hover{opacity:.65}.wall.selected{stroke:#555}.properties{border-top:1px solid #ddd;margin-top:28px;padding-top:20px}.properties h3{margin:0 0 16px;font-size:15px}.properties label{margin-bottom:14px;font-size:12px;font-weight:600;display:block}.properties label input{width:100%;margin-top:6px;font-weight:400;display:block}.properties>small{color:#888;line-height:1.45;display:block}.element-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.element-actions button{background:#f7f7f7;border:1px solid #ccc;padding:9px}.opening-properties{margin-top:20px}.opening-gap{stroke:#fff;cursor:pointer}.opening-marker{stroke:#777;stroke-width:2px;cursor:pointer}.opening-marker.selected{stroke:#111;stroke-width:4px}.opening-label{fill:#777;pointer-events:none;font-size:10px;font-weight:600}.danger{background:#fafafa;border:1px solid #bbb;width:100%;margin-top:5px;padding:9px}.measured-geometry{border-top:1px solid #ddd;margin-top:24px;padding-top:20px}.measured-geometry h4{margin:0 0 10px;font-size:13px}.property-help{color:#888;margin:0 0 14px;font-size:11px;line-height:1.45}.measurement-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.measurement-grid label{margin:0}.secondary-action{background:#f7f7f7;border:1px solid #bbb;width:100%;margin-top:12px;padding:9px}.measurement-list{border-top:1px solid #eee;margin-top:16px}.measurement-row{border-bottom:1px solid #eee;justify-content:space-between;gap:10px;padding:10px 0;display:flex}.measurement-row strong,.measurement-row small{display:block}.measurement-row strong{font-size:12px}.measurement-row small{color:#888;margin-top:3px;font-size:10px}.mini-danger{background:#fff;border:1px solid #ccc;width:28px;height:28px}.wall-angles{margin-top:22px}.angle-row{border-bottom:1px solid #eee;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;font-size:11px;display:grid}.angle-row strong{font-size:12px}.angle-row small{color:#999;grid-column:1/-1}.properties textarea{resize:vertical;width:100%;min-height:74px;font:inherit;border:1px solid #ccc;margin-top:6px;padding:9px;font-weight:400;display:block}.space-properties{margin-top:22px}.derived-value{background:#f6f6f3;justify-content:space-between;align-items:center;margin:-4px 0 16px;padding:8px 10px;font-size:11px;display:flex}.derived-value strong{font-size:12px}.baseboard-editor{border-top:1px solid #ddd;margin-top:22px;padding-top:18px}.section-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.section-heading h4{margin:0;font-size:13px}.small-action{background:#f7f7f7;border:1px solid #bbb;padding:6px 8px;font-size:11px}.baseboard-card{background:#fafafa;border:1px solid #ddd;margin-top:10px;padding:10px}.baseboard-card>strong{margin-bottom:10px;font-size:11px;display:block}.baseboard-card label{margin-bottom:9px}.mini-remove{background:#fff;border:1px solid #ccc;width:100%;margin-top:3px;padding:7px;font-size:10px}.baseboard-line{stroke:#777;stroke-width:4px;stroke-linecap:butt;pointer-events:none}.property-subtitle{color:#777;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #eee;margin:18px 0 10px;padding-bottom:5px;font-size:10px;font-weight:700}.properties select{width:100%;font:inherit;background:#fff;border:1px solid #ccc;margin-top:6px;padding:9px;font-weight:400;display:block}.door-leaf{stroke:#666;stroke-width:3px;stroke-linecap:butt;pointer-events:none}.scenario-comparison{border-top:1px solid #ddd;margin-top:22px;padding-top:18px}.scenario-comparison h3{margin:0;font-size:14px}.scenario-comparison label{margin-top:10px;font-size:11px;font-weight:600;display:block}.scenario-comparison select{background:#fff;border:1px solid #ccc;width:100%;margin-top:6px;padding:8px;display:block}.unsaved-badge{background:#eee;padding:3px 6px;font-size:9px}.comparison-summary{background:#f5f5f2;margin-top:12px;padding:12px}.comparison-summary strong{margin-right:5px;font-size:22px;display:inline-block}.comparison-summary span{font-size:11px}.comparison-summary small{color:#888;margin-top:4px;font-size:9px;display:block}.change-list{margin-top:8px}.change-row{border-bottom:1px solid #eee;justify-content:space-between;gap:8px;padding:8px 0;display:flex}.change-row strong,.change-row span{display:block}.change-row strong{color:#999;text-transform:uppercase;font-size:9px}.change-row span{margin-top:2px;font-size:11px}.change-kind{align-self:center;font-size:9px}.change-kind.added{font-weight:700}.change-kind.removed{text-decoration:line-through}.change-kind.modified{font-weight:600}.survey-panel{margin-top:22px}.checkbox-label{align-items:flex-start;gap:7px;line-height:1.4;font-weight:400!important;display:flex!important}.checkbox-label input{width:auto;margin:2px 0 0}.survey-list{border-top:1px solid #eee;margin-top:14px}.survey-row{border-bottom:1px solid #eee;justify-content:space-between;gap:10px;padding:9px 0;display:flex}.survey-row strong,.survey-row small{display:block}.survey-row strong{font-size:12px}.survey-row small{color:#888;margin-top:2px;font-size:9px}.solve-action{color:#fff;background:#222;border:0;width:100%;margin-top:8px;padding:10px}.solver-result{border:1px solid #ddd;gap:4px;margin-top:12px;padding:11px;font-size:10px;display:grid}.solver-result strong{font-size:11px}.solver-result span{color:#666}.solver-result small{margin-top:5px;line-height:1.45}.solver-result.good{background:#f4f7f3}.solver-result.warning{background:#f7f5f1}.survey-point-summary{background:#f5f5f2;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:10px 0 14px;padding:10px;display:grid}.survey-point-summary div{min-width:0}.survey-point-summary small,.survey-point-summary strong{display:block}.survey-point-summary small{color:#888;font-size:9px}.survey-point-summary strong{margin-top:2px;font-size:12px}.survey-point-summary>span{color:#aaa}.survey-vertex{cursor:crosshair}.vertex-point{fill:#fff;stroke:#222;stroke-width:2px}.vertex-point.from{fill:#222}.vertex-point.to{fill:#888}.vertex-label{fill:#444;pointer-events:none;font-size:10px;font-weight:700}.survey-selection-line{stroke:#777;stroke-width:2px;stroke-dasharray:7 5;pointer-events:none}.secondary-action:disabled{cursor:default;opacity:.4}.survey-progress{background:#f5f5f2;margin:10px 0;padding:10px}.survey-progress strong{margin-right:5px;font-size:18px}.survey-progress span{font-size:10px}.survey-progress small{color:#888;margin-top:3px;font-size:9px;display:block}.next-measurement{border:1px solid #ccc;margin:10px 0 14px;padding:11px}.next-measurement>small,.next-measurement>strong,.next-measurement>span{display:block}.next-measurement>small{color:#888;letter-spacing:.08em;font-size:8px;font-weight:700}.next-measurement>strong{margin-top:5px;font-size:14px}.next-measurement>span{margin-top:2px;font-size:9px}.next-measurement p{margin:8px 0 0;font-size:10px;line-height:1.4}.next-measurement .estimate-warning{color:#888;font-size:9px}.next-measurement .small-action{width:100%;margin-top:9px}.survey-complete{background:#f4f7f3;margin:10px 0 14px;padding:10px;font-size:10px;line-height:1.45}.dimension-box{stroke-width:1px}.dimension-box.measured{fill:#fff;stroke:#bbb}.dimension-box.provisional{fill:#f5f5f2;stroke:#ddd}.survey-dimension{pointer-events:none;font-size:9px}.survey-dimension.measured{fill:#222;font-weight:700}.survey-dimension.provisional{fill:#999}.measured-diagonal{stroke:#888;stroke-width:1.5px;stroke-dasharray:5 4;pointer-events:none}.diagonal-label{fill:#777;pointer-events:none;font-size:9px}.suggested-measurement-line{stroke:#aaa;stroke-width:2px;stroke-dasharray:10 6;pointer-events:none}.space-navigator{border-top:1px solid #ddd;margin-top:22px;padding-top:18px}.space-navigator h3{margin:0;font-size:14px}.space-navigator .section-heading small{color:#888;font-size:10px}.space-list{gap:5px;margin-top:10px;display:grid}.space-item{text-align:left;background:#fafafa;border:1px solid #ddd;width:100%;padding:9px 10px;font-size:11px}.space-item.active{background:#f1f1ed;border-color:#222;font-weight:700}.adjacent-space-panel{margin-top:20px;padding-top:4px}.space-label{cursor:pointer;fill:#777;font-size:12px;font-weight:600}.space-label.active{fill:#222;font-weight:800}.space-connections{margin-top:22px}.connection-subtitle{color:#888;letter-spacing:.08em;text-transform:uppercase;margin:16px 0 7px;font-size:9px;font-weight:700}.connection-subtitle.warning{margin-top:18px}.connection-list{border-top:1px solid #eee}.connection-row{border-bottom:1px solid #eee;grid-template-columns:minmax(0,1fr) minmax(90px,auto);align-items:center;gap:10px;padding:8px 0;display:grid}.connection-row strong,.connection-row small{display:block}.connection-row strong{font-size:10px}.connection-row small{color:#999;margin-top:2px;font-size:8px}.connection-row>span{color:#666;text-align:right;max-width:130px;font-size:9px}.topology-issues{gap:6px;display:grid}.topology-issue{background:#f7f5f1;border:1px solid #ddd;padding:8px;font-size:9px;line-height:1.4}.model-validation{border:1px solid #ddd;margin-top:12px;padding:10px}.model-validation>strong,.model-validation>small{display:block}.model-validation>strong{font-size:11px}.model-validation>small{color:#888;margin-top:3px;font-size:9px}.model-validation.valid{background:#f4f7f3}.model-validation.invalid{background:#f7f3f1}.validation-issues{gap:6px;margin-top:9px;display:grid}.validation-issue{border-top:1px solid #ddd;padding-top:6px}.validation-issue span,.validation-issue small{display:block}.validation-issue span{font-size:9px;line-height:1.4}.validation-issue small{color:#999;margin-top:2px;font-size:8px}.wall-body{fill:#d8d8d4;stroke:#555;stroke-width:1px;cursor:pointer}.wall-body:hover{fill:#cececa}.wall-body.selected{fill:#c4c4bf;stroke:#111;stroke-width:3px}.wall-hit-target{fill:none;stroke:#0000;stroke-width:18px;pointer-events:stroke;cursor:pointer}.opening-marker.overhead{stroke-dasharray:6 5;opacity:.55}.opening-marker.architectural-hidden{opacity:0}.door-symbol,.window-symbol{cursor:pointer}.door-leaf{stroke:#333;stroke-width:3px;stroke-linecap:square}.door-swing-arc{fill:none;stroke:#777;stroke-width:1.5px;stroke-dasharray:4 3;pointer-events:none}.door-hinge{fill:#333;pointer-events:none}.window-frame-line{stroke:#444;stroke-width:2px;pointer-events:none}
