.room-openings,.room-settings { margin:8px 12px; padding:0; border:1px solid #d6dde4; border-radius:10px; background:#f8fafc; }
.room-openings > .room-openings-header,.room-settings > .room-settings-header { display:flex; align-items:center; gap:10px; box-sizing:border-box; min-height:42px; padding:10px 12px; cursor:pointer; list-style:none; }
.room-openings > .room-openings-header::-webkit-details-marker,.room-settings > .room-settings-header::-webkit-details-marker { display:none; }
.room-openings > .room-openings-header::after,.room-settings > .room-settings-header::after { content:""; width:7px; height:7px; margin-left:2px; flex-shrink:0; border-right:2px solid #536978; border-bottom:2px solid #536978; transform:rotate(45deg); }
.room-openings[open] > .room-openings-header::after,.room-settings[open] > .room-settings-header::after { transform:rotate(225deg); }
.room-settings-header > span { color:#253b4b; font:700 14px Arial,sans-serif; }
.build-panel > .room-settings { margin:14px 0 0; }
.room-settings[hidden] { display:none!important; }
.room-settings > .room-settings-header::after { margin-left:auto; }
.room-settings[open] > .room-settings-header { border-bottom:1px solid #dde4ea; }
.room-settings > .room-settings-header:focus-visible { outline:3px solid #84b9de; outline-offset:2px; }
.room-openings-header h4 { margin:0; color:#253b4b; font:700 14px Arial,sans-serif; }
.room-openings-header small { margin-left:auto; color:#697d8b; font:11px Arial,sans-serif; white-space:nowrap; }
.room-openings-content { padding:12px; border-top:1px solid #dde4ea; }
.room-opening-actions { display:flex; gap:8px; }
.room-depth-label { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:10px; color:#536978; font:12px Arial,sans-serif; }
.room-openings .room-depth-label input { width:92px; }
.room-opening-actions button { display:flex; align-items:center; gap:7px; min-height:38px; padding:7px 12px; border:1px solid #a7bbcc; border-radius:8px; background:#fff; color:#24577d; cursor:pointer; font:700 13px Arial,sans-serif; }
.room-opening-actions svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.6; }
.room-opening-empty,.room-opening-note { margin:10px 0 0; font:12px/1.45 Arial,sans-serif; color:#667883; }
.room-openings details { margin-top:12px; border-top:1px solid #dde4ea; padding-top:10px; }
.room-openings details > summary { cursor:pointer; color:#314d62; font:700 12px Arial,sans-serif; }
.room-opening-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.room-opening-grid label { display:flex; flex-direction:column; gap:5px; color:#485d6b; font:12px Arial,sans-serif; }
.room-opening-grid .room-opening-chooser { grid-column:1 / -1; }
.room-openings input,.room-openings select { box-sizing:border-box; width:100%; min-width:0; min-height:37px; padding:7px 8px; border:1px solid #b8c6d0; border-radius:7px; background:#fff; color:#253b4b; font:13px Arial,sans-serif; }
.room-opening-delete { margin-top:12px; padding:7px 10px; border:1px solid #ddb9b1; border-radius:7px; background:#fff; color:#964a3b; cursor:pointer; font:12px Arial,sans-serif; }
.room-opening-warning { margin:9px 0 0; color:#9b5e14; font:12px/1.4 Arial,sans-serif; }
.room-opening-warning:empty { display:none; }
.room-openings button:focus-visible,.room-openings input:focus-visible,.room-openings select:focus-visible,.room-openings summary:focus-visible { outline:3px solid #84b9de; outline-offset:2px; }
.room-openings [hidden] { display:none!important; }
.room-openings input:disabled { color:#6d7b85; background:#eef1f3; }
.scene-structures { position:absolute; z-index:4; pointer-events:none; }
.scene-structures[hidden] { display:none!important; }
.iso-panel > .iso-viewport { position:relative; display:block; padding:0; border:0; }
.iso-panel #isoDimensionsCanvas { position:absolute; inset:0; width:100%; height:100%; background:transparent; pointer-events:none; }
.iso-panel #isoDimensionsCanvas[hidden],.iso-dimension-summary[hidden] { display:none!important; }
.iso-dimension-summary { margin:0; padding:10px 13px; border-top:1px solid #d6dde4; background:#f0f6fa; color:#24577d; font:12px/1.5 Arial,sans-serif; }
.iso-controls #isoShowDimensions.is-active { border-color:#246796; background:#e6f1f8; color:#174f76; }
@media (max-width:540px) { .room-opening-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .room-openings,.room-settings { margin:8px; } .room-openings-content { padding:10px; } }
@media print { .room-openings,.room-settings { display:none!important; } }
