.room-planner{--room-border:#dce5e8;--room-soft:#f3f7f7;min-width:0}.room-planner-intro .eyebrow{font-size:8px;letter-spacing:1.5px}.room-planner-intro h3{font-size:22px;font-weight:500;letter-spacing:-.7px;margin:9px 0}.room-planner-intro p{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 18px}.room-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.room-preset{display:grid;grid-template-columns:28px 1fr;gap:4px 8px;text-align:left;border:1px solid var(--room-border);border-radius:8px;background:white;padding:12px 9px;min-height:64px;color:var(--ink)}.room-preset:hover{border-color:#8ca9ba;background:#f5f9fa}.room-preset strong{font-size:10px;font-weight:500;align-self:end}.room-preset small{grid-column:2;color:var(--muted);font-size:8px;line-height:1.4}.room-preset-icon{width:27px;height:30px;border:1.5px solid #7f9ca7;border-radius:2px;grid-row:1/3;align-self:center;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:3px;background:#edf4f4}.room-preset-icon i{display:block;background:#b5ccce;border:1px solid #fff9}.room-help{font-size:9px;line-height:1.65;color:var(--muted);margin:9px 0 15px}.room-plan-heading{display:flex;align-items:center;justify-content:space-between;margin-top:19px}.room-plan-heading strong{font-size:12px;font-weight:500}.room-plan-heading button{font-size:10px;padding:10px 0 10px 12px;min-height:40px}.room-plan-canvas{position:relative;border:1px solid var(--room-border);border-radius:9px;background:#f6f9f8;overflow:hidden;min-height:190px}.room-plan-svg{display:block;width:100%;max-height:360px;min-height:190px;user-select:none;-webkit-user-select:none}.room-plan-footprint{fill:white;stroke:#7b929b;stroke-width:.25}.room-plan-room{cursor:grab;touch-action:none}.room-plan-room>rect{stroke:#76919c;stroke-width:.13;fill-opacity:.78}.room-plan-room.is-selected>rect{stroke:var(--navy);stroke-width:.27;fill-opacity:1}.room-plan-room.is-dragging{cursor:grabbing}.room-plan-room.is-dragging>rect{stroke:#285f90;stroke-dasharray:.5 .25;stroke-width:.28;fill-opacity:.65}.room-plan-room.is-invalid>rect{stroke:#b4473a;fill:#f4cfc9}.room-plan-label{text-anchor:middle;fill:#253a48;font-weight:500;pointer-events:none}.room-plan-measure{font-size:.8em;font-weight:400;fill:#52707b}.room-plan-orientation{text-anchor:middle;fill:#7c9096;letter-spacing:.12px;pointer-events:none}.room-door-symbol{stroke:#728b93;stroke-width:.10;fill:none;pointer-events:none}.room-door-symbol .room-door-gap{stroke:white;stroke-width:.31}.room-exterior-opening{pointer-events:none;stroke:#6a9ead;stroke-width:.42}.room-exterior-opening.is-door{stroke:#b59351;stroke-width:.45}.room-plan-empty{position:absolute;inset:35% 10% auto;text-align:center;font-size:11px;line-height:1.7;color:#839494;pointer-events:none}.room-drag-hint{font-size:9px;color:#6e838b;text-align:center;line-height:1.7;margin:7px 0 13px}.room-drag-hint span{display:block;font-size:8px;color:#88979d}.room-stats{display:grid;grid-template-columns:.55fr 1fr 1.2fr;border-bottom:1px solid var(--room-border);padding:0 0 16px;gap:5px}.room-stats>div+div{border-left:1px solid var(--room-border);padding-left:10px}.room-stats strong,.room-stats span{display:block}.room-stats strong{font-size:11px;font-weight:500;color:var(--navy);white-space:nowrap}.room-stats span{font-size:8px;color:var(--muted);margin-top:5px;line-height:1.5}.room-add-row{display:flex;align-items:end;gap:8px;margin:17px 0 13px}.room-add-row .field{flex:1;min-width:0}.room-add-row button{padding:11px 13px;font-size:11px;min-height:40px;white-space:nowrap}.room-select-list{list-style:none;padding:0;margin:0 0 17px;display:grid;gap:5px;max-height:270px;overflow:auto;scrollbar-width:thin}.room-select{display:flex;align-items:center;gap:10px;text-align:left;width:100%;background:white;border:1px solid var(--room-border);border-radius:6px;padding:10px;color:var(--ink);min-height:48px}.room-select[aria-pressed=true]{background:#f0f5f7;border-color:#829daf}.room-select>span:nth-child(2){flex:1;min-width:0}.room-select strong,.room-select small{display:block;overflow-wrap:anywhere}.room-select strong{font-size:11px;font-weight:500}.room-select small{font-size:9px;margin-top:3px;color:#75838d}.room-select>span:last-child{font-size:12px;color:var(--navy)}.room-color{width:14px;height:24px;border:1px solid #6b8b8f30;border-radius:3px;flex:none}.room-editor{padding:15px;border:1px solid var(--room-border);background:#f7f9fa;border-radius:9px;margin:13px 0 17px}.room-editor-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px;gap:10px}.room-editor h4,.room-exterior-actions h4{font-size:12px;font-weight:500;margin:0}.room-editor-heading>span{font-size:8px;color:#758b94;background:#e9f0f2;border-radius:3px;padding:4px 7px}.room-editor .field-grid{gap:12px 9px}.room-editor .field input,.room-editor .field select{min-width:0}.room-door-fields{border:0;border-top:1px solid var(--room-border);padding:13px 0 0;margin:18px 0 12px;min-width:0}.room-door-fields legend{font-size:11px;color:var(--ink);padding:0 8px 0 0;font-weight:500}.room-door-fields>.field{margin-bottom:12px}.room-fixtures{display:flex;align-items:center;gap:8px;font-size:10px;color:#617582;line-height:1.5;margin:12px 0 16px;min-height:35px}.room-fixtures input{width:16px;height:16px;flex:none}.room-editor .primary{width:100%;font-size:11px;justify-content:space-between;padding:12px}.room-remove{font-size:10px;width:100%;margin-top:7px;min-height:40px}.room-exterior-actions h4{margin-bottom:12px}.room-exterior-actions .opening-actions button{font-size:10px;min-height:48px;line-height:1.5;padding:9px}.room-planner>.secondary.full{width:100%;font-size:11px;min-height:44px;justify-content:space-between}.room-planner-status:not(:empty){font-size:10px;color:#4c7484;line-height:1.6;padding:8px 0}.room-planner-error{font-size:11px;line-height:1.6;background:#fff0ed;border:1px solid #e8c1b9;color:#9c4035;padding:11px;border-radius:6px;margin:12px 0}.room-planner-error[hidden]{display:none}
.room-plan-svg{touch-action:none}
@media(max-width:760px){.room-preset{min-height:72px;padding:13px 11px}.room-preset strong{font-size:12px}.room-preset small{font-size:9px}.room-planner-intro p{font-size:12px}.room-plan-svg{max-height:420px}.room-planner .field input,.room-planner .field select{min-height:44px;font-size:16px}.room-planner .field{font-size:11px}.room-select{min-height:56px}.room-select strong{font-size:12px}.room-select small{font-size:10px}.room-add-row button{min-height:44px}.room-plan-heading button{min-height:44px;font-size:11px}.room-help{font-size:10px}.room-editor .primary,.room-planner>.secondary.full{min-height:46px;font-size:12px}.room-fixtures{font-size:12px;min-height:44px}.room-stats strong{font-size:12px}.room-stats span{font-size:9px}.room-remove{min-height:44px}.room-exterior-actions .opening-actions button{font-size:11px}.room-planner-intro h3{font-size:25px}}
@media(max-width:350px){.room-preset{grid-template-columns:1fr}.room-preset-icon{display:none}.room-preset small{grid-column:1}.room-stats strong{font-size:10px}.room-editor{padding:12px}.room-stats>div+div{padding-left:6px}}
/* Direct plan editing */
.room-expand{width:100%;min-height:44px;justify-content:space-between;margin:0 0 17px;font-size:12px}
.room-plan-tools{display:flex;flex-wrap:wrap;gap:4px;border:1px solid var(--room-border);padding:4px;border-radius:8px;margin-bottom:9px;background:white}
.room-plan-tools button{border:0;border-radius:5px;min-height:36px;padding:7px 9px;background:transparent;color:#60727e;font-size:10px;flex:1 0 auto}
.room-plan-tools button[aria-pressed=true]{background:var(--navy,#15315c);color:white}
.room-plan-settings{display:grid;grid-template-columns:1fr 95px;gap:9px;margin:0 0 10px}
.room-plan-settings label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:#637780}
.room-plan-settings select{width:100%;min-width:0;border:1px solid var(--room-border);border-radius:5px;background:white;color:#304757;padding:7px 5px;font:inherit;min-height:34px}
.room-plan-settings label:first-child{display:grid;grid-template-columns:auto 1fr}
.room-plan-settings label:last-child{display:grid;grid-template-columns:auto 1fr}
.room-grid{pointer-events:none}
.room-plan-furniture{pointer-events:none;fill:#ffffffb8;stroke:#7a8d96;stroke-width:.065}
.room-plan-furniture path{fill:none}
.room-plan-room .room-plan-label{paint-order:stroke;stroke:#ffffffc9;stroke-width:.14;stroke-linejoin:round}
.room-plan-room .room-plan-measure{stroke-width:.10}
.room-wall-handle{cursor:ew-resize;touch-action:none;outline:none}
.room-wall-handle[data-room-wall=front],.room-wall-handle[data-room-wall=back]{cursor:ns-resize}
.room-wall-handle>rect{fill:#fff;stroke:#174e86;stroke-width:.14}
.room-wall-handle>path{stroke:#174e86;stroke-width:.13;pointer-events:none}
.room-wall-handle:focus>rect,.room-wall-handle:hover>rect{fill:#d5e9f9;stroke-width:.22}
.room-wall-hit{fill:transparent;stroke:transparent;stroke-width:13px;vector-effect:non-scaling-stroke}
.room-door-symbol,.room-exterior-opening{pointer-events:all;cursor:ew-resize;touch-action:none}
.room-door-symbol{stroke:#536e7b;stroke-width:.11}
.room-door-grip{fill:#fff;stroke:#5a7a88;stroke-width:.10}
.plan-opening-hit{stroke:transparent;stroke-width:16px;vector-effect:non-scaling-stroke;fill:none}
.window-glass-line{stroke:#e8f9ff;stroke-width:.16;pointer-events:none}
.room-door-symbol.is-invalid,.room-exterior-opening.is-invalid{stroke:#bb4434}
.room-draw-preview{fill:#5289b333;stroke:#225f92;stroke-width:.2;stroke-dasharray:.45 .2;pointer-events:none}
.room-draw-preview.is-invalid{stroke:#bb4434;fill:#e58d7b44}
.room-draw-preview[hidden]{display:none}
.room-planner[data-plan-tool=draw] .room-plan-svg{cursor:crosshair}
.room-planner[data-plan-tool=draw] .room-plan-room,.room-planner[data-plan-tool=window] .room-plan-room,.room-planner[data-plan-tool=door] .room-plan-room{cursor:crosshair}
.room-planner[data-plan-tool=draw] .room-wall-handle{display:none}
.room-planner[data-plan-tool=select] .room-plan-room{cursor:pointer}
.room-plan-properties{min-width:0}
.room-split{border:1px solid #d4e1e5;background:#f4f8f8;border-radius:8px;padding:14px;margin:13px 0 16px}
.room-split h4{font-size:12px;margin:0 0 8px;font-weight:500;overflow-wrap:anywhere}
.room-split .field-grid{gap:10px}
.room-split .secondary{min-height:42px;width:100%;margin-top:12px;font-size:11px}
.room-planner-expanded{height:100%;min-height:0}
.room-planner-expanded>.room-planner-intro,.room-planner-expanded>.room-preset-grid,.room-planner-expanded>.room-help{display:none}
.room-planner-expanded .room-planner-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;height:100%;min-height:0}
.room-planner-expanded .room-plan-stage{display:flex;flex-direction:column;min-height:0;min-width:0}
.room-planner-expanded .room-plan-heading{margin-top:0}
.room-planner-expanded .room-plan-heading strong{font-size:16px}
.room-planner-expanded .room-plan-tools{flex:none;align-self:flex-start}
.room-planner-expanded .room-plan-tools button{font-size:12px;min-height:40px;padding:9px 15px}
.room-planner-expanded .room-plan-settings{max-width:390px;flex:none}
.room-planner-expanded .room-plan-settings label{font-size:11px}
.room-planner-expanded .room-plan-canvas{flex:1;min-height:260px;display:flex;align-items:center;justify-content:center;background:#f4f7f8}
.room-planner-expanded .room-plan-svg{width:100%;height:100%;max-height:none;min-height:260px}
.room-planner-expanded .room-plan-properties{overflow:auto;scrollbar-width:thin;padding-right:5px}
.room-planner-expanded .room-add-row{margin-top:0}
.room-planner-expanded .room-stats{flex:none;max-width:520px;width:100%;margin:auto auto 0;border-bottom:0;padding-bottom:0}
.room-planner-expanded .room-stats strong{font-size:13px}
.room-planner-expanded .room-stats span{font-size:10px}
.room-planner-expanded .room-drag-hint{font-size:11px}
.room-planner-expanded .room-planner-error{margin:8px 0 0;font-size:11px;flex:none}
.room-planner-expanded .room-planner-status:not(:empty){padding:5px 0;font-size:11px;flex:none}
@media(max-width:900px){.room-planner-expanded .room-planner-workspace{grid-template-columns:minmax(0,1fr) 255px;gap:14px}}
@media(max-width:700px){.room-plan-tools button{min-height:42px;font-size:11px}.room-plan-settings select{min-height:42px;font-size:14px}.room-plan-settings{grid-template-columns:1fr 105px}.room-planner-expanded{height:auto}.room-planner-expanded .room-planner-workspace{display:block;height:auto}.room-planner-expanded .room-plan-stage{min-height:480px}.room-planner-expanded .room-plan-canvas{min-height:320px;height:46vh;flex:none}.room-planner-expanded .room-plan-svg{height:100%;min-height:320px}.room-planner-expanded .room-plan-properties{overflow:visible;padding:18px 0 0}.room-planner-expanded .room-plan-tools{align-self:stretch}.room-planner-expanded .room-plan-tools button{font-size:11px;padding:7px 10px}.room-planner-expanded .room-stats{margin-top:10px}.room-split .secondary{min-height:44px;font-size:12px}}
/* Plan viewport controls do not change the model or undo history. */
.room-plan-zoom{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:0 0 10px}
.room-plan-zoom button{min-width:44px;min-height:44px;padding:8px 10px;border:1px solid var(--room-border);background:white;border-radius:6px;font-size:11px;color:#34536b}
.room-plan-zoom button[data-plan-zoom=in],.room-plan-zoom button[data-plan-zoom=out]{font-size:20px;padding:3px}
.room-plan-zoom button:hover{background:#eff5f8;border-color:#88a8be}
.room-plan-zoom button:disabled{opacity:.45;cursor:default}
.room-plan-zoom output{font-size:11px;min-width:40px;text-align:center;color:#6a8190;font-variant-numeric:tabular-nums}
.room-planner-expanded .room-plan-zoom{flex:none}
.room-planner[data-plan-tool=pan] .room-plan-svg,.room-planner[data-plan-tool=pan] .room-plan-room,.room-planner[data-plan-tool=pan] .room-wall-handle,.room-planner[data-plan-tool=pan] .room-door-symbol,.room-planner[data-plan-tool=pan] .room-exterior-opening{cursor:grab}
.room-wall-hit{stroke-width:32px}
.plan-opening-hit{stroke-width:32px}
@media(max-width:700px){.room-plan-zoom button{font-size:12px}.room-plan-zoom output{font-size:12px}}
.room-planner-expanded .room-planner-status{height:38px;min-height:38px;max-height:38px;overflow:auto;padding:5px 0;font-size:11px;line-height:1.45;box-sizing:border-box;flex:none}
