/* Instalaciones: unfolded interior walls of a room (js/installations.js). */
.install-editor { position:fixed; left:0; right:0; top:var(--topbar-h); bottom:var(--statusbar-h); z-index:8000; display:flex; flex-direction:column; background:#f0f0e8; color:#222; font:13px/1.4 'Segoe UI',system-ui,sans-serif; }
.install-editor[hidden] { display:none; }
body.install-open #recent-objects, body.install-open #map-scale-widget, body.install-open #props-panel { display:none !important; }
#plan-view-switcher { z-index:8100; }
.install-editor .ie-bar { display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; padding:6px 10px 6px 12px; background:#e4e0d8; border-bottom:1px solid #c8c4bc; margin-top:40px; }
.install-editor .ie-bar > strong { font-weight:600; font-size:13px; }
.install-editor .ie-bar label { display:flex; align-items:center; gap:6px; font-size:12px; color:#555; }
.install-editor select, .install-editor input { font:inherit; font-size:12px; padding:2px 4px; border:1px solid #ccc; border-radius:2px; background:#fff; color:#222; }
.install-editor .ie-tools { display:flex; flex-wrap:wrap; gap:6px 8px; flex:1 1 0; min-width:0; }
.install-editor .ie-end { display:flex; gap:4px; align-self:flex-start; margin-left:auto; }
.install-editor .ie-bar { flex-wrap:nowrap; align-items:flex-start; }
.install-editor .ie-bar > strong, .install-editor .ie-bar > label { align-self:center; white-space:nowrap; }
.install-editor .ie-group { display:flex; align-items:center; gap:2px; padding-left:8px; border-left:1px solid #c8c4bc; }
.install-editor .ie-group:first-child { border-left:0; padding-left:0; }
.install-editor .ie-group-label { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:#777; margin-right:4px; }
.install-editor [data-tool] { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; border:1px solid #c4c0b8; border-radius:3px; background:#faf9f6; color:#333; font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
.install-editor [data-tool] i { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.install-editor [data-tool]:hover { background:#fff; border-color:#999; }
.install-editor [data-tool][aria-pressed="true"] { background:#007acc; border-color:#007acc; color:#fff; }
.install-editor .ie-icon { width:26px; height:24px; border:1px solid #c4c0b8; border-radius:3px; background:#faf9f6; cursor:pointer; font:inherit; }
.install-editor .ie-stage { flex:1; min-height:0; overflow:auto; padding:10px; outline:none; }
.install-editor.is-drawing .ie-stage { cursor:crosshair; }
.install-editor .ie-svg { display:block; touch-action:none; user-select:none; }
.install-editor .ie-empty { max-width:46ch; margin:60px auto; color:#666; text-align:center; }
.install-editor .ie-foot { display:flex; align-items:center; flex-wrap:wrap; gap:6px 16px; padding:6px 12px; border-top:1px solid #c8c4bc; background:#e8e4dc; font-size:12px; min-height:34px; }
.install-editor #ie-props { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.install-editor #ie-props:empty { display:none; }
.install-editor #ie-props label { display:flex; align-items:center; gap:4px; color:#555; }
.install-editor #ie-props input { width:64px; }
.install-editor #ie-hint { color:#666; }
.install-editor #ie-totals { margin-left:auto; color:#444; }

/* Drawing */
.ie-wall { fill:#fff; stroke:#9e9b93; stroke-width:.8; }
.ie-door { fill:#f0f0e8; stroke:#b59a6a; stroke-width:.8; stroke-dasharray:4 2; }
.ie-window { fill:#dcecf3; stroke:#6d9db0; stroke-width:.8; }
.ie-corner { stroke:#9e9b93; stroke-width:1; stroke-dasharray:3 3; }
.ie-wall-name { font-size:11px; fill:#555; }
.ie-hatch { stroke:#c8c4bc; stroke-width:1.2; }
.ie-floor { stroke:none; }
.ie-ruler line { stroke:#999; stroke-width:.6; }
.ie-ruler text { font-size:8px; fill:#888; }
.ie-furn { fill:rgba(120,130,140,.08); stroke:#8a939e; stroke-width:.7; stroke-dasharray:4 3; }
.ie-radiator { stroke:#c026d3; fill:rgba(192,38,211,.07); stroke-dasharray:none; }
.ie-port { fill:#fff; stroke:#c026d3; stroke-width:1.2; }
.ie-furn-label { font-size:8px; fill:#8a939e; }
.ie-plate { fill:#fff; stroke-width:1; }
.ie-sym { fill:none; stroke-width:.8; }
.ie-fixture { cursor:pointer; }
.ie-fixture.is-ghost { opacity:.55; pointer-events:none; }
.ie-fixture.is-selected .ie-plate { stroke:#007acc; stroke-width:2; }
.ie-hit-box { fill:transparent; stroke:none; }
.ie-run-line { stroke-linecap:round; stroke-linejoin:round; fill:none; }
.ie-run { cursor:pointer; }
.ie-run.is-selected .ie-run-line { filter:drop-shadow(0 0 2px #007acc); }
.ie-hit { stroke:transparent; stroke-width:10; }
.ie-draft { pointer-events:none; }
.ie-draft-line { stroke-linecap:round; stroke-linejoin:round; opacity:.85; }
.ie-cursor-text, .ie-dim-text { font-size:9px; fill:#333; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.ie-dim line { stroke:#007acc; stroke-width:.6; stroke-dasharray:3 2; }

[data-theme="dark"] .install-editor { background:#1e1e1e; color:#e0e0e0; }
[data-theme="dark"] .install-editor .ie-bar { background:#2d2d30; border-bottom-color:#3a3a3d; }
[data-theme="dark"] .install-editor .ie-foot { background:#252527; border-top-color:#3a3a3d; }
[data-theme="dark"] .install-editor .ie-bar label, [data-theme="dark"] .install-editor #ie-props label, [data-theme="dark"] .install-editor #ie-hint, [data-theme="dark"] .install-editor #ie-totals { color:#aaa; }
[data-theme="dark"] .install-editor [data-tool], [data-theme="dark"] .install-editor .ie-icon, [data-theme="dark"] .install-editor select, [data-theme="dark"] .install-editor input { background:#2a2a2a; border-color:#444; color:#ddd; }
[data-theme="dark"] .install-editor [data-tool][aria-pressed="true"] { background:#007acc; border-color:#007acc; color:#fff; }
[data-theme="dark"] .install-editor .ie-group { border-left-color:#444; }
[data-theme="dark"] .ie-wall { fill:#2a2a2a; stroke:#555; }
[data-theme="dark"] .ie-door { fill:#1e1e1e; }
[data-theme="dark"] .ie-window { fill:#20323a; }
[data-theme="dark"] .ie-wall-name, [data-theme="dark"] .ie-ruler text { fill:#aaa; }
[data-theme="dark"] .ie-hatch { stroke:#3a3a3d; }
[data-theme="dark"] .ie-plate { fill:#333; }
[data-theme="dark"] .ie-cursor-text, [data-theme="dark"] .ie-dim-text { fill:#eee; stroke:#1e1e1e; }
@media (max-width:768px){ .install-editor .ie-bar { margin-top:36px; } .install-editor .ie-group-label { display:none; } }

/* Tabs, shared controls and the building list */
.install-editor .ie-bar { flex-wrap:wrap; }
.install-editor .ie-head { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; flex-basis:100%; }
.install-editor .ie-tabs { display:inline-flex; border:1px solid #c4c0b8; border-radius:4px; overflow:hidden; }
.install-editor .ie-tabs button { border:0; padding:3px 10px; background:#faf9f6; color:#333; font:inherit; font-size:12px; cursor:pointer; }
.install-editor .ie-tabs button + button { border-left:1px solid #c4c0b8; }
.install-editor .ie-tabs button[aria-pressed="true"] { background:#ff9c3a; color:#1a1d24; font-weight:600; }
.install-editor #ie-level-cm { width:60px; }
.install-editor #ie-list-btn[aria-pressed="true"] { background:#007acc; border-color:#007acc; color:#fff; }
.install-editor:not(.mode-plan) .ie-level-wrap { display:none; }
.install-editor.mode-plan .ie-room-wrap { display:none; }
.install-editor.mode-plan [data-tool]:not([data-tool="select"]):not([data-tool^="run:"]):not([data-tool="piece"]) { display:none; }
.install-editor .ie-body { flex:1; min-height:0; display:flex; }
.install-editor .ie-body .ie-stage { flex:1; min-width:0; }
.install-editor .ie-list { width:340px; max-width:45vw; overflow:auto; border-left:1px solid #c8c4bc; background:#faf9f6; padding:8px 10px; font-size:12px; }
.install-editor .ie-list header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.install-editor .ie-list ol { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.install-editor .ie-list li { display:grid; grid-template-columns:1fr auto; gap:4px 8px; padding:6px 8px; border:1px solid #ddd; border-radius:4px; background:#fff; }
.install-editor .ie-list li.is-selected { border-color:#007acc; box-shadow:0 0 0 1px #007acc; }
.install-editor .ie-li-head { display:flex; gap:8px; align-items:baseline; grid-column:1 / -1; }
.install-editor .ie-li-sys { color:#777; font-size:11px; }
.install-editor .ie-li-where { grid-column:1 / -1; color:#555; }
.install-editor .ie-list input { width:100%; }
.install-editor .ie-list-empty { color:#777; }
.ie-room { fill:#fbfaf6; stroke:none; }
.ie-room-name { font-size:14px; fill:#8a8a80; font-weight:600; letter-spacing:.03em; }
.ie-wall-line { stroke:#9e9b93; stroke-linecap:square; }
.ie-plan-furn polygon { fill:rgba(120,130,140,.06); stroke:#a8afb6; stroke-width:1; stroke-dasharray:6 4; vector-effect:non-scaling-stroke; }
.ie-plan-opening polygon { fill:#f0ede6; stroke:#c8b897; stroke-width:1; vector-effect:non-scaling-stroke; }
.ie-plan-fixture polygon { fill:#fff3e0; stroke:#d97706; stroke-width:1.5; vector-effect:non-scaling-stroke; cursor:pointer; }
.ie-plan-piece polygon { fill:#e0f2fe; stroke:#0284c7; stroke-width:1.5; vector-effect:non-scaling-stroke; cursor:pointer; }
.ie-plan-piece.ie-radiator polygon { fill:#fae8ff; stroke:#c026d3; }
.ie-installpiece { stroke:#0284c7; fill:rgba(2,132,199,.10); stroke-dasharray:none; cursor:pointer; }
.is-selected > polygon { stroke:#007acc !important; stroke-width:3 !important; }
.ie-riser { fill:#fff; }
.ie-riser-text { fill:#333; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.is-flash { animation:ie-flash 1.2s ease 2; }
@keyframes ie-flash { 50% { opacity:.2; } }
@media (prefers-reduced-motion:reduce) { .is-flash { animation:none; } }
[data-theme="dark"] .install-editor .ie-tabs button { background:#2a2a2a; color:#ddd; }
[data-theme="dark"] .install-editor .ie-tabs { border-color:#444; }
[data-theme="dark"] .install-editor .ie-list { background:#232323; border-left-color:#3a3a3d; }
[data-theme="dark"] .install-editor .ie-list li { background:#2a2a2a; border-color:#3a3a3a; }
[data-theme="dark"] .install-editor .ie-li-where { color:#aaa; }
[data-theme="dark"] .ie-room { fill:#262626; }
[data-theme="dark"] .ie-room-name { fill:#777; }
[data-theme="dark"] .ie-riser-text { fill:#eee; stroke:#1e1e1e; }

/* Elevator dialog (js/elevator.js) */
.ml-dialog .ml-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ml-dialog select { padding:5px 7px; border:1px solid #ccc; border-radius:3px; font:inherit; background:#fff; color:#222; }
[data-theme="dark"] .ml-dialog select { background:#2a2a2a; color:#e0e0e0; border-color:#444; }
@media (max-width:520px){ .ml-dialog .ml-row { grid-template-columns:1fr; } }

/* Ver estancias (js/room-view.js) */
.ml-rooms { width:min(760px,calc(100vw - 32px)); }
.ml-rooms__plan { border:1px solid #ddd; border-radius:4px; background:#faf9f6; }
.ml-rooms__svg { display:block; width:100%; height:min(52vh,460px); }
.ml-room polygon { fill:#fff; stroke:#c8c4bc; stroke-width:2; vector-effect:non-scaling-stroke; cursor:pointer; }
.ml-room:hover polygon { fill:#fff1e2; }
.ml-room.is-on polygon { fill:#ffd9b0; stroke:#ff9c3a; stroke-width:3; }
.ml-room text { font:600 34px 'Segoe UI',system-ui,sans-serif; fill:#666; pointer-events:none; }
.ml-room.is-on text { fill:#1a1d24; }
.ml-rooms__wall { stroke:#8f8c84; stroke-linecap:square; pointer-events:none; }
.ml-rooms .ml-range { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:4px 10px; }
.ml-rooms .ml-range input { grid-column:1 / -1; width:100%; }
.ml-rooms__list { display:flex; flex-wrap:wrap; gap:4px 14px; }
.ml-rooms__list label { flex-direction:row; align-items:center; gap:4px; font-size:12px; }
#room-view-chip { position:fixed; top:calc(var(--topbar-h) + 8px); left:300px; z-index:8100; display:flex; align-items:center; gap:6px; padding:3px 4px 3px 10px; border-radius:4px; background:#1a1d24; color:#eee; font:12px 'Segoe UI',system-ui,sans-serif; box-shadow:0 2px 8px rgba(0,0,0,.25); max-width:calc(100vw - 320px); }
#room-view-chip .rv-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#room-view-chip button { border:0; border-radius:3px; padding:3px 8px; background:#2f3542; color:#fff; font:inherit; cursor:pointer; white-space:nowrap; }
#room-view-chip button:hover { background:#ff9c3a; color:#1a1d24; }
#plan-view-switcher #view-rooms[aria-pressed="true"] { background:#ff9c3a; color:#1a1d24; font-weight:600; }
[data-theme="dark"] .ml-rooms__plan { background:#252525; border-color:#3a3a3a; }
[data-theme="dark"] .ml-room polygon { fill:#2a2a2a; stroke:#444; }
[data-theme="dark"] .ml-room text { fill:#bbb; }
[data-theme="dark"] .ml-room.is-on polygon { fill:#5a3a1a; }
[data-theme="dark"] .ml-room.is-on text { fill:#fff; }

/* ── Trabajar por estancias (js/room-view.js): tira de estancias como las diapositivas de una presentación ── */
body.room-focus { --rf-w:208px; }
body.room-focus #canvas-wrap { margin-left:var(--rf-w); }
body.room-focus #plan-view-switcher { left:calc(var(--rf-w) + 8px); }
body.room-focus #recent-objects { left:calc(var(--rf-w) + 12px); }
body.room-focus #map-scale-widget { left:calc(var(--rf-w) + 16px); }
body.room-focus.shared-view #viewer3d-panel { left:var(--rf-w); width:auto; }
#room-strip { position:fixed; top:var(--topbar-h); bottom:var(--statusbar-h); left:0; width:var(--rf-w,208px); z-index:420; display:flex; flex-direction:column; background:var(--surface2); border-right:1px solid var(--border); color:var(--text); font:12px 'Segoe UI',system-ui,sans-serif; }
#room-strip .rf-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; padding:8px 10px 6px 12px; font-weight:600; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); }
#room-strip .rf-actions { display:flex; gap:4px; width:100%; }
#room-strip .rf-actions button { border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:4px; padding:4px 7px; font:inherit; font-size:11px; letter-spacing:0; text-transform:none; font-weight:500; white-space:nowrap; flex:1; cursor:pointer; }
#room-strip .rf-actions button:hover { background:var(--sidebar-hov); }
#room-strip .rf-list { list-style:none; margin:0; padding:4px 10px 10px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:8px; counter-reset:room; }
#room-strip .rf-list li { counter-increment:room; display:grid; grid-template-columns:16px 1fr; align-items:start; gap:4px; }
#room-strip .rf-list li::before { content:counter(room); font-size:11px; color:var(--text-muted); text-align:right; padding-top:4px; font-variant-numeric:tabular-nums; }
#room-strip .rf-room { display:grid; grid-template-columns:1fr auto; gap:2px 6px; width:100%; padding:4px; border:2px solid transparent; border-radius:5px; background:var(--surface); box-shadow:0 0 0 1px var(--border); color:inherit; font:inherit; text-align:left; cursor:pointer; }
#room-strip .rf-room:hover { box-shadow:0 0 0 1px #ff9c3a88; }
#room-strip .rf-room.is-on { border-color:#ff9c3a; box-shadow:none; }
#room-strip .rf-room:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
#room-strip .rf-thumb { grid-column:1 / -1; display:block; width:100%; height:92px; background:#fff; border-radius:3px; }
#room-strip .rf-floor { fill:#faf8f4; }
#room-strip .rf-walls { fill:none; stroke:#8f8c84; stroke-width:15; stroke-linejoin:miter; }
#room-strip .rf-item { fill:#c9d8f0; stroke:#7f9bc7; stroke-width:2; }
#room-strip .rf-name { font-weight:600; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#room-strip .rf-area { font-size:11px; color:var(--text-muted); font-variant-numeric:tabular-nums; white-space:nowrap; }
#room-strip .rf-hint { margin:0; padding:8px 12px; border-top:1px solid var(--border); font-size:11px; line-height:1.4; color:var(--text-muted); }
@media (max-width:700px){ body.room-focus { --rf-w:132px; } #room-strip .rf-thumb { height:64px; } #room-strip .rf-hint { display:none; } }

/* Ficha del muro de la estancia (js/room-walls.js) */
#room-wall-card { position:fixed; z-index:430; display:grid; gap:6px; width:212px; padding:8px 10px; border-radius:6px; background:var(--surface); color:var(--text); border:1px solid var(--border); box-shadow:0 6px 20px #0003; font:12px 'Segoe UI',system-ui,sans-serif; }
#room-wall-card .rw-head { font-weight:600; font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted); }
#room-wall-card .rw-row { display:flex; align-items:center; gap:6px; }
#room-wall-card .rw-row input { width:72px; padding:3px 5px; border:1px solid var(--border); border-radius:4px; background:var(--surface2); color:var(--text); font:inherit; font-variant-numeric:tabular-nums; text-align:right; }
#room-wall-card .rw-nudge { display:grid; grid-template-columns:repeat(6,1fr); gap:3px; }
#room-wall-card .rw-nudge button { padding:3px 0; border:1px solid var(--border); border-radius:4px; background:var(--surface2); color:var(--text); font:inherit; font-variant-numeric:tabular-nums; cursor:pointer; }
#room-wall-card .rw-nudge button:hover { background:var(--sidebar-hov); }
#room-wall-card .rw-note { color:var(--text-muted); }
#room-wall-card .rw-warn { padding:4px 6px; border-radius:4px; background:#fff3d6; color:#7a4b00; }
[data-theme="dark"] #room-wall-card .rw-warn { background:#4a3510; color:#ffd88a; }

/* Distancias de la puerta o ventana seleccionada a las paredes (js/opening-guides.js) */
.opening-gap { position:fixed; z-index:425; width:56px; padding:2px 4px; border:1px solid #2563eb; border-radius:4px; background:var(--surface); color:#1d4ed8; font:600 11px 'Segoe UI',system-ui,sans-serif; font-variant-numeric:tabular-nums; text-align:center; box-shadow:0 1px 4px #0002; }
.opening-gap::-webkit-inner-spin-button { display:none; }
[data-theme="dark"] .opening-gap { color:#93c5fd; border-color:#60a5fa; }
