/* Prevent browser-native drag ghosts; module movement is handled with Pointer Events. */
html,body,#workspace,.workspace,.stage,.plan-svg,.module-library,.library-module,.module-card,
svg,svg *,button,img { -webkit-user-drag:none; user-drag:none; }
.plan-svg,.plan-svg * { user-select:none; -webkit-user-select:none; }
.library-module,.module-card { user-select:none; -webkit-user-select:none; }
:root{--ink:#171714;--muted:#777770;--line:#deded8;--paper:#f7f7f3;--white:#fff;--soft:#efefe9;--green:#5f7f62;--amber:#ad742f;--red:#a84d43}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}button,input{font:inherit}.screen{display:none;height:100%}.screen.active{display:flex}.splash{align-items:center;justify-content:center;flex-direction:column;background:#fff}.splash img{width:240px;max-height:80px;object-fit:contain}.splash p,.kicker{letter-spacing:.2em;font-size:10px;color:#8a8a82}.loader{width:60px;height:1px;background:#ddd;margin-top:34px;overflow:hidden}.loader:after{content:"";display:block;height:100%;width:35%;background:#111;animation:load 1.1s infinite}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(300%)}}.auth{align-items:center;justify-content:center;background:radial-gradient(circle at 50% 25%,#fff 0,#f7f7f4 55%,#ecece7 100%)}.auth-card{width:min(420px,92vw);background:rgba(255,255,255,.96);padding:44px;border:1px solid var(--line);box-shadow:0 28px 70px rgba(0,0,0,.07)}.auth-card.wide{width:min(650px,92vw)}.auth-card img{width:165px;max-height:48px;object-fit:contain;margin-bottom:22px}.auth-card h1{font-size:34px;letter-spacing:-.04em;margin:6px 0 30px}.auth-card label{display:grid;gap:8px;font-size:11px;color:var(--muted);margin:15px 0}.auth-card input{width:100%;border:0;border-bottom:1px solid #bbb;background:transparent;padding:10px 0;outline:none;font-size:15px;color:var(--ink)}.auth-card input:focus{border-color:#111}.primary,.dark{border:0;background:#151512;color:#fff;padding:13px 18px;cursor:pointer}.auth-card .primary{width:100%;margin-top:16px}.text-btn,.back{border:0;background:none;cursor:pointer;color:#666;padding:14px 0}.auth-card small{display:block;margin-top:26px;color:#999;font-size:10px}.msg{min-height:18px;font-size:12px;color:var(--red)}.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.device{display:flex;justify-content:space-between;background:#f2f2ee;padding:13px;margin-top:18px;font-size:11px}.workspace-screen.active{display:grid;grid-template-rows:66px 1fr;overflow:hidden}.workspace-screen header{display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:24px}.brand img{width:130px;max-height:38px;object-fit:contain}.brand span{font-size:12px;font-weight:650}.workspace-screen nav{display:flex;gap:8px}.workspace-screen nav button,.viewbar button,.combine-grid button,.tool{border:1px solid var(--line);background:#fff;padding:8px 11px;cursor:pointer}.workspace-grid{display:grid;grid-template-columns:260px minmax(580px,1fr) 300px;min-height:0}.left,.right{background:#fff;overflow:auto}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}.left section,.right section,.project-block{padding:20px;border-bottom:1px solid var(--line)}.project-block span,.eyebrow{font-size:9px;letter-spacing:.16em;color:#888}.project-block h2{font-size:18px;margin:8px 0 4px}.project-block p{font-size:11px;color:#777;margin:0}.module-card{width:100%;display:grid;grid-template-columns:58px 1fr 24px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;padding:12px;margin-top:9px;cursor:pointer}.module-card:hover{border-color:#111}.module-card b,.module-card small{display:block}.module-card b{font-size:12px}.module-card small{font-size:10px;color:#777;margin-top:4px}.module-card strong{font-size:20px}.frame{display:block;height:32px;border:2px solid #777;position:relative}.frame.short{width:38px}.frame.long{width:54px}.frame:before,.frame:after{content:"";position:absolute;width:6px;height:6px;background:#111}.frame:before{left:-4px;top:-4px}.frame:after{right:-4px;bottom:-4px}.hint{font-size:10px;line-height:1.5;color:#777}.tool{width:100%;text-align:left;margin-top:7px}.tool.active{background:#171714;color:#fff;border-color:#171714}.combine-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.combine-grid button:last-child{grid-column:span 2}.workspace-grid main{min-width:0;display:grid;grid-template-rows:50px 1fr 74px}.viewbar{display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#fff;border-bottom:1px solid var(--line)}.viewbar>div{display:flex;gap:6px}.view.active{background:#171714;color:#fff;border-color:#171714}.canvas{position:relative;overflow:hidden;background:radial-gradient(circle at center,#fff 0,#f8f8f4 64%,#ededE8 100%)}.empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:3}.empty .plus{width:54px;height:54px;border:1px solid #aaa;border-radius:50%;display:grid;place-items:center;font-size:30px}.empty h3{font-size:17px;margin:18px 0 6px}.empty p{font-size:11px;color:#777}.plan-svg{width:100%;height:100%;display:none}.plan-svg.active{display:block}.iso-scene{display:none;position:absolute;inset:0;perspective:1100px;cursor:grab}.iso-scene.active{display:block}.iso-world{position:absolute;left:50%;top:50%;width:1px;height:1px;transform-style:preserve-3d;transform:rotateX(62deg) rotateZ(-38deg) scale(.8)}.iso-module{position:absolute;transform-style:preserve-3d}.beam{position:absolute;background:#dadad4;border:1px solid #aaa}.beam.x{height:10px}.beam.y{width:10px}.post{position:absolute;width:11px;height:11px;background:#aaa;border:2px solid #333;border-radius:1px}.corner{position:absolute;width:15px;height:15px;background:#161613;box-shadow:inset 0 0 0 3px #777}.gridline{position:absolute;background:rgba(40,40,35,.11)}.orbit-help{position:absolute;right:18px;bottom:18px;background:rgba(255,255,255,.9);border:1px solid var(--line);padding:8px 10px;font-size:9px;letter-spacing:.08em}.toast{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:#171714;color:#fff;padding:10px 14px;font-size:11px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1}footer{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--line)}footer div{padding:14px;border-right:1px solid var(--line)}footer span{display:block;font-size:9px;letter-spacing:.1em;color:#888;text-transform:uppercase}footer b{display:block;margin-top:6px;font-size:14px}.score b{font-size:46px;letter-spacing:-.06em}.score span{font-size:14px}.bar{height:4px;background:#ddd;margin:12px 0}.bar i{display:block;height:100%;width:100%;background:var(--green)}.right p{font-size:11px;color:#777;line-height:1.5}.selection-empty{font-size:11px;color:#888}.selection-card h3{font-size:15px;margin:0 0 8px}.selection-card p{margin:0}.rules{list-style:none;padding:0;margin:0}.rules li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #eee;font-size:11px}.rules b{font-size:9px;color:var(--green)}.advice{font-size:11px;line-height:1.55;background:#f2f2ee;padding:12px}.module-outline{fill:rgba(255,255,255,.8);stroke:#171714;stroke-width:3}.module-selected{fill:rgba(230,230,224,.9);stroke:#171714;stroke-width:4}.grid-major{stroke:#c9c9c2;stroke-width:1}.corner-node{fill:#171714}.wall{stroke:#171714;stroke-width:7;stroke-linecap:square}.wall.preview{stroke:#777;stroke-dasharray:7 5}.wall.selected{stroke:#a84d43}.module-label{font-size:10px;fill:#555}.danger{color:var(--red)}@media(max-width:1000px){.workspace-grid{grid-template-columns:220px 1fr}.right{display:none}.two{grid-template-columns:1fr}}
.viewport-tools button.active{background:#171714;color:#fff;border-color:#171714}.viewport-tools button#zoomIn,.viewport-tools button#zoomOut{min-width:34px;font-size:16px}.plan-svg{cursor:crosshair}.plan-svg.pan-active{cursor:grab}
.unit-control{display:flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.08em;color:#777;border:1px solid var(--line);padding:0 8px;background:#fff}.unit-control select{border:0;background:transparent;font:inherit;color:#171714;outline:none;padding:7px 2px}.module-outline{fill:rgba(255,255,255,.18);stroke:#171714;stroke-width:3}.module-selected{fill:rgba(230,230,224,.22);stroke:#171714;stroke-width:4}.grid-major{stroke:#aaa9a1;stroke-width:1;vector-effect:non-scaling-stroke}.grid-axis{stroke:#65655f;stroke-width:1.5;vector-effect:non-scaling-stroke}.iso-scene svg{width:100%;height:100%;display:block}.solid-face{stroke:none;fill:#d8d8d1}.solid-face.selected{fill:#b8b8b1}.wire-edge{stroke:#1b1b18;stroke-width:1.05;vector-effect:non-scaling-stroke;fill:none}.iso-scene{background:radial-gradient(circle at 50% 44%,#fff 0,#f5f5f1 62%,#e9e9e3 100%)}
/* wr282 · hierarquia visual: estrutura esbatida · construção em evidência (base) */
.solid-face.casting{fill:#c5c5c0;fill-opacity:.38}.solid-face.beam{fill:#c8cbcf;fill-opacity:.32}.solid-face.post{fill:#bec2c6;fill-opacity:.34}.solid-face.key{fill:#d2c8bc;fill-opacity:.36}.solid-face.keyHole{fill:#6a6560;fill-opacity:.55}.solid-face.travessa,.solid-face.caixao{fill:#cbb99a;fill-opacity:.52}.solid-face.portico{fill:#cbb99a;fill-opacity:.52}.solid-face.fecho{fill:#b7b3aa;fill-opacity:.22}.solid-face.osb{fill:#c4b89a;fill-opacity:.24}
.wire-edge.casting{stroke:#9a9a94;stroke-width:.85;stroke-opacity:.55}.wire-edge.beam{stroke:#9aa0a6;stroke-width:.7;stroke-opacity:.48}.wire-edge.post{stroke:#94999e;stroke-width:.75;stroke-opacity:.5}.wire-edge.key{stroke:#b0a498;stroke-width:.7;stroke-opacity:.5}.wire-edge.travessa,.wire-edge.caixao{stroke:#a8926e;stroke-width:.85;stroke-opacity:.62}.wire-edge.portico{stroke:#a8926e;stroke-width:.85;stroke-opacity:.62}.wire-edge.fecho{stroke:#8e8a82;stroke-width:.55;stroke-opacity:.35}.wire-edge.osb{stroke:#9a8d6e;stroke-width:.55;stroke-opacity:.38}
.solid-face.floor3d,.solid-face.floorFecho3d{fill:#8f9a86;fill-opacity:.55}.solid-face.roof3d,.solid-face.roofFecho3d{fill:#7d8a96;fill-opacity:.52}.solid-face.exterior3d{fill:#6f736c;fill-opacity:.58}.solid-face.closure3d{fill:#757970;fill-opacity:.56}.solid-face.interior3d,.solid-face.wall3d{fill:#9a968c;fill-opacity:.5}.solid-face.window3d{fill:#9eb8c2;fill-opacity:.42}
.wire-edge.floor3d,.wire-edge.floorFecho3d{stroke:#4f5a48;stroke-width:1.05}.wire-edge.roof3d,.wire-edge.roofFecho3d{stroke:#44515c;stroke-width:1.05}.wire-edge.exterior3d,.wire-edge.closure3d{stroke:#3a3d38;stroke-width:1.1}.wire-edge.interior3d,.wire-edge.wall3d{stroke:#5a564c;stroke-width:.95}.wire-edge.window3d{stroke:#5a7a86;stroke-width:.9}
.grid-major,.grid-axis{pointer-events:none}.module-label,.corner-node{pointer-events:none}

/* v0.1.4 interaction and drawing refinement */
.module-card.draggable{cursor:grab}.module-card.draggable:active{cursor:grabbing}.canvas.drag-over{box-shadow:inset 0 0 0 2px #6d6d67}.stack-select{display:grid;gap:6px;font-size:10px;color:#777}.stack-select select{border:1px solid var(--line);background:#fff;padding:8px}.block-row{display:grid;gap:6px;margin-top:8px}.block-card{border:1px solid var(--line);background:#f8f8f5;text-align:left;padding:9px;cursor:grab;font-size:11px}.block-card small{display:block;color:#888;margin-top:3px}.module-outline{stroke:#6d6d67;stroke-width:1.15}.module-selected{stroke:#252522;stroke-width:1.8}.grid-major{stroke:#d1d1cb;stroke-width:.7}.grid-axis{stroke:#9b9b95;stroke-width:1}.corner-node{fill:#30302d}.wall-body{fill:#b9b9b4;fill-opacity:.72;stroke:#555550;stroke-width:.65}.wall-body.selected{fill:#8e8e88;stroke:#232320;stroke-width:1}.wall-handle{fill:#fff;stroke:#222;stroke-width:1.2;cursor:ew-resize}.wall-centerline{stroke:#5f5f5a;stroke-width:.45;stroke-dasharray:3 3;pointer-events:none}.solid-face.wall3d{fill:#a8a8a2;fill-opacity:.22}.wire-edge.wall3d{stroke:#575752;stroke-width:.7}.solid-face.exterior3d{fill:#8e8e88;fill-opacity:.28}.wire-edge.exterior3d{stroke:#454542;stroke-width:.8}.solid-face.roof3d,.solid-face.floor3d{fill:#bcbcb6;fill-opacity:.24}.wire-edge.roof3d,.wire-edge.floor3d{stroke:#63635e;stroke-width:.7}.wire-edge.beam{stroke:#9aa0a6;stroke-width:.68;stroke-opacity:.48}.wire-edge.post{stroke:#94999e;stroke-width:.78;stroke-opacity:.5}.wire-edge.casting{stroke:#9a9a94;stroke-width:.85;stroke-opacity:.55}.module-label{font-size:9px}.selection-card h3{font-size:14px}.selection-card p{font-size:10px}.drag-ghost{opacity:.5}.plan-svg{touch-action:none}.resize-cursor{cursor:ew-resize}

/* v0.1.5 refinement */
.left .tool{font-size:10px;padding:7px 9px;margin-top:5px;border-color:#e4e4df}
.left .block-card{font-size:9.5px;padding:7px 9px}
.left .block-card small{font-size:8.5px}
.left .stack-select{font-size:9px}
.left .stack-select select{font-size:10px;padding:7px 8px}
.viewbar{height:44px;padding:0 13px}
.viewbar>div:first-child{gap:0;border-bottom:1px solid #dadad5}
.viewbar .view{border:0;background:#fff;color:#777;padding:9px 15px;font-size:9px;letter-spacing:.15em;border-radius:0}
.viewbar .view.active{background:#171714;color:#fff}
.viewport-tools{display:flex;align-items:center;gap:3px}
.viewport-tools button,.unit-control{border:0;background:#fff;color:#777;padding:7px 8px;font-size:9px;letter-spacing:.035em;border-radius:0}
.viewport-tools button:hover{color:#111;background:#f2f2ee}
.viewport-tools button.active,.viewport-tools .dark{background:#171714;color:#fff}
.viewport-tools button:disabled{opacity:.28;cursor:not-allowed}
.viewport-tools button#zoomIn,.viewport-tools button#zoomOut{min-width:26px;font-size:13px;padding:5px 7px}
.unit-control{display:flex;align-items:center;gap:5px}
.unit-control select{border:0;border-bottom:1px solid #cfcfc9;background:#fff;font-size:9px;padding:3px 12px 3px 3px;color:#333}
.combine-grid button{font-size:9.5px;padding:7px 8px}

/* v0.1.6 modules and performance */
.block-shape{stroke:#777;stroke-width:1;vector-effect:non-scaling-stroke;cursor:grab}
.block-shape.selected{stroke:#111;stroke-width:1.4}
.block-shape.exterior{fill:rgba(72,78,68,.42);stroke:#4a5048;stroke-width:1.15}
.block-shape.closure{fill:rgba(78,84,74,.4);stroke:#50564e;stroke-width:1.1}
.block-shape.floor,.block-shape.floorFecho{fill:rgba(110,128,98,.4);stroke:#5a6a50;stroke-width:1.15}
.block-shape.roof,.block-shape.roofFecho{fill:rgba(100,118,132,.38);stroke:#4e5e6c;stroke-width:1.15;stroke-dasharray:none}
.block-shape.interior{fill:rgba(140,134,118,.36);stroke:#6a6458;stroke-width:1}
.block-shape.window{fill:rgba(120,160,175,.32);stroke:#4e7380;stroke-dasharray:2 2}
.block-vertex{fill:#fff;stroke:#222;stroke-width:1;vector-effect:non-scaling-stroke}
.snap-guide{stroke:#111;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.perf-location{display:grid;gap:5px;font-size:9px;color:#777;margin:8px 0}
.perf-location select{border:0;border-bottom:1px solid #d7d7d1;background:#fff;padding:6px 2px;font-size:10px;color:#222}
.season-switch{display:flex;border-bottom:1px solid #deded8;margin:8px 0 10px}
.season-switch button{border:0;background:#fff;color:#777;font-size:8.5px;letter-spacing:.12em;padding:7px 9px}
.season-switch button.active{background:#171714;color:#fff}
.performance-panel{display:grid;gap:8px}
.performance-row{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:end;font-size:9px}
.performance-row span{color:#444}.performance-row small{font-size:7.5px;color:#999;display:block}
.performance-row b{font-size:9px;font-weight:600}.performance-row em{font-style:normal;font-size:8px;padding:2px 4px;background:#efefe9}
.performance-row em.ok{background:#e7eee8}.performance-row em.warn{background:#f4e9e2}
.performance-note{font-size:8px;line-height:1.4;color:#8b8b84;margin-top:9px}

/* v0.1.7 interaction, windows and intelligence */
.plan-svg{cursor:grab;touch-action:none}
.plan-svg.wall-mode{cursor:crosshair}
.plan-svg:active{cursor:grabbing}
.block-shape.window{fill:rgba(120,145,155,.16);stroke:#68777c;stroke-dasharray:2 2}
.solid-face.window3d{fill:#aebfc5;fill-opacity:.14}.wire-edge.window3d{stroke:#596d74;stroke-width:.65}
.wall-preview{fill:#9b9b96;fill-opacity:.38;stroke:#333;stroke-width:.55;stroke-dasharray:3 2;pointer-events:none}
.intelligence-panel{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#deded8;border:1px solid #deded8}
.intelligence-item{background:#fff;padding:9px 8px;min-height:52px}
.intelligence-item span{display:block;font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:#8b8b84;line-height:1.25}
.intelligence-item b{display:block;margin-top:6px;font-size:13px;font-weight:550;letter-spacing:-.02em}
.intelligence-item small{display:block;margin-top:3px;font-size:7.5px;color:#aaa}

/* v0.1.8 - editorial UI crossed with supplied reference */
:root{--ink:#151513;--muted:#8b8b84;--line:#e5e5df;--paper:#f8f8f5;--panel:#fff;--soft:#f3f3ef;--accent:#111;--green:#6f985f}
body{background:#f8f8f5}
.workspace-screen{background:#f8f8f5}
.workspace-screen header{height:62px;background:#fff;border-bottom:1px solid var(--line);padding:0 22px;display:grid;grid-template-columns:240px 1fr 220px;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:20px;min-width:0}.brand img{width:112px;max-height:32px;object-fit:contain}.brand span{font-size:9px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workflow-nav{display:flex;justify-content:center;align-items:center;gap:0;min-width:0}.workflow-nav .stage{position:relative;border:0;background:transparent;color:#a2a29b;font-size:8px;padding:8px 14px;white-space:nowrap}.workflow-nav .stage:not(:last-child):after{content:"";position:absolute;right:-7px;top:50%;width:14px;border-top:1px solid #e2e2dc}.workflow-nav .stage i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid #deded8;border-radius:50%;margin-right:6px;font-size:7px}.workflow-nav .stage.active{color:#111}.workflow-nav .stage.active i{background:#111;color:#fff;border-color:#111}
.workspace-screen header nav{display:flex;justify-content:flex-end;gap:4px}.workspace-screen header nav button{border:0;background:#fff;color:#777;font-size:8.5px;padding:7px 9px}.workspace-screen header nav button:hover{color:#111;background:#f4f4f0}
.workspace-grid{grid-template-columns:236px minmax(0,1fr) 248px;gap:0;border:1px solid var(--line);margin:14px 20px 20px;height:calc(100% - 96px);background:#fff}
.left,.right{background:#fff;overflow:auto}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}.left section,.right section,.project-block{padding:16px 16px;border-bottom:1px solid #efefe9}.eyebrow,.project-block>span{font-size:7.5px;letter-spacing:.12em;color:#2f2f2b;font-weight:600}.project-block h2{font-size:13px;margin:7px 0 2px;letter-spacing:-.02em}.project-block p{font-size:8.5px}
.hint{font-size:8.5px;line-height:1.45;color:#92928b}.module-card{border:1px solid #e4e4de;background:#fff;min-height:64px;padding:10px 9px}.module-card:hover{border-color:#7f7f78}.module-card b{font-size:9.5px}.module-card small{font-size:7.5px;color:#999}.module-card strong{font-size:12px;font-weight:400}
.left .tool{font-size:8.5px;padding:7px 8px;border:0;border-bottom:1px solid #ecece7;background:#fff;text-align:left}.left .tool.active{background:#111;color:#fff}.left .block-card{font-size:8.5px;background:#fff;border:0;border-bottom:1px solid #ecece7;padding:8px 7px}.left .block-card:hover{background:#f5f5f1}.left .block-card small{font-size:7.5px}.left .stack-select select{font-size:8.5px;border:0;border-bottom:1px solid #ddd;padding:6px 2px}
main{min-width:0;background:#fff}.viewbar{height:48px;padding:0 14px;border-bottom:1px solid var(--line);background:#fff}.viewbar .view{font-size:8px;letter-spacing:.11em;padding:8px 18px}.viewport-tools{gap:1px}.viewport-tools button,.unit-control{font-size:8px;padding:7px 7px;color:#888}.viewport-tools button.active,.viewport-tools .dark,#platformViewBtn.active{background:#111;color:#fff}.unit-control select{font-size:8px}
.canvas{background:radial-gradient(circle at 52% 42%,#fff 0,#fbfbf8 62%,#f1f1ec 100%)}.empty .plus{width:44px;height:44px;font-size:23px;border-color:#c4c4bd}.empty h3{font-size:14px;font-weight:500}.empty p{font-size:9px}
footer{grid-template-columns:repeat(5,1fr);background:#fff}footer div{padding:11px 13px}footer span{font-size:7px;color:#999}footer b{font-size:12px;font-weight:520}
.right .score b{font-size:38px;font-weight:500}.right p{font-size:8.5px}.rules li{font-size:8.5px;padding:8px 0}.selection-card h3{font-size:12px}.selection-card p{font-size:8.5px}.advice{font-size:8.5px;background:#f5f5f1}
.intelligence-panel{display:block;border:0;background:#fff}.intelligence-item{display:grid;grid-template-columns:1fr auto;align-items:end;min-height:auto;padding:10px 0;border-bottom:1px solid #ecece7}.intelligence-item span{font-size:7px}.intelligence-item b{font-size:13px;margin:0;font-weight:520}.intelligence-item small{grid-column:1/-1;font-size:7px;margin-top:3px}.performance-row{font-size:8px}.performance-row b{font-size:8px}.performance-note{font-size:7px}
/* drawing hierarchy: greyscale, delicate technical lines */
.grid-major{stroke:#d9d9d4;stroke-width:.45}.grid-axis{stroke:#b0b0a9;stroke-width:.72}.module-outline{stroke:#8f8f89;stroke-width:.75;fill:rgba(255,255,255,.08)}.module-selected{stroke:#1b1b18;stroke-width:1.15;fill:rgba(225,225,219,.12)}.corner-node{fill:#2d2d2a}.wall-body{fill:#9f9f99;fill-opacity:.44;stroke:#5b5b56;stroke-width:.45}.wall-body.selected{fill:#777772;fill-opacity:.58;stroke:#171714;stroke-width:.8}.wall-centerline{stroke:#7e7e78;stroke-width:.3}.wall-handle{stroke-width:.8}.block-shape{stroke:#85857f;stroke-width:.65}.block-shape.selected{stroke:#111;stroke-width:1}.wire-edge{stroke:#64645f;stroke-width:.58}.wire-edge.casting{stroke:#1d1d1b;stroke-width:.8}.wire-edge.post{stroke:#4f4f4a;stroke-width:.62}.wire-edge.beam{stroke:#777771;stroke-width:.52}.solid-face{fill-opacity:.13}.solid-face.wall3d{fill-opacity:.13}.solid-face.exterior3d{fill-opacity:.17}.solid-face.roof3d,.solid-face.floor3d{fill-opacity:.12}
.iso-scene.platform-view .wall3d,.iso-scene.platform-view .window3d{opacity:.12}.iso-scene.platform-view .exterior3d,.iso-scene.platform-view .roof3d,.iso-scene.platform-view .floor3d{opacity:.38}
@media(max-width:1250px){.workflow-nav .stage{padding:8px 8px}.workflow-nav .stage span{display:none}.workspace-grid{grid-template-columns:220px 1fr}.right{display:none}}

/* v0.1.9 - interaction, roadmap, view controls and module strip */
.auth-card select,.auth-card input[type=number]{width:100%;border:0;border-bottom:1px solid #d9d9d3;background:#fff;padding:10px 2px;font:inherit;color:#111;outline:none}
.workflow-nav{overflow-x:auto;scrollbar-width:none}.workflow-nav::-webkit-scrollbar{display:none}.workflow-nav .stage{transition:color .18s ease}.workflow-nav .stage:hover{color:#111}
.view-switch{display:flex;align-items:center;gap:2px}.viewbar .view{display:flex;align-items:center;gap:7px;border:0;background:#fff;color:#92928b;border-radius:0;padding:8px 13px;transition:.18s ease}.viewbar .view:hover{color:#111;background:#f7f7f4}.viewbar .view.active{background:#111;color:#fff}.viewbar .view span{font-size:8px;letter-spacing:.04em;text-transform:none}.view-icon{width:14px;height:14px;display:inline-block;position:relative;opacity:.85}.view-icon.cube:before{content:"";position:absolute;inset:2px;border:1px solid currentColor;transform:rotate(30deg)}.view-icon.plan:before{content:"";position:absolute;inset:2px;border:1px solid currentColor}.view-icon.plan:after{content:"";position:absolute;left:6px;top:2px;bottom:2px;border-left:1px solid currentColor}.view-icon.section:before{content:"";position:absolute;inset:2px;border:1px solid currentColor;border-right:0}.view-icon.section:after{content:"";position:absolute;right:1px;top:1px;bottom:1px;border-left:1px dashed currentColor}.view-icon.elevation:before{content:"";position:absolute;left:1px;right:1px;bottom:2px;height:8px;border:1px solid currentColor}.view-icon.elevation:after{content:"";position:absolute;left:6px;top:1px;height:11px;border-left:1px solid currentColor}
.icon-only{width:27px;height:27px;padding:0!important;font-size:14px!important;display:grid;place-items:center;border-radius:50%!important}.icon-only.active{background:#111!important;color:#fff!important}
.combination-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:9px 0 12px}.combination-mode{border:1px solid #e6e6df;background:#fff;min-height:64px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#8a8a84}.combination-mode.active{border-color:#222;color:#111}.combination-mode span{font-size:7.5px}.comb-icon{display:block;width:34px;height:22px;position:relative}.comb-icon b{position:absolute;width:13px;height:9px;border:1px solid currentColor;background:#fff}.comb-icon.horizontal b:first-child{left:2px;top:6px}.comb-icon.horizontal b:last-child{left:18px;top:6px}.comb-icon.vertical b:first-child{left:10px;top:11px}.comb-icon.vertical b:last-child{left:10px;top:0}.comb-icon.mixed b:nth-child(1){left:1px;top:11px}.comb-icon.mixed b:nth-child(2){left:17px;top:11px}.comb-icon.mixed b:nth-child(3){left:17px;top:0}
.module-status-strip{min-height:86px;border-top:1px solid var(--line);display:flex;background:#fff;overflow-x:auto}.module-status-card{min-width:160px;border-right:1px solid #ecece7;padding:12px 14px;display:grid;grid-template-columns:34px 1fr 18px;gap:9px;align-items:center;cursor:pointer}.module-status-card:hover{background:#fafaf7}.module-status-card.selected{box-shadow:inset 0 2px #111}.module-status-card .mini-frame{width:32px;height:24px;border:1px solid #8e8e88;position:relative}.module-status-card .mini-frame:before,.module-status-card .mini-frame:after{content:"";position:absolute;top:0;bottom:0;border-left:1px solid #aaa}.module-status-card .mini-frame:before{left:4px}.module-status-card .mini-frame:after{right:4px}.module-status-card b{font-size:8.5px;font-weight:600}.module-status-card small{display:block;font-size:7px;color:#999;margin-top:4px;line-height:1.35}.module-status-card .lock-mark{font-size:13px;color:#777}.module-status-empty{padding:16px;font-size:8px;color:#aaa;display:flex;align-items:center}
footer{grid-template-columns:repeat(5,1fr)}
.sun-overlay{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .2s}.sun-overlay.active{opacity:1}.sun-overlay:before{content:"";position:absolute;width:54%;height:46%;left:22%;top:15%;border:1px dashed rgba(100,100,93,.5);border-radius:50%}.sun-disc{position:absolute;width:22px;height:22px;border:1px solid #111;border-radius:50%;left:73%;top:22%;background:rgba(255,255,255,.72);box-shadow:0 0 0 7px rgba(235,235,225,.55)}.sun-overlay span{position:absolute;right:22px;bottom:26px;font-size:7px;letter-spacing:.08em;color:#777;text-transform:uppercase}
.selection-card .selection-actions{display:flex;gap:5px;margin-top:10px}.selection-card .selection-actions button{border:1px solid #ddd;background:#fff;font-size:8px;padding:7px 9px}.selection-card .selection-actions button.active{background:#111;color:#fff;border-color:#111}
.module-outline.locked{stroke:#3e3e3a;stroke-dasharray:3 2}.module-lock-badge{fill:#111}.module-lock-text{fill:#fff;font-size:7px;font-family:Arial,sans-serif;text-anchor:middle;dominant-baseline:middle}
.section-label,.elevation-label{position:absolute;left:18px;top:18px;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#777}
.space-pan-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:7px;color:#8c8c86;background:rgba(255,255,255,.86);padding:5px 8px;border:1px solid #e6e6df;display:none}.space-pan-hint.active{display:block}


/* v0.1.10 - Environmental intelligence, night study and health score */
.environment-overlay{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s,background .25s}.environment-overlay.active{opacity:1}.environment-overlay .env-orbit{position:absolute;width:58%;height:48%;left:21%;top:13%;border:1px dashed rgba(83,83,78,.46);border-radius:50%}.environment-overlay .env-body{position:absolute;width:22px;height:22px;border:1px solid #111;border-radius:50%;left:var(--env-body-x,72%);top:var(--env-body-y,20%);transform:translate(-50%,-50%);background:rgba(255,255,255,.8);box-shadow:0 0 0 7px rgba(235,235,225,.5);opacity:var(--env-body-opacity,1)}.environment-overlay span{position:absolute;right:22px;bottom:26px;font-size:7px;letter-spacing:.08em;color:#777;text-transform:uppercase}.environment-overlay[data-mode="night"]{background:linear-gradient(180deg,rgba(16,19,25,.72),rgba(28,31,38,.48))}.environment-overlay[data-mode="night"] .env-orbit{border-color:rgba(235,235,232,.35)}.environment-overlay[data-mode="night"] .env-body{background:#f6f4df;border-color:#f6f4df;box-shadow:0 0 20px 7px rgba(246,244,223,.18)}.environment-overlay[data-mode="night"] span{color:#f2f2ed}.environment-overlay[data-mode="winter"]{background:linear-gradient(135deg,rgba(205,216,223,.25),rgba(255,255,255,.1))}.environment-overlay[data-mode="winter"] .env-body{left:30%;top:28%}.environment-overlay[data-mode="summer"]{background:linear-gradient(135deg,rgba(234,224,194,.22),rgba(255,255,255,.04))}.environment-overlay[data-mode="summer"] .env-body{left:78%;top:12%}.environment-overlay[data-mode="annual"] .env-orbit{border-style:solid;border-color:rgba(80,80,76,.24);box-shadow:0 0 0 18px rgba(90,90,84,.025),0 0 0 36px rgba(90,90,84,.018)}
.environment-panel{position:fixed;inset:0;background:rgba(17,17,15,.28);backdrop-filter:blur(4px);display:none;align-items:flex-end;justify-content:center;z-index:50}.environment-panel.open{display:flex}.environment-sheet{width:min(920px,calc(100vw - 48px));background:#fff;border:1px solid #deded8;box-shadow:0 -16px 60px rgba(0,0,0,.12);padding:28px 32px 22px}.environment-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-start}.environment-head h2{font-size:24px;font-weight:450;letter-spacing:-.03em;margin:7px 0}.environment-head p{font-size:9px;color:#8a8a84;margin:0}.environment-head>button{border:0;background:#fff;font-size:24px;font-weight:300;line-height:1;color:#777;padding:0 3px}.environment-modes{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#e7e7e1;margin:26px 0 22px;border:1px solid #e7e7e1}.env-mode{border:0;background:#fff;padding:14px 8px;display:flex;align-items:center;justify-content:center;gap:9px;color:#8a8a84}.env-mode i{font-size:16px;font-style:normal}.env-mode span{font-size:8px}.env-mode.active{background:#111;color:#fff}.environment-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e7e7e1;border-left:1px solid #e7e7e1}.environment-metric{padding:17px 18px;border-right:1px solid #e7e7e1;border-bottom:1px solid #e7e7e1;min-height:82px}.environment-metric span{display:block;font-size:7px;letter-spacing:.07em;text-transform:uppercase;color:#96968f}.environment-metric b{display:block;font-size:18px;font-weight:450;margin:8px 0 4px}.environment-metric small{font-size:7px;color:#9b9b94}.environment-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px}.environment-foot span{font-size:7px;color:#999}.environment-foot button,.environment-open{border:1px solid #111;background:#111;color:#fff;padding:9px 13px;font-size:8px}.project-health-score{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;border-bottom:1px solid #e8e8e2;padding:2px 0 13px;margin-bottom:9px}.project-health-score span{font-size:8px;color:#777}.project-health-score b{font-size:28px;font-weight:450;letter-spacing:-.04em}.project-health-score small{font-size:8px;color:#999}.environment-summary{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e9e9e4;border:1px solid #e9e9e4;margin:8px 0 10px}.environment-summary div{background:#fff;padding:10px}.environment-summary span{display:block;font-size:7px;color:#999}.environment-summary b{font-size:10px;font-weight:550;display:block;margin-top:4px}.environment-open{width:100%;background:#fff;color:#111;border-color:#d9d9d3}.environment-open:hover{background:#111;color:#fff;border-color:#111}
@media(max-width:900px){.environment-metrics{grid-template-columns:1fr 1fr}.environment-sheet{width:100vw;padding:22px 18px}.environment-modes{grid-template-columns:repeat(5,minmax(72px,1fr));overflow-x:auto}}


/* v0.1.11 - precise pan, module library, marquee selection and batch locking */
.plan-svg{touch-action:none}.plan-svg.pan-ready{cursor:grab}.plan-svg.panning{cursor:grabbing}.plan-svg.select-ready{cursor:default}.selection-marquee{fill:rgba(25,25,23,.035);stroke:#151513;stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.module-outline.multi-selected,.module-selected.multi-selected{stroke:#111;stroke-width:1.35;fill:rgba(20,20,18,.045)}
.module-library-wrap{background:#fff;border-top:1px solid var(--line)}.module-library-head{min-height:42px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #eeeeea}.module-library-head>div:first-child{display:flex;align-items:baseline;gap:12px}.module-library-head small{font-size:7px;color:#aaa}.batch-lock-actions{display:flex;gap:6px}.batch-lock-actions button{font-size:7px;padding:6px 9px;border:1px solid #dadad4;background:#fff;color:#777}.batch-lock-actions button:hover{border-color:#111;color:#111}.module-library-strip{display:flex;min-height:76px;overflow-x:auto;background:#fff}.library-module{min-width:150px;display:grid;grid-template-columns:34px 1fr 16px;gap:8px;align-items:center;padding:11px 12px;border:0;border-right:1px solid #ecece7;background:#fff;text-align:left;color:#333}.library-module:hover{background:#fafaf7}.library-module:active{background:#f3f3ef}.library-module b{font-size:8px;font-weight:600}.library-module small{display:block;font-size:6.8px;line-height:1.35;color:#9a9a94;margin-top:4px}.library-module em{font-style:normal;font-size:11px;color:#999}.lib-icon{width:30px;height:23px;display:block;position:relative}.lib-icon:before,.lib-icon:after{content:"";position:absolute}.lib-icon.chassis-short,.lib-icon.chassis-long{border:1px solid #777}.lib-icon.chassis-short:before,.lib-icon.chassis-long:before{inset:3px;border:1px solid #c1c1bc}.lib-icon.chassis-long{width:34px}.lib-icon.floor{border:1px solid #777;transform:skewX(-20deg);height:12px;margin-top:5px;background:rgba(80,80,75,.04)}.lib-icon.exterior{border-left:3px solid #777;border-right:1px solid #aaa;height:25px;width:18px;margin-left:6px}.lib-icon.exterior:before{left:5px;top:0;bottom:0;border-left:1px dashed #bbb}.lib-icon.interior{width:30px;height:4px;background:#777;margin-top:10px}.lib-icon.interior:before,.lib-icon.interior:after{width:4px;height:10px;border:1px solid #aaa;top:-3px}.lib-icon.interior:before{left:0}.lib-icon.interior:after{right:0}.lib-icon.roof{border-top:3px solid #777;border-left:1px solid #aaa;border-right:1px solid #aaa;height:16px;margin-top:4px}.lib-icon.window{border:1px solid #777;height:22px}.lib-icon.window:before{left:50%;top:0;bottom:0;border-left:1px solid #aaa}.lib-icon.window:after{top:50%;left:0;right:0;border-top:1px solid #aaa}
.module-status-strip{min-height:78px}.module-status-card{position:relative}.module-status-card .inline-lock{border:0;background:transparent;padding:2px;font-size:12px;line-height:1;color:#999}.module-status-card .inline-lock.locked{color:#111}.module-status-card.multi-selected{background:#f7f7f3;box-shadow:inset 0 2px #111}
body.space-pan .plan-svg{cursor:grab!important}body.space-pan .plan-svg.panning{cursor:grabbing!important}


/* v0.1.12 - type scale, vertical module cards and direct locking */
:root{--type-scale:1.5}
body{font-size:calc(10px * var(--type-scale))}
button,input,select,textarea{font-size:inherit}
.eyebrow{font-size:10.5px}.tool,.stack-select,.block-card,.metric small,.module-library-head small,.library-module small,.module-status-card small,.view-btn,.top-nav button,footer{font-size:10.5px}
.library-module b,.module-status-card b{font-size:12px}.selection-card p,.selection-empty,.message{font-size:12px}.selection-card h3{font-size:14px}
.module-library-head{padding:10px 16px;min-height:46px}.module-library-head>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.module-library-strip{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));min-height:132px;overflow-x:auto;align-items:stretch}
.library-module{min-width:112px;min-height:132px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;padding:13px 10px 10px;text-align:center;position:relative;border-right:1px solid #ecece7}
.library-module .lib-icon{height:34px;margin:2px auto 1px;flex:0 0 34px}.library-module span{display:block;min-height:42px}.library-module b{display:block;line-height:1.2}.library-module small{line-height:1.35;margin-top:5px}.library-lock{width:14px;height:11px;border:1.4px solid #8f8f89;border-radius:2px;position:absolute;right:9px;bottom:9px;box-sizing:border-box}.library-lock:before{content:"";position:absolute;width:8px;height:7px;border:1.4px solid #8f8f89;border-bottom:0;border-radius:7px 7px 0 0;left:1.5px;top:-7px;box-sizing:border-box}.library-lock.is-open:before{transform:translateX(3px) rotate(18deg);transform-origin:left bottom}.library-module:hover .library-lock,.library-module:hover .library-lock:before{border-color:#111}
.module-status-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));min-height:142px;overflow-x:auto;background:#fff}.module-status-card{min-width:128px;min-height:142px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:13px 10px 10px;gap:7px;border-right:1px solid #ecece7;position:relative}.module-status-card .mini-frame{width:46px;height:34px;margin:0 auto 2px}.module-status-card>div{min-height:48px}.module-status-card .inline-lock{position:absolute;right:10px;bottom:10px;width:16px;height:14px;border:1.5px solid #85857f;border-radius:2px;background:transparent;padding:0;font-size:0}.module-status-card .inline-lock:before{content:"";position:absolute;width:9px;height:8px;border:1.5px solid #85857f;border-bottom:0;border-radius:8px 8px 0 0;left:2px;top:-8px}.module-status-card .inline-lock:not(.locked):before{transform:translateX(4px) rotate(18deg);transform-origin:left bottom}.module-status-card .inline-lock.locked,.module-status-card .inline-lock.locked:before{border-color:#111}.module-status-card.selected,.module-status-card.multi-selected{background:#f5f5f1;box-shadow:inset 0 2px #111}
.batch-lock-actions{display:none!important}
/* Remove legacy construction controls entirely */
#blockSelect,.block-row{display:none!important}


/* v0.1.14 - reverted panel typography to v0.1.12 scale */
.module-library-strip{grid-template-columns:repeat(5,minmax(128px,1fr))}
.floating-environment{position:absolute;right:18px;top:16px;display:flex;gap:14px;z-index:12;pointer-events:auto}
/* wr610 · N6 · badge de modo (Walk/Factory/Site/Twin…) */
.mode-transition-badge{
  position:absolute;
  left:14px;
  top:12px;
  z-index:13;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  max-width:min(420px,calc(100% - 100px));
  padding:8px 10px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.94);
  box-shadow:0 1px 0 rgba(0,0,0,.04);
  pointer-events:auto;
}
.mode-transition-badge[hidden]{display:none!important}
.mode-transition-badge-copy{min-width:0}
.mode-transition-badge-copy>span{
  display:block;
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#888;
}
.mode-transition-badge-copy>b{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:650;
  color:#171714;
  line-height:1.3;
}
.mode-transition-badge-copy>small{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:#666;
  line-height:1.35;
}
.mode-transition-badge.is-mode-changed{
  border-color:#171714;
  animation:modeBadgePulse .9s ease;
}
@keyframes modeBadgePulse{
  0%{box-shadow:0 0 0 0 rgba(23,23,20,.18)}
  100%{box-shadow:0 1px 0 rgba(0,0,0,.04)}
}
.mode-transition-badge[data-mode-platform="Build"] .mode-transition-badge-copy>span{color:#6a5a3a}
.mode-transition-badge[data-mode-platform="Twin"] .mode-transition-badge-copy>span{color:#3a5a6a}
.workspace-screen.stage-focus-mode #modeTransitionBadge{display:none!important}
@media(max-width:720px){
  .mode-transition-badge{max-width:calc(100% - 72px);grid-template-columns:1fr}
}
.floating-env-btn{width:26px;height:26px;border:0;background:transparent;display:grid;place-items:center;padding:0;color:#9a9a94;transition:color .16s,transform .16s;box-shadow:none;border-radius:0}
.floating-env-btn:hover{transform:translateY(-1px);color:#111}
.floating-env-btn.active{background:transparent;color:#111;border:0}
.sun-icon{width:12px;height:12px;border:1.25px solid currentColor;border-radius:50%;position:relative;display:block}
.sun-icon:before,.sun-icon:after{content:"";position:absolute;left:50%;top:50%;width:21px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.sun-icon:after{transform:translate(-50%,-50%) rotate(90deg)}
.sun-icon{box-shadow:0 -7px 0 -6px currentColor,0 7px 0 -6px currentColor,7px 0 0 -6px currentColor,-7px 0 0 -6px currentColor}
.moon-icon{width:14px;height:14px;border:1.25px solid currentColor;border-radius:50%;display:block;position:relative}
.moon-icon:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--paper);left:4px;top:-2px}
.environment-panel,.environment-open,.environment-summary{display:none!important}

/* v0.1.14 layout and metadata */
.workspace-screen.active{height:100vh;min-height:100vh}
.workspace-grid{height:calc(100vh - 66px)}
.workspace-grid main{grid-template-rows:50px minmax(320px,1fr) auto auto;min-height:0}
footer{display:none!important}
.project-profile{margin-top:auto}
.project-profile-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e6e6e1;margin-top:10px}
.project-profile-grid>div{padding:10px 11px;background:#fff;min-width:0}
.project-profile-grid>div+div{border-left:1px solid #e6e6e1}
.project-profile-grid .project-location-row{grid-column:1/-1;border-left:0;border-top:1px solid #e6e6e1}
.project-profile-grid span,.perf-location-readout span{display:block;font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#999}
.project-profile-grid b,.perf-location-readout b{display:block;font-size:10px;font-weight:560;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.perf-location-readout{border:1px solid #e5e5df;padding:9px 10px;margin-top:10px;background:#fafaf7}

/* v0.1.15 - project summary, phase status and refined header */
.workspace-screen.active{grid-template-rows:66px 1fr}
.brand img{width:126px;max-height:36px}
.workspace-screen header,.workspace-screen header button,.workflow-nav .stage,.brand span{font-size:10px}
.brand span{font-weight:560;color:#666}
.workspace-grid main{grid-template-rows:50px minmax(300px,1fr) auto auto 58px!important}
.project-summary-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:#fff;border-top:1px solid var(--line);min-height:58px;overflow:hidden}
.project-summary-strip>div{padding:9px 14px;border-right:1px solid #e8e8e3;min-width:0;display:flex;flex-direction:column;justify-content:center}
.project-summary-strip>div:last-child{border-right:0}
.project-summary-strip span{font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:#93938d;white-space:nowrap}
.project-summary-strip b{font-size:11px;font-weight:590;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-summary-strip small{font-size:7.5px;color:#999;margin-top:2px}
.summary-state b[data-ready="true"]{color:var(--green)}
.summary-state b[data-ready="false"]{color:#30302c}
@media(max-width:1200px){.project-summary-strip{grid-template-columns:repeat(6,minmax(110px,1fr));overflow-x:auto}}

/* v0.1.16 - stabilized lower deck and refined top hierarchy */
.workspace-screen header{min-height:66px}
.workspace-screen header,.workspace-screen header button,.workflow-nav .stage,.brand span{font-size:11px}
.brand img{width:132px;max-height:39px}
.workspace-screen header nav button{font-size:10px;letter-spacing:.01em}
.workspace-grid main{grid-template-rows:50px minmax(300px,1fr) auto auto 58px!important}
/* Placed modules sit above the library; the library docks directly to project summary. */
.module-status-strip{border-top:1px solid var(--line);border-bottom:0}
.module-library-wrap{border-top:1px solid var(--line);border-bottom:0;margin:0}
.module-library-head{min-height:40px;padding:7px 14px}
.module-library-strip{min-height:122px}
.library-module{min-height:122px;padding:12px 10px 10px;grid-template-rows:42px auto 18px}
.library-module .lib-icon{margin-bottom:2px}
.library-module b{font-size:8.5px;line-height:1.25}
.library-module small{font-size:7px;line-height:1.35}
.project-summary-strip{position:relative;border-top:1px solid var(--line);box-shadow:0 -1px 0 rgba(0,0,0,.015)}
/* Tight visual seam: library and project line read as one lower control deck. */
.module-library-wrap + .project-summary-strip{border-top-color:#d8d8d2}

/* v0.1.17 - verified rebuild of the stabilized Sprint 01 workspace */
.workspace-screen header{min-height:68px}
.workspace-screen header,.workspace-screen header button,.workflow-nav .stage,.brand span{font-size:12px}
.workspace-screen header nav button{font-size:11px}
.brand img{width:138px;max-height:41px}
/* Raise the project summary slightly while keeping the module library docked to it. */
.project-summary-strip{border-top:1px solid var(--line)}
.module-library-wrap{margin:0;border-bottom:0}
.module-library-wrap + .project-summary-strip{border-top:1px solid #d8d8d2}
.module-status-strip + .module-library-wrap{margin-top:0}


/* v0.1.18 - final Sprint 01 layout freeze */
.workspace-screen header{min-height:68px}
.brand{gap:0}
.brand img{width:138px;max-height:41px}
/* The viewport now reaches the module library; placed modules float inside the stage. */
.workspace-grid main{position:relative;grid-template-rows:50px minmax(360px,1fr) auto 58px!important}
.canvas{position:relative;min-height:0;overflow:hidden}
.stage-module-strip{position:absolute;left:0;right:0;bottom:0;z-index:8;min-height:126px;max-height:142px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);box-shadow:0 -8px 22px rgba(20,20,18,.025)}
.canvas .plan-svg,.canvas .iso-scene{bottom:0}
.module-library-wrap{margin:0;border-top:1px solid #d8d8d2}
/* Raise the final project line slightly and keep it visually docked to the library. */
.project-summary-strip{border-top:1px solid #d3d3cd}
.module-library-wrap + .project-summary-strip{border-top:1px solid #d3d3cd}

/* v0.1.19 - stage extended continuously to the module library */
.workspace-grid main{grid-template-rows:50px minmax(0,1fr) auto 58px!important}
.canvas{min-height:0;margin:0;border-bottom:0}
.module-library-wrap{margin:0!important;border-top:1px solid #d8d8d2}
/* The placed-module status no longer forms a full-width white band. It floats compactly over the drawing, leaving the stage visible behind it. */
.stage-module-strip{
  left:14px;
  right:auto;
  bottom:12px;
  width:auto;
  max-width:calc(100% - 28px);
  min-height:0;
  max-height:88px;
  display:flex;
  gap:6px;
  padding:0;
  overflow-x:auto;
  background:transparent;
  backdrop-filter:none;
  border:0;
  box-shadow:none;
}

/* Sprint v1.36.0 · Edifício-piloto e Dossier Estrutural */
.structural-pilot{margin:18px 0;padding:14px;border:1px solid rgba(99,118,124,.32);border-radius:16px;background:linear-gradient(145deg,rgba(238,244,243,.92),rgba(255,255,255,.72))}
.structural-pilot-baseline{display:flex;flex-direction:column;gap:4px;margin:12px 0;padding:12px;border-left:3px solid #526f68;background:rgba(255,255,255,.65)}
.structural-pilot-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 14px}
.structural-pilot-progress span{display:flex;flex-direction:column;gap:2px;padding:9px;border:1px solid rgba(99,118,124,.25);border-radius:10px;background:rgba(255,255,255,.72);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.structural-pilot-progress b{font-size:14px;letter-spacing:0;text-transform:none}
.structural-pilot-register{margin:12px 0;border:1px solid rgba(99,118,124,.28);border-radius:12px;background:rgba(255,255,255,.58);overflow:hidden}
.structural-pilot-register>summary{padding:11px 12px;font-weight:700;cursor:pointer}
.structural-pilot-row{margin:0 0 10px;padding:11px;border:1px solid rgba(99,118,124,.22);border-radius:10px;background:rgba(255,255,255,.75)}
.structural-pilot-row>button,.structural-export-actions button{border:0;border-radius:8px;padding:8px 11px;background:#526f68;color:#fff;font-weight:700;cursor:pointer}
.connection-spec-line{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:8px}
.structural-result-import textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid rgba(99,118,124,.35);border-radius:8px;padding:9px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}
.structural-integration,.structural-dossier-actions{margin-top:12px;padding:12px;border:1px solid rgba(99,118,124,.28);border-radius:12px;background:rgba(255,255,255,.66)}
.structural-export-actions{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}
@media(max-width:720px){.structural-pilot-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-spec-line{grid-template-columns:1fr}}
.dwelling-thread{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.dwelling-thread-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;width:100%;margin:0;padding:9px 11px;border:1px solid rgba(99,118,124,.22);border-radius:10px;background:rgba(255,255,255,.82);text-align:left;cursor:pointer;font:inherit;color:inherit}
.dwelling-thread-row:hover,.dwelling-thread-row.is-active{border-color:#526f68;background:#fff}
.dwelling-thread-row i{font-style:normal;font-weight:700;color:#526f68;line-height:1.4}
.dwelling-thread-copy{min-width:0}
.dwelling-thread-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.dwelling-thread-head b{display:inline;font-size:13px}
.dwelling-thread-head em{display:inline;font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#526f68;white-space:normal}
.dwelling-thread-row small{display:block;max-width:100%;font-size:10px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal;overflow-wrap:normal}
.dwelling-thread-row small.is-blocker{white-space:normal;overflow:visible;text-overflow:unset}
.dwelling-thread-row.is-blocked{border-color:rgba(154,92,58,.45)}
.dwelling-thread-row.is-blocked em,.dwelling-thread-row.is-blocked i{color:#8a5a32}
.dwelling-thread-note{margin:8px 0 0;font-size:11px;line-height:1.45;color:#5c6663}
.dwelling-piece-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.dwelling-piece-chips button{border:1px solid rgba(82,111,104,.45);border-radius:8px;padding:6px 9px;background:#fff;color:#526f68;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.dwelling-piece-chips button:hover{background:#526f68;color:#fff;border-color:#526f68}
.dwelling-thread-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.dwelling-thread-actions button{border:0;border-radius:8px;padding:8px 11px;background:#526f68;color:#fff;font-weight:700;cursor:pointer}
.dwelling-thread-actions [data-dwelling-action="regenerate-thread"],.dwelling-thread-actions [data-dwelling-action="reveal-thread"]{background:transparent;color:#526f68;border:1px solid rgba(82,111,104,.45)}
.tech-library-chapter{margin:10px 0;border:1px solid rgba(99,118,124,.28);border-radius:12px;background:rgba(255,255,255,.72);overflow:hidden}
.tech-library-chapter>summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}
.tech-library-chapter>summary::-webkit-details-marker,.tech-library-sheet>summary::-webkit-details-marker{display:none}
.tech-library-chapter>summary span{display:grid;min-width:0;gap:2px}
.tech-library-chapter>summary b{font-size:13px}
.tech-library-chapter>summary small{font-size:10px;font-weight:500;color:#5c6663}
.tech-library-chapter-body{padding:0 12px 12px}
.tech-library-chapter .structural-pilot,.tech-library-chapter .structural-configuration{margin:0;padding:4px 0 0;border:0;background:transparent;border-radius:0}
.tech-library-sheet{margin:8px 0;border:1px solid rgba(99,118,124,.22);border-radius:10px;background:rgba(255,255,255,.8)}
.tech-library-sheet>summary{padding:9px 11px;cursor:pointer;list-style:none;font-weight:700}
.tech-library-sheet>summary b{font-size:12px}
.stage-module-strip .module-status-empty{display:none}
.stage-module-strip .module-status-card{
  flex:0 0 174px;
  min-width:174px;
  min-height:64px;
  height:64px;
  display:grid;
  grid-template-columns:34px 1fr 18px;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  text-align:left;
  background:rgba(255,255,255,.90);
  border:1px solid rgba(205,205,198,.88);
  border-radius:3px;
  box-shadow:0 5px 16px rgba(20,20,18,.055);
  backdrop-filter:blur(8px);
}
.stage-module-strip .module-status-card:hover{background:rgba(255,255,255,.98)}
.stage-module-strip .module-status-card.selected,
.stage-module-strip .module-status-card.multi-selected{background:rgba(246,246,242,.98);box-shadow:inset 0 2px #111,0 5px 16px rgba(20,20,18,.055)}
.stage-module-strip .module-status-card .mini-frame{width:32px;height:24px;margin:0}
.stage-module-strip .module-status-card>div{min-height:0}
.stage-module-strip .module-status-card .inline-lock{position:relative;right:auto;bottom:auto;justify-self:end}

/* v0.1.20 - geometric engine interaction pass */
header .brand img{width:128px!important;max-height:34px!important}
.library-module.active{background:#ecece8!important;color:#111;box-shadow:inset 0 2px #111}
.block-preview{pointer-events:none;stroke-width:1;vector-effect:non-scaling-stroke}
.block-preview.valid{fill:rgba(105,105,98,.15);stroke:#666;stroke-dasharray:5 3}
.block-preview.invalid{fill:rgba(150,55,45,.12);stroke:#9a4439;stroke-dasharray:4 3}
/* wr279–wr282 · guias estruturais na colocação PV/CB · esbatidos */
.chassis-travessa-guide{fill:rgba(180,170,155,.14);stroke:#a89f92;stroke-width:.85;pointer-events:none;vector-effect:non-scaling-stroke;stroke-opacity:.55}
.chassis-rhs-guide{fill:rgba(140,148,156,.12);stroke:#9aa3ab;stroke-width:1;pointer-events:none;vector-effect:non-scaling-stroke;stroke-opacity:.5}
.chassis-key-guide{fill:rgba(180,168,152,.16);stroke:#aea295;stroke-width:.8;pointer-events:none;vector-effect:non-scaling-stroke;stroke-opacity:.52}

/* wr282 · reforço construção · estrutura permanece esbatida (vence regras anteriores) */
.block-shape.exterior,.block-shape.closure{fill:rgba(72,78,68,.42)!important;stroke:#4a5048!important}
.block-shape.floor,.block-shape.floorFecho{fill:rgba(110,128,98,.42)!important;stroke:#5a6a50!important}
.block-shape.roof,.block-shape.roofFecho{fill:rgba(100,118,132,.4)!important;stroke:#4e5e6c!important;stroke-dasharray:none!important}
.block-shape.interior{fill:rgba(140,134,118,.36)!important;stroke:#6a6458!important}
.block-preview.valid{fill:rgba(95,120,85,.22);stroke:#4d6346;stroke-dasharray:5 3}

.iso-scene .solid-face.casting{fill:#c8c8c3!important;fill-opacity:.28!important}
.iso-scene .solid-face.beam{fill:#c9ced3!important;fill-opacity:.24!important}
.iso-scene .solid-face.post{fill:#c0c5ca!important;fill-opacity:.26!important}
.iso-scene .solid-face.key{fill:#d4cbc0!important;fill-opacity:.28!important}
.iso-scene .solid-face.keyHole{fill:#5c5854!important;fill-opacity:.62!important}
.iso-scene .solid-face.travessa,.iso-scene .solid-face.caixao{fill:#d2c0a0!important;fill-opacity:.5!important}
.iso-scene .solid-face.portico{fill:#d2c0a0!important;fill-opacity:.5!important}
.iso-scene .solid-face.fecho{fill:#b9b5ac!important;fill-opacity:.2!important}
.iso-scene .solid-face.osb{fill:#c9bc9c!important;fill-opacity:.22!important}
.iso-scene .wire-edge.casting{stroke:#a3a39d!important;stroke-opacity:.42!important;stroke-width:.7!important}
.iso-scene .wire-edge.beam,.iso-scene .wire-edge.post{stroke:#a4aab0!important;stroke-opacity:.38!important;stroke-width:.62!important}
.iso-scene .wire-edge.key,.iso-scene .wire-edge.travessa{stroke:#b4aa9e!important;stroke-opacity:.4!important;stroke-width:.62!important}
.iso-scene .wire-edge.keyHole{stroke:#4a4642!important;stroke-opacity:.55!important;stroke-width:.5!important}

.iso-scene .solid-face.floor3d,.iso-scene .solid-face.floorFecho3d{fill:#7f9174!important;fill-opacity:.62!important}
.iso-scene .solid-face.roof3d,.iso-scene .solid-face.roofFecho3d{fill:#6e8190!important;fill-opacity:.6!important}
.iso-scene .solid-face.exterior3d{fill:#5e635a!important;fill-opacity:.66!important}
.iso-scene .solid-face.closure3d{fill:#656b61!important;fill-opacity:.64!important}
.iso-scene .solid-face.interior3d,.iso-scene .solid-face.wall3d{fill:#8f8a7e!important;fill-opacity:.56!important}
.iso-scene .solid-face.window3d{fill:#8eb0bc!important;fill-opacity:.38!important}
.iso-scene .wire-edge.floor3d,.iso-scene .wire-edge.floorFecho3d{stroke:#3f4d3a!important;stroke-width:1.15!important;stroke-opacity:.9!important}
.iso-scene .wire-edge.roof3d,.iso-scene .wire-edge.roofFecho3d{stroke:#364450!important;stroke-width:1.15!important;stroke-opacity:.9!important}
.iso-scene .wire-edge.exterior3d,.iso-scene .wire-edge.closure3d{stroke:#2c302b!important;stroke-width:1.2!important;stroke-opacity:.92!important}
.iso-scene .wire-edge.interior3d,.iso-scene .wire-edge.wall3d{stroke:#4c483f!important;stroke-width:1!important;stroke-opacity:.88!important}

.iso-scene.volumetric-mode .solid-face.casting.volumetric-face,
.iso-scene.volumetric-mode .solid-face.beam.volumetric-face,
.iso-scene.volumetric-mode .solid-face.post.volumetric-face,
.iso-scene.volumetric-mode .solid-face.key.volumetric-face{fill-opacity:.3!important;filter:none;stroke:#b0b0aa;stroke-width:.35}
.iso-scene.volumetric-mode .solid-face.casting.volumetric-face{fill:#cacac5!important}
.iso-scene.volumetric-mode .solid-face.beam.volumetric-face{fill:#cdd1d5!important}
.iso-scene.volumetric-mode .solid-face.post.volumetric-face{fill:#c5cacf!important}
.iso-scene.volumetric-mode .solid-face.key.volumetric-face{fill:#d6cec4!important}
.iso-scene.volumetric-mode .solid-face.keyHole.volumetric-face{fill:#4e4a46!important;fill-opacity:.7!important}
.iso-scene.volumetric-mode .solid-face.travessa.volumetric-face,.iso-scene.volumetric-mode .solid-face.caixao.volumetric-face{fill:#d6c4a4!important;fill-opacity:.62!important;filter:none;stroke:#b0b0aa;stroke-width:.35}
.iso-scene.volumetric-mode .solid-face.portico.volumetric-face{fill:#d6c4a4!important;fill-opacity:.62!important;filter:none;stroke:#b0b0aa;stroke-width:.35}
.iso-scene.volumetric-mode .solid-face.fecho.volumetric-face{fill:#c0bcb3!important;fill-opacity:.28!important;filter:none;stroke:#b0b0aa;stroke-width:.35}
.iso-scene.volumetric-mode .solid-face.osb.volumetric-face{fill:#d0c3a3!important;fill-opacity:.3!important;filter:none;stroke:#b0b0aa;stroke-width:.35}
.iso-scene.volumetric-mode .solid-face.floor3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.floorFecho3d.volumetric-face{fill:#7f9174!important;fill-opacity:.88!important}
.iso-scene.volumetric-mode .solid-face.roof3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.roofFecho3d.volumetric-face{fill:#6e8190!important;fill-opacity:.86!important}
.iso-scene.volumetric-mode .solid-face.exterior3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.closure3d.volumetric-face{fill:#5e635a!important;fill-opacity:.9!important}
.iso-scene.volumetric-mode .solid-face.interior3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.wall3d.volumetric-face{fill:#8f8a7e!important;fill-opacity:.82!important}
.iso-scene.volumetric-mode .wire-edge.beam,
.iso-scene.volumetric-mode .wire-edge.post,
.iso-scene.volumetric-mode .wire-edge.casting,
.iso-scene.volumetric-mode .wire-edge.key,
.iso-scene.volumetric-mode .wire-edge.travessa{stroke-opacity:.35!important}
.iso-scene.volumetric-mode .wire-edge.floor3d,
.iso-scene.volumetric-mode .wire-edge.roof3d,
.iso-scene.volumetric-mode .wire-edge.exterior3d,
.iso-scene.volumetric-mode .wire-edge.closure3d{stroke-opacity:.92!important;stroke-width:.95!important}


/* v0.1.21 - placement, lock and context interaction */
header .brand img{width:142px!important;max-height:38px!important}
.library-module{padding-bottom:8px!important}
.library-module .library-lock{position:relative!important;right:auto!important;bottom:auto!important;margin-top:2px;width:11px;height:9px;border-width:1.2px;border-color:#aaa}
.library-module .library-lock:before{width:7px;height:6px;left:1px;top:-6px;border-width:1.2px;border-color:#aaa}
.library-module .library-lock.locked,.library-module .library-lock.locked:before{border-color:#111;background:#111}
.library-module .library-lock.locked:before{background:transparent}
.module-context-menu{position:fixed;z-index:5000;display:flex;flex-direction:column;min-width:126px;background:#fff;border:1px solid #d8d8d2;box-shadow:0 10px 28px rgba(20,20,18,.14);padding:5px}
.module-context-menu[hidden]{display:none}
.module-context-menu button{border:0;background:#fff;text-align:left;padding:8px 10px;font-size:10px;color:#222}
.module-context-menu button:hover{background:#f0f0ec}
.block-shape.locked{stroke:#111!important;stroke-dasharray:3 2}
.module-status-card.block-card-status .mini-frame{border-radius:1px}

/* v0.1.22 - interaction reliability and visual refinements */
header .brand img{width:160px!important;max-height:44px!important}
.library-module{overflow:visible!important;padding-bottom:7px!important}
.library-module span{min-height:38px!important}
.library-module .library-lock{margin-top:0!important;transform:translateY(-1px);width:10px!important;height:8px!important;flex:0 0 auto}
.library-module .library-lock:before{width:6px!important;height:5px!important;left:1px!important;top:-5px!important}
.library-module .library-lock.locked{background:#111!important;border-color:#111!important}
.library-module .library-lock.locked:before{background:transparent!important;border-color:#111!important}
.plan-svg .block-shape{cursor:grab}
.plan-svg .block-shape:active{cursor:grabbing}
#undoBtn:disabled{opacity:.32;cursor:not-allowed}

/* v0.1.23 - unified interactions and visual refinements */
.brand-logo,.logo,.wordmark{font-size:1.18em!important;transform:scale(1.08);transform-origin:left center}
.library-module .library-lock{transform:none!important;margin-top:8px!important}
.wall-body.locked{stroke:#111!important;stroke-dasharray:3 2;cursor:not-allowed!important}

/* v0.1.25 */
header .brand img{width:174px!important;max-height:48px!important}
.library-module.active{background:#ecece8!important;border-color:#b8b8b1!important}
/* v0.1.25: wordmark emphasis */
header .brand img{width:192px!important;max-height:52px!important}

/* Sprint 02 · Geometric Engine */
.tool#rotateTool.active{background:#111;color:#fff}
.library-module.active{background:#ececea;border-color:#9b9b95}
.block-shape.selected,.wall-body.selected,.module-selected{filter:drop-shadow(0 0 2px rgba(0,0,0,.22))}
.plan-svg.rotate-ready{cursor:crosshair}

/* v0.2.1 interaction hardening */
.library-module,.module-card,.block-shape{user-select:none;-webkit-user-drag:none;}
#planSvg{touch-action:none;}
.block-shape{cursor:grab;}
.block-shape:active{cursor:grabbing;}

/* v0.2.3 — iconographic geometry toolbar and hard separation between library and stage */
.no-native-drag, .no-native-drag *{-webkit-user-drag:none!important;user-drag:none!important}.library-module,.library-module *{user-select:none!important;-webkit-user-select:none!important;touch-action:manipulation}.canvas,.plan-svg,.plan-svg *{user-select:none;-webkit-user-select:none}.stage-module-strip{display:none!important}
.tools-section{padding-bottom:16px!important}.icon-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:9px}.left .icon-tool{position:relative;width:100%;min-height:58px;margin:0!important;padding:7px 3px 6px!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #e2e2dc;background:#fff;color:#5d5d58;text-align:center;border-radius:2px}.left .icon-tool:hover{border-color:#a9a9a3;color:#111}.left .icon-tool.active{background:#111;color:#fff;border-color:#111}.left .icon-tool.persistent-active:not(.active){box-shadow:inset 0 -2px #111;color:#111}.left .icon-tool span{font-size:7.5px;line-height:1;letter-spacing:.01em}.tool-icon{position:relative;display:block;width:21px;height:21px;color:currentColor}.select-icon:before{content:"";position:absolute;left:4px;top:2px;width:10px;height:15px;border-left:1.5px solid currentColor;transform:rotate(-23deg)}.select-icon:after{content:"";position:absolute;left:8px;top:10px;width:8px;height:6px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(20deg)}
.move-icon:before,.move-icon:after{content:"";position:absolute;left:3px;top:10px;width:15px;border-top:1.5px solid currentColor}.move-icon:after{transform:rotate(90deg)}.move-icon{background:linear-gradient(45deg,transparent 46%,currentColor 47% 53%,transparent 54%) center/7px 7px no-repeat}.snap-icon:before{content:"";position:absolute;inset:3px;border:1px dashed currentColor}.snap-icon:after{content:"";position:absolute;left:8px;top:8px;width:5px;height:5px;background:currentColor;border-radius:50%}.rotate-icon:before{content:"";position:absolute;inset:3px;border:1.5px solid currentColor;border-left-color:transparent;border-radius:50%}.rotate-icon:after{content:"";position:absolute;right:0;top:2px;border-left:5px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;transform:rotate(25deg)}.lock-icon:before{content:"";position:absolute;left:5px;top:9px;width:11px;height:9px;border:1.5px solid currentColor;border-radius:2px}.lock-icon:after{content:"";position:absolute;left:7px;top:3px;width:7px;height:8px;border:1.5px solid currentColor;border-bottom:0;border-radius:8px 8px 0 0}.delete-icon:before{content:"";position:absolute;left:6px;top:7px;width:10px;height:11px;border:1.5px solid currentColor;border-top:0}.delete-icon:after{content:"";position:absolute;left:4px;top:4px;width:14px;border-top:1.5px solid currentColor;box-shadow:4px -3px 0 -1px currentColor}.tool-help{margin:10px 0 0!important}.plan-svg.move-ready{cursor:move}.plan-svg.rotate-ready{cursor:crosshair}.plan-svg.lock-ready{cursor:pointer}

/* v0.2.4 — proprietary refined toolbar iconography */
.icon-tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.left .icon-tool{min-height:49px;padding:6px!important;gap:0;border-color:#e5e5df}
.left .icon-tool span{display:none}
.tool-icon{width:24px;height:24px}
/* Selection: calibrated architectural pointer */
.select-icon:before{content:"";position:absolute;left:5px;top:2px;width:0;height:0;border-left:6px solid currentColor;border-top:16px solid transparent;transform:rotate(-17deg);transform-origin:center}
.select-icon:after{content:"";position:absolute;left:10px;top:13px;width:8px;height:1.5px;background:currentColor;transform:rotate(47deg);transform-origin:left center}
/* Move: opposed pointers, stacked and centre-aligned */
.move-icon:before,.move-icon:after{content:"";position:absolute;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;top:3px}
.move-icon:before{left:3px;border-right:12px solid currentColor}
.move-icon:after{right:3px;top:14px;border-left:12px solid currentColor}
/* Grid: precise 3x3 matrix */
.grid-icon{background:linear-gradient(currentColor,currentColor) 7px 2px/1px 20px no-repeat,linear-gradient(currentColor,currentColor) 16px 2px/1px 20px no-repeat,linear-gradient(90deg,currentColor,currentColor) 2px 7px/20px 1px no-repeat,linear-gradient(90deg,currentColor,currentColor) 2px 16px/20px 1px no-repeat}
.grid-icon:after{content:"";position:absolute;left:10px;top:10px;width:4px;height:4px;background:currentColor}
/* Snap: orthogonal axes converge on a black plant node */
.snap-icon:before{content:"";position:absolute;left:11.5px;top:1px;width:1px;height:22px;background:currentColor}
.snap-icon:after{content:"";position:absolute;left:1px;top:11.5px;width:22px;height:1px;background:currentColor;box-shadow:none;border-radius:0}
.snap-icon{background:currentColor center/6px 6px no-repeat}
/* Rotate: interrupted circle with integrated arrow tip */
.rotate-icon:before{content:"";position:absolute;inset:3px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%}
.rotate-icon:after{content:"";position:absolute;right:1px;top:2px;width:0;height:0;border-left:6px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transform:rotate(34deg)}
/* Lock retained */
/* Delete: lid precisely centred on body axis */
.delete-icon:before{content:"";position:absolute;left:6px;top:8px;width:10px;height:11px;border:1.5px solid currentColor;border-top:0}
.delete-icon:after{content:"";position:absolute;left:5px;top:5px;width:14px;border-top:1.5px solid currentColor;box-shadow:4px -3px 0 -1px currentColor}
.icon-tool[title]:hover:after{content:attr(title);position:absolute;z-index:30;left:50%;top:calc(100% + 7px);transform:translateX(-50%);padding:5px 7px;background:#111;color:#fff;font-size:8px;line-height:1;white-space:nowrap;pointer-events:none;border-radius:2px;box-shadow:0 4px 12px rgba(0,0,0,.14)}

/* v0.2.5 — frameless toolbar, clear active state and corrected proprietary icons */
.icon-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 7px;margin-top:12px;align-items:start}
.left .icon-tool{appearance:none;position:relative;width:100%;min-height:58px;margin:0!important;padding:3px 0!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;border:0!important;background:transparent!important;box-shadow:none!important;color:#b9b9b3;text-align:center;border-radius:0;overflow:visible}
.left .icon-tool:hover{color:#6f6f69;background:transparent!important}
.left .icon-tool.active,.left .icon-tool.persistent-active{color:#111;background:transparent!important;border:0!important;box-shadow:none!important}
.left .icon-tool span{display:block!important;font-size:8.5px;line-height:1.05;letter-spacing:0;color:currentColor;font-weight:500;white-space:nowrap}
.tool-icon{position:relative;display:block;width:26px;height:26px;color:currentColor;flex:0 0 26px}
.icon-tool[title]:hover:after{display:none!important;content:none!important}
/* Selecionar: refined architectural pointer */
.select-icon:before{content:"";position:absolute;left:6px;top:3px;width:11px;height:17px;border-left:1.55px solid currentColor;transform:rotate(-28deg);transform-origin:50% 90%}
.select-icon:after{content:"";position:absolute;left:10px;top:13px;width:8px;height:7px;border-left:1.55px solid currentColor;border-bottom:1.55px solid currentColor;transform:rotate(17deg)}
/* Arrastar: two opposed pointers, stacked and centered */
.move-icon:before,.move-icon:after{content:"";position:absolute;width:10px;height:9px;border-left:1.45px solid currentColor;border-bottom:1.45px solid currentColor}
.move-icon:before{left:4px;top:4px;transform:rotate(45deg)}
.move-icon:after{right:4px;bottom:4px;transform:rotate(225deg)}
/* Grelha: discreet 3 × 3 matrix */
.grid-icon{background:linear-gradient(to right,transparent 31%,currentColor 31% 35%,transparent 35% 65%,currentColor 65% 69%,transparent 69%),linear-gradient(to bottom,transparent 31%,currentColor 31% 35%,transparent 35% 65%,currentColor 65% 69%,transparent 69%);opacity:.95}
.grid-icon:before{content:"";position:absolute;inset:2px;border:1.2px solid currentColor}
.grid-icon:after{content:"";position:absolute;left:11px;top:11px;width:4px;height:4px;background:currentColor}
/* Snap: orthogonal axes meeting at a black node */
.snap-icon:before{content:"";position:absolute;left:12px;top:2px;width:1.5px;height:22px;background:currentColor}
.snap-icon:after{content:"";position:absolute;left:2px;top:12px;width:22px;height:1.5px;background:currentColor;box-shadow:10px 0 0 1.8px currentColor}
/* Rodar: interrupted circle with integrated arrow */
.rotate-icon:before{content:"";position:absolute;inset:4px;border:1.55px solid currentColor;border-right-color:transparent;border-radius:50%;transform:rotate(-22deg)}
.rotate-icon:after{content:"";position:absolute;right:1px;top:5px;width:0;height:0;border-left:5px solid currentColor;border-top:3px solid transparent;border-bottom:3px solid transparent;transform:rotate(18deg)}
/* Locker retained, geometrically refined */
.lock-icon:before{content:"";position:absolute;left:6px;top:11px;width:14px;height:10px;border:1.45px solid currentColor;border-radius:1.5px}
.lock-icon:after{content:"";position:absolute;left:9px;top:4px;width:8px;height:9px;border:1.45px solid currentColor;border-bottom:0;border-radius:7px 7px 0 0}
/* Eliminar: lid centered precisely over body */
.delete-icon:before{content:"";position:absolute;left:7px;top:9px;width:12px;height:12px;border:1.45px solid currentColor;border-top:0}
.delete-icon:after{content:"";position:absolute;left:5px;top:6px;width:16px;border-top:1.45px solid currentColor;box-shadow:5px -3px 0 -1px currentColor}
.tool-help{margin:11px 0 0!important;font-size:8px!important;line-height:1.45!important;color:#9a9a94!important}


/* v0.2.6 — toolbar icons redrawn from the user-approved reference sketch */
/* Shared stroke discipline: no boxes; inactive light grey, active black. */
.tool-icon{width:30px;height:30px;flex-basis:30px}
.left .icon-tool{min-height:62px;gap:5px;color:#c1c1bb}
.left .icon-tool:hover{color:#777771}
.left .icon-tool.active,.left .icon-tool.persistent-active{color:#111}

/* Selecionar: open diagonal arrow pointing to the upper-right. */
.select-icon:before{content:"";position:absolute;left:4px;bottom:4px;width:24px;height:1.7px;background:currentColor;transform:rotate(-45deg);transform-origin:left center;border:0}
.select-icon:after{content:"";position:absolute;right:2px;top:2px;width:10px;height:10px;border-top:1.7px solid currentColor;border-right:1.7px solid currentColor;transform:none}

/* Arrastar: two horizontal opposed arrows, stacked and centred. */
.move-icon:before{content:"";position:absolute;left:3px;top:7px;width:23px;height:1.7px;background:currentColor;border:0;transform:none}
.move-icon:after{content:"";position:absolute;left:3px;bottom:7px;width:23px;height:1.7px;background:currentColor;border:0;transform:none}
.move-icon{background:
 linear-gradient(45deg,transparent 44%,currentColor 45% 55%,transparent 56%) 21px 3px/8px 8px no-repeat,
 linear-gradient(-45deg,transparent 44%,currentColor 45% 55%,transparent 56%) 21px 8px/8px 8px no-repeat,
 linear-gradient(45deg,transparent 44%,currentColor 45% 55%,transparent 56%) 1px 17px/8px 8px no-repeat,
 linear-gradient(-45deg,transparent 44%,currentColor 45% 55%,transparent 56%) 1px 22px/8px 8px no-repeat}

/* Grelha: four clean regulating lines, no containing square or centre fill. */
.grid-icon{background:
 linear-gradient(currentColor,currentColor) 9px 2px/1.6px 26px no-repeat,
 linear-gradient(currentColor,currentColor) 20px 2px/1.6px 26px no-repeat,
 linear-gradient(90deg,currentColor,currentColor) 2px 9px/26px 1.6px no-repeat,
 linear-gradient(90deg,currentColor,currentColor) 2px 20px/26px 1.6px no-repeat;opacity:1}
.grid-icon:before,.grid-icon:after{display:none!important;content:none!important}

/* Snap: vertical and horizontal guides meet at a solid square node. */
.snap-icon:before{content:"";position:absolute;left:14px;top:1px;width:1.7px;height:16px;background:currentColor}
.snap-icon:after{content:"";position:absolute;left:14px;top:14px;width:15px;height:1.7px;background:currentColor;box-shadow:none}
.snap-icon{background:currentColor 10px 12px/9px 9px no-repeat}

/* Rodar: interrupted circular path with an open arrowhead at one end. */
.rotate-icon:before{content:"";position:absolute;left:5px;top:4px;width:20px;height:20px;border:1.7px solid currentColor;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-22deg)}
.rotate-icon:after{content:"";position:absolute;left:2px;top:7px;width:9px;height:9px;border-left:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(-18deg);border-top:0;border-right:0}

/* Bloquear: retained from the validated version. */

/* Eliminar: open bin body with detached lid centred on its axis. */
.delete-icon:before{content:"";position:absolute;left:8px;top:10px;width:14px;height:15px;border-left:1.7px solid currentColor;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;border-top:0}
.delete-icon:after{content:"";position:absolute;left:8px;top:5px;width:14px;height:1.7px;background:currentColor;box-shadow:none;border:0}

/* v0.2.9 — toolbar icons redrawn directly from approved reference */
.tool-icon{display:none!important}
.tool-svg{width:28px;height:28px;display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke;flex:0 0 28px}
.tool-svg .node-fill{fill:currentColor;stroke:currentColor}
.left .icon-tool{color:#c2c2bc!important}
.left .icon-tool:hover{color:#777772!important}
.left .icon-tool.active,.left .icon-tool.persistent-active{color:#111!important}


/* v0.2.9 — unified tool activation and revised module-library symbols */
/* A tool is black only while it is the current active command. All others remain light grey. */
.left .icon-tool{color:#c2c2bc!important}
.left .icon-tool:hover{color:#777772!important}
.left .icon-tool.active{color:#111!important}
.left .icon-tool.persistent-active{color:#c2c2bc!important}
/* Floor follows the roof grammar, with the heavy bar at the bottom. */
.lib-icon.floor{width:30px;height:16px;margin:4px auto 0;transform:none;background:transparent;border:0;border-left:1px solid #aaa;border-right:1px solid #aaa;border-bottom:3px solid #777}
.lib-icon.floor:before,.lib-icon.floor:after{content:none}
/* Interior wall · vertical rectangle (PI-0600 standing). */
.lib-icon.interior{width:12px;height:26px;margin:0 auto;background:transparent;border:1px solid #777;align-self:center}
.lib-icon.interior:before,.lib-icon.interior:after{content:none}


/* v0.2.9 — approved final refinements: Rodar, Sol e Lua only */
.rotate-icon-svg path,.environment-icon{fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:butt;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.environment-icon{display:block;width:21px;height:21px}
.floating-env-btn{width:25px;height:25px;padding:2px;border:0;background:transparent;color:#c4c4bf;display:grid;place-items:center}
.floating-env-btn.active{color:#111}
.floating-env-btn:hover{color:#777}
.sun-icon,.moon-icon{display:none!important}

/* v0.3.0 · Regras ativas contextuais */
.active-rules-empty{font-size:12px;color:#9a9a9a;padding:8px 0 2px}
.active-rules-card h3{font-size:13px;margin:5px 0 2px;font-weight:650;color:#111}
.active-rules-card p{font-size:11px;margin:0 0 8px;color:#555}
.active-rules-card dl{display:grid;grid-template-columns:76px 1fr;gap:5px 8px;margin:0;font-size:10px;line-height:1.35}
.active-rules-card dt{color:#9a9a9a}.active-rules-card dd{margin:0;color:#333}

/* v0.3.1 · representação 3D */
.display-mode{display:flex;align-items:center;gap:0;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.viewport-tools .display-mode-btn{border:0;background:transparent;color:#a5a59f;padding:7px 8px;font-size:8px;letter-spacing:.035em}
.viewport-tools .display-mode-btn:hover{color:#555550;background:#f7f7f4}
.viewport-tools .display-mode-btn.active{color:#111;background:transparent;font-weight:600}
.iso-scene{touch-action:none;cursor:grab}
.iso-scene:active{cursor:grabbing}


/* v0.4.0 - Digital Twin OS */
.twin-stage{opacity:.72}.twin-mode .twin-stage{opacity:1;color:#111}.twin-mode #canvas{background-image:linear-gradient(rgba(0,0,0,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.018) 1px,transparent 1px);background-size:24px 24px}
#twinViewBtn.active,.twin-mode #twinViewBtn{background:#111;color:#fff;border-color:#111}
.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.twin-badge{font-size:9px;letter-spacing:.12em;color:#aaa}.twin-badge.active{color:#111}
.digital-twin-panel,.interfaces-panel,.construction-panel{display:grid;gap:10px}.twin-empty{font-size:11px;color:#999;line-height:1.45;margin:0}
.twin-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.twin-kpis div{border-top:1px solid #ddd;padding-top:7px}.twin-kpis span{display:block;font-size:9px;color:#999}.twin-kpis b{font-size:15px;font-weight:500}
.twin-passport{padding:10px;background:#f5f5f3;border-left:2px solid #111}.twin-passport span{display:block;font-size:8px;letter-spacing:.12em;color:#888;margin-bottom:5px}.twin-passport b,.twin-passport small{display:block}.twin-passport b{font-size:12px}.twin-passport small{font-size:9px;color:#777;margin-top:3px}
.twin-flow{display:flex;align-items:center;justify-content:space-between;position:relative;padding-top:11px}.twin-flow:before{content:"";position:absolute;left:5px;right:5px;top:5px;height:1px;background:#ddd}.twin-flow i{position:absolute;left:4px;top:2px;width:7px;height:7px;background:#111}.twin-flow span{font-size:8px;color:#888}
.interface-row{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid #eee}.interface-row i{width:7px;height:7px;margin-top:3px;background:#111}.interface-row.warn i{background:#b0b0b0}.interface-row b,.interface-row small{display:block}.interface-row b{font-size:10px;font-weight:500}.interface-row small{font-size:9px;color:#888;margin-top:2px;line-height:1.35}
.build-progress{height:2px;background:#e6e6e6}.build-progress span{display:block;height:100%;background:#111;transition:width .2s ease}.build-step small,.build-step b{display:block}.build-step small{font-size:8px;color:#999;letter-spacing:.12em}.build-step b{font-size:13px;margin:4px 0}.build-step p{font-size:9px;line-height:1.4;color:#777;margin:0}.construction-actions{display:flex;gap:6px;margin-top:9px}.construction-actions button{flex:1;font-size:9px;padding:7px}.selection-twin-id{display:block;margin-top:5px;color:#999;font-size:9px;letter-spacing:.04em}
@media(max-width:1300px){.twin-kpis{grid-template-columns:1fr}.twin-flow span:nth-last-child(-n+2){display:none}}

/* Sprint 05 · Operational Interface */
.workflow-nav .stage{cursor:pointer}
.workflow-nav .stage.os-active{color:#111}
.workflow-nav .stage.os-active::after{content:"";display:block;height:2px;background:#111;margin-top:7px}
.os-console-backdrop{position:fixed;inset:0;background:rgba(18,18,16,.18);backdrop-filter:blur(2px);z-index:90}
.os-console{position:fixed;top:0;right:0;width:min(620px,92vw);height:100vh;background:#f8f8f6;border-left:1px solid #d8d8d3;z-index:91;transform:translateX(102%);transition:transform .24s ease;display:flex;flex-direction:column;box-shadow:-18px 0 45px rgba(0,0,0,.08)}
.os-console.open{transform:translateX(0)}
.os-console-head{display:flex;justify-content:space-between;gap:24px;padding:28px 30px 18px;border-bottom:1px solid #deded8}
.os-console-head h2{font-size:25px;margin:5px 0 5px;font-weight:520;letter-spacing:-.03em}
.os-console-head p{margin:0;color:#6f706a;font-size:12px}
.os-console-head>button{border:0;background:transparent;font-size:30px;font-weight:200;line-height:1;color:#777;cursor:pointer}
.os-console-tabs{display:flex;gap:2px;padding:10px 18px;border-bottom:1px solid #deded8;overflow:auto}
.os-console-tabs button{border:0;background:transparent;padding:9px 11px;color:#a3a39d;font-size:11px;cursor:pointer;white-space:nowrap}
.os-console-tabs button.active{color:#111;font-weight:600}
.os-console-content{padding:22px 30px 40px;overflow:auto;flex:1}
.os-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:20px}
.os-kpi{background:#fff;border:1px solid #e0e0da;padding:13px;min-height:72px}
.os-kpi span{display:block;font-size:9px;letter-spacing:.09em;color:#8c8d87;text-transform:uppercase}
.os-kpi b{display:block;font-size:22px;margin-top:7px;font-weight:520}
.os-section{margin:0 0 22px}
.os-section h3{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;color:#555650}
.os-list{display:flex;flex-direction:column;border-top:1px solid #deded8}
.os-row{display:grid;grid-template-columns:1.2fr .9fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #e4e4df;font-size:11px}
.os-row b{font-weight:550}.os-row small{color:#858680}.os-row em{font-style:normal;font-size:9px;padding:4px 7px;border:1px solid #cecec8}
.os-row em.valid,.os-row em.ready{background:#171714;color:#fff;border-color:#171714}
.os-row em.conditioned,.os-row em.waiting-input{background:#ecece8;color:#555}.os-row em.invalid,.os-row em.blocked{color:#873f36;border-color:#c9a39e}
.os-passport{background:#fff;border:1px solid #dcdcd6;padding:15px;margin-bottom:10px}
.os-passport-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.os-passport-head b{font-size:13px}.os-passport-head code{font-size:10px;color:#777}
.os-passport-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.os-passport-grid div{border-top:1px solid #ecece7;padding-top:7px}.os-passport-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#999}.os-passport-grid b{font-size:11px}
.os-timeline{position:relative;margin-left:7px}.os-step{position:relative;padding:0 0 18px 24px;border-left:1px solid #ccc}.os-step:last-child{border-left-color:transparent}.os-step::before{content:"";position:absolute;left:-5px;top:1px;width:9px;height:9px;border:1px solid #aaa;background:#f8f8f6}.os-step.ready::before{background:#111;border-color:#111}.os-step h4{margin:0 0 4px;font-size:12px}.os-step p{margin:0;color:#777;font-size:10px}.os-step button{margin-top:8px;border:1px solid #bbb;background:#fff;padding:6px 9px;font-size:9px;cursor:pointer}
.os-actionbar{display:flex;gap:8px;margin-top:15px}.os-actionbar button{border:1px solid #aaa;background:#fff;padding:9px 12px;font-size:10px;cursor:pointer}.os-actionbar button.primary{background:#111;color:#fff;border-color:#111}
@media(max-width:700px){.os-dashboard-grid{grid-template-columns:1fr 1fr}.os-console-content{padding:18px}.os-console-head{padding:22px 18px}}

/* Sprint 06 · Contextual Workspace */
.visually-hidden{display:none!important;width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important}
.workspace-lenses{display:flex;align-items:center;gap:12px;margin-right:5px;border-right:1px solid #ddd;padding-right:13px}.workspace-lenses .lens-btn{border:0;background:transparent;padding:4px 0;font-size:10px;color:#aaa;cursor:pointer;border-bottom:1px solid transparent}.workspace-lenses .lens-btn.active{color:#111;border-bottom-color:#111}
.workspace-screen[data-lens="system"] .canvas{background:#fbfbf9}.workspace-screen[data-lens="system"] .module-label,.workspace-screen[data-lens="system"] .corner-node{opacity:1}.workspace-screen[data-lens="process"] .canvas{background:#f9f9f7}.workspace-screen[data-lens="process"] .module-outline,.workspace-screen[data-lens="process"] .block-shape,.workspace-screen[data-lens="process"] .wall-body{opacity:.28}
.contextual-right{overflow:auto;background:#fafaf8}.contextual-right>section{padding:17px 17px 16px;border-bottom:1px solid #e2e2dd}.contextual-right .section-heading-row{align-items:center;margin-bottom:13px}.quiet-link{border:0;background:transparent;color:#8d8d87;font-size:9px;padding:0;cursor:pointer}.quiet-link:hover{color:#111}
.compact-score{display:flex;align-items:baseline;gap:8px;margin-bottom:15px}.compact-score b{font-size:28px;font-weight:510;letter-spacing:-.045em}.compact-score span{font-size:10px;color:#777}.compact-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px 15px}.compact-metrics div{display:flex;flex-direction:column;gap:3px}.compact-metrics span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.compact-metrics b{font-size:11px;font-weight:520;color:#222}
.context-entity-header{display:flex;flex-direction:column;gap:4px;min-height:38px}.context-entity-header b,.context-entity-header span{font-size:13px;font-weight:520;color:#222}.context-entity-header code{font-size:8px;color:#999;background:transparent;padding:0}.context-entity-header small{font-size:9px;color:#8b8b85}.context-tabs{display:flex;gap:16px;margin:14px 0 11px;border-bottom:1px solid #e2e2dd}.context-tabs button{border:0;background:transparent;padding:0 0 7px;color:#aaa;font-size:9px;cursor:pointer;border-bottom:1px solid transparent;margin-bottom:-1px}.context-tabs button.active{color:#111;border-bottom-color:#111}.context-tab-content{min-height:104px}
.context-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.context-data-grid div{display:flex;flex-direction:column;gap:2px}.context-data-grid span{font-size:8px;color:#aaa;text-transform:uppercase;letter-spacing:.06em}.context-data-grid b{font-size:10px;font-weight:500;line-height:1.35}.context-list{display:flex;flex-direction:column;gap:8px}.context-list-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;padding-bottom:8px;border-bottom:1px solid #ecece7}.context-list-row:last-child{border-bottom:0}.context-list-row b{font-size:9px;font-weight:520}.context-list-row small{font-size:8px;color:#999;line-height:1.35}.context-list-row em{font-style:normal;font-size:8px;color:#777}
.intelligence-groups{display:flex;flex-direction:column;margin-top:10px}.intelligence-group{border-top:1px solid #e5e5df}.intelligence-group>button{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;border:0;background:transparent;padding:10px 0;text-align:left;cursor:pointer}.intelligence-group>button span{font-size:10px}.intelligence-group>button b{font-size:10px;font-weight:520}.intelligence-group>button i{font-style:normal;color:#aaa;font-size:12px}.intelligence-group .group-detail{display:none;padding:0 0 10px;color:#777;font-size:9px;line-height:1.5}.intelligence-group.open .group-detail{display:block}
.contextual-timeline{display:flex;align-items:stretch;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#fbfbf9;min-height:39px;overflow-x:auto}.timeline-phase{position:relative;flex:1;min-width:94px;border:0;border-right:1px solid #e4e4df;background:transparent;padding:8px 11px;text-align:left;cursor:pointer;color:#aaa}.timeline-phase span{display:block;font-size:7px;letter-spacing:.08em;margin-bottom:2px}.timeline-phase b{display:block;font-size:9px;font-weight:500;white-space:nowrap}.timeline-phase.ready{color:#555}.timeline-phase.active{color:#111;background:#f0f0ec}.timeline-phase.active:after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;background:#111}.timeline-phase.blocked{opacity:.45}.legacy-panels{display:none!important}.contextual-right .advice{font-size:10px;line-height:1.5;color:#555}.os-console{width:min(560px,92vw);box-shadow:-8px 0 30px rgba(0,0,0,.06)}.os-console-backdrop{background:rgba(18,18,16,.1);backdrop-filter:none}
@media(max-width:1050px){.workspace-lenses{gap:7px}.compact-metrics{grid-template-columns:1fr}}

/* Sprint 06.1 · Restore the operational module library */
.workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) 39px 154px 74px!important;
  min-height:0;
  overflow:hidden;
}
.module-library-wrap:not([hidden]){
  display:block!important;
  min-height:154px;
  height:154px;
  overflow:hidden;
  background:#fff;
  border-top:1px solid #d8d8d2;
  position:relative;
  z-index:12;
}
.module-library-head{
  display:flex!important;
  min-height:38px;
  height:38px;
  padding:6px 14px;
  align-items:center;
  background:#fff;
}
.module-library-head small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.module-library-strip{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(128px,1fr));
  min-height:116px;
  height:116px;
  overflow-x:auto;
  overflow-y:hidden;
  background:#fff;
}
.library-module{
  display:flex!important;
  min-height:116px!important;
  height:116px;
  visibility:visible!important;
  opacity:1;
}
.contextual-timeline{min-height:39px;height:39px}
.project-summary-strip{min-height:74px;height:74px}
@media(max-height:820px){
  .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 35px 132px 68px!important}
  .contextual-timeline{min-height:35px;height:35px}
  .module-library-wrap{min-height:132px;height:132px}
  .module-library-head{min-height:32px;height:32px;padding:4px 12px}
  .module-library-strip{min-height:100px;height:100px}
  .library-module{min-height:100px!important;height:100px;padding-top:7px!important}
  .library-module .lib-icon{transform:scale(.88);transform-origin:center}
  .project-summary-strip{min-height:68px;height:68px}
}


/* v0.7.3 · Context selection and legacy toolbar artifact fix */
#twinViewBtn{display:none!important;position:absolute!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:transparent!important;box-shadow:none!important;pointer-events:none!important;visibility:hidden!important;}
.context-tab-content .hint{margin:0;font-size:9px;line-height:1.5;color:#888;}

/* v0.7.7 · Stage and module library form one continuous workspace */
.workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) 154px 74px!important;
}
.canvas{
  min-height:0;
  border-bottom:0;
}
.stage-timeline{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:18;
  height:39px;
  min-height:39px;
  border-top:1px solid rgba(210,210,204,.92);
  border-bottom:0;
  background:rgba(251,251,249,.96);
  backdrop-filter:blur(3px);
}
.module-library-wrap{
  margin:0!important;
  border-top:1px solid #d8d8d2;
}
@media(max-height:820px){
  .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 132px 68px!important}
  .stage-timeline{height:35px;min-height:35px}
}

/* v0.7.8 · Definitive stage-to-library docking fix */
.workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) 154px 74px!important;
  row-gap:0!important;
  gap:0!important;
}
.canvas{
  margin:0!important;
  padding-bottom:0!important;
  border-bottom:0!important;
}
/* The placed-module strip is now a compact floating overlay, never a white deck. */
.stage-module-strip{
  left:12px!important;
  right:auto!important;
  bottom:46px!important;
  width:auto!important;
  max-width:calc(100% - 24px)!important;
  min-height:0!important;
  height:auto!important;
  max-height:72px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  overflow:auto!important;
  pointer-events:none;
}
.stage-module-strip:empty{display:none!important}
.stage-module-strip>*{pointer-events:auto}
.stage-timeline{bottom:0!important}
.module-library-wrap{
  align-self:stretch!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  border-top:1px solid #d8d8d2!important;
}
@media(max-height:820px){
  .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 132px 68px!important}
  .stage-module-strip{bottom:41px!important;max-height:62px!important}
}

/* v0.7.9 · Stage/library physical seam correction */
.workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) 154px 74px!important;
  row-gap:0!important;
  gap:0!important;
}
.canvas{
  display:block;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border-bottom:0!important;
}
.canvas + .module-library-wrap{
  margin-top:0!important;
}
.module-library-wrap{
  position:relative!important;
  top:0!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  border-top:1px solid #d8d8d2!important;
}
/* An empty construction timeline must not reserve a blank white strip. */
.stage-timeline:empty{
  display:none!important;
  height:0!important;
  min-height:0!important;
  border:0!important;
}
/* When populated, the timeline floats over the drawing rather than separating it from the library. */
.stage-timeline:not(:empty){
  left:12px!important;
  right:12px!important;
  bottom:12px!important;
  width:auto!important;
  height:39px!important;
  min-height:39px!important;
  border:1px solid rgba(210,210,204,.92)!important;
  background:rgba(251,251,249,.94)!important;
  box-shadow:0 5px 18px rgba(20,20,18,.045)!important;
}
@media(max-height:820px){
  .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 132px 68px!important}
  .stage-timeline:not(:empty){height:35px!important;min-height:35px!important;bottom:10px!important}
}

/* v0.8.6 — parede de fecho: mesma linguagem da parede exterior, módulo de 600 mm */
.lib-icon.closure{border-left:3px solid #777;border-right:1px solid #aaa;height:25px;width:12px;margin:2px auto 1px!important;align-self:center}.lib-icon.closure:before{content:"";position:absolute;left:4px;top:0;bottom:0;border-left:1px dashed #bbb}

/* v0.8.9 · Biblioteca completa e identidade cromática da Parede de fecho */
.module-library-strip{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  overflow-x:hidden!important;
}
.library-module{
  min-width:0!important;
  width:auto!important;
}
.block-shape.closure{
  fill:rgba(78,84,74,.4)!important;
  stroke:#50564e!important;
}
.solid-face.closure3d{
  fill:#656b61!important;
  fill-opacity:.64!important;
}
.wire-edge.closure3d{
  stroke:#2c302b!important;
  stroke-width:1.1!important;
}
@media(max-width:1180px){
  .library-module{padding-left:5px!important;padding-right:5px!important;gap:5px!important}
  .library-module b{font-size:8px!important}
  .library-module small{font-size:6.6px!important}
}

/* v1.1.0 · Project Intelligence Interface */
.context-project-identity{display:flex;flex-direction:column;gap:2px;margin:0 0 12px}.context-project-identity>b{font-size:13px;font-weight:560;color:#171716}.context-project-identity>small{font-size:8px;line-height:1.4;color:#96968f}.knowledge-shortcuts{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:13px;border-top:1px solid #e2e2dd;border-bottom:1px solid #e2e2dd}.knowledge-shortcuts button{border:0;border-right:1px solid #e7e7e2;background:transparent;padding:8px 3px;font-size:7px;color:#8f8f88;cursor:pointer}.knowledge-shortcuts button:last-child{border-right:0}.knowledge-shortcuts button:hover,.knowledge-shortcuts button:focus{color:#111;background:#f1f1ed}.context-tabs{overflow-x:auto;scrollbar-width:none}.context-tabs::-webkit-scrollbar{display:none}.context-tabs button{white-space:nowrap;flex:0 0 auto}.performance-list,.layer-stack,.process-card{display:flex;flex-direction:column;gap:7px}.performance-row,.layer-row,.process-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid #ecece7}.performance-row:last-child,.layer-row:last-child,.process-row:last-child{border-bottom:0}.performance-row span,.layer-row span,.process-row span{font-size:8px;color:#898982}.performance-row b,.layer-row b,.process-row b{font-size:9px;font-weight:520;color:#222;text-align:right}.data-evidence{margin-top:9px;padding-top:8px;border-top:1px solid #e9e9e4;font-size:8px;line-height:1.45;color:#999}.data-warning{display:flex;gap:7px;align-items:flex-start;padding:8px;background:#f1f1ed;font-size:8px;line-height:1.45;color:#555}.data-warning:before{content:"!";font-weight:700;color:#111}.contextual-right{min-width:260px}.compact-metrics{grid-template-columns:1fr 1fr}.compact-metrics>div:nth-child(5),.compact-metrics>div:nth-child(6){grid-column:auto}@media(max-width:1180px){.knowledge-shortcuts{grid-template-columns:repeat(3,1fr)}.knowledge-shortcuts button:nth-child(3){border-right:0}.context-tabs{gap:12px}}

/* v1.2.0 · Information Center */
.information-center{display:flex!important;flex-direction:column;min-width:278px;overflow:hidden;background:#fbfbf9;border-left:1px solid #deded8}
.information-center-head{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid #e2e2dc}
.information-center-head>div{display:flex;flex-direction:column;gap:2px}.information-center-head small{font-size:7px;color:#999}.information-center-head>b{font-size:7px;font-weight:520;color:#111;padding-top:2px}
.information-center-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #dddeda;background:#f7f7f4}
.information-center-tabs button{border:0;border-right:1px solid #e3e3dd;border-bottom:1px solid #e3e3dd;background:transparent;padding:8px 3px;font-size:7px;line-height:1.1;color:#aaa;cursor:pointer}
.information-center-tabs button:nth-child(4n){border-right:0}.information-center-tabs button.active{color:#111;background:#fff;font-weight:600}.information-center-tabs button:hover{color:#222}
.information-center-content{flex:1;min-height:0;overflow:auto;padding:13px 14px 18px}
.information-center-advice{flex:0 0 auto;margin:0!important;border-top:1px solid #deded8;padding:11px 14px!important;background:#fafaf7}
.info-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.info-title h3{font-size:13px;font-weight:560;margin:0;color:#171716}.info-title small{display:block;font-size:7px;line-height:1.4;color:#999;margin-top:3px}.info-badge{font-size:7px;padding:4px 6px;background:#ededE8;color:#444;white-space:nowrap}
.info-score{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 0 13px;border-bottom:1px solid #e4e4df}.info-score b{font-size:23px;font-weight:520}.info-score span{font-size:8px;color:#777}.info-score small{display:block;font-size:7px;color:#aaa;margin-top:2px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:7px;border-top:1px solid #ecece7}.info-grid>div{padding:9px 4px;border-bottom:1px solid #ecece7}.info-grid>div:nth-child(odd){border-right:1px solid #ecece7}.info-grid span{display:block;font-size:7px;color:#999;margin-bottom:3px}.info-grid b{font-size:9px;font-weight:540;color:#222;line-height:1.3}
.info-section{margin-top:14px}.info-section h4{font-size:8px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px;color:#777;font-weight:600}.info-list{border-top:1px solid #e5e5df}.info-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #e9e9e4;align-items:start}.info-row b{font-size:8px;font-weight:560;color:#222}.info-row small{display:block;font-size:7px;line-height:1.45;color:#96968f;margin-top:2px}.info-row em{font-style:normal;font-size:7px;color:#555;white-space:nowrap}.info-row em.valid{color:#222}.info-row em.conditioned{color:#866c38}
.info-empty{font-size:8px;line-height:1.55;color:#999;padding:10px 0}.info-note{font-size:7px;line-height:1.5;color:#979790;padding:8px 0;border-top:1px solid #e6e6e1;margin-top:9px}
.info-subtabs{display:flex;gap:14px;border-bottom:1px solid #e2e2dc;margin-bottom:10px;overflow:auto}.info-subtabs button{border:0;background:transparent;padding:0 0 7px;font-size:7px;color:#aaa;white-space:nowrap}.info-subtabs button.active{color:#111;border-bottom:1px solid #111}
.info-layer{display:grid;grid-template-columns:25px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid #ecece7}.info-layer i{font-style:normal;font-size:7px;color:#aaa}.info-layer b{font-size:8px;font-weight:520}
.info-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}.info-actions button{border:1px solid #d8d8d2;background:#fff;padding:8px;font-size:7px;color:#555}.info-actions button:hover{background:#111;color:#fff;border-color:#111}
.info-phase{padding:8px 0;border-bottom:1px solid #e8e8e3}.info-phase-head{display:flex;justify-content:space-between;gap:8px}.info-phase b{font-size:8px}.info-phase span,.info-phase small{font-size:7px;color:#999}.info-phase.ready .info-phase-head span{color:#222}.info-phase.blocked{opacity:.55}
@media(max-width:1180px){.information-center{min-width:250px}.information-center-tabs{grid-template-columns:repeat(3,1fr)}.information-center-tabs button:nth-child(4n){border-right:1px solid #e3e3dd}.information-center-tabs button:nth-child(3n){border-right:0}}

/* v1.2.3 — Centro de Informação em sistema pulldown */
.information-center-pulldowns{flex:1;min-height:0;overflow:auto;background:#fbfbf9}
.info-pulldown{border-bottom:1px solid #deded8;background:#fbfbf9}
.info-pulldown-toggle{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;color:#aaa;font:inherit;font-size:8px;text-align:left;cursor:pointer}
.info-pulldown-toggle:hover{color:#222;background:#f7f7f4}
.info-pulldown.open>.info-pulldown-toggle{color:#111;background:#fff;font-weight:600}
.info-pulldown-toggle i{font-style:normal;font-size:11px;font-weight:400;line-height:1}
.info-pulldown-panel{display:none;padding:0 14px 14px;background:#fff}
.info-pulldown.open>.info-pulldown-panel{display:block}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-top:1px solid #ecece7;border-left:1px solid #ecece7}
.info-grid>div{min-width:0;padding:8px;border-right:1px solid #ecece7;border-bottom:1px solid #ecece7;background:#fff}
.info-grid span,.info-card small,.info-row small{display:block;font-size:6.5px;color:#999;line-height:1.35}
.info-grid b,.info-card b,.info-row b{display:block;margin-top:2px;font-size:7.5px;color:#161616;font-weight:560;overflow-wrap:break-word;word-break:normal}
.info-card{padding:9px 0;border-bottom:1px solid #ecece7}
.info-card:last-child{border-bottom:0}
.info-card h4{margin:0 0 5px;font-size:8px;font-weight:600;color:#111}
.info-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #efefe9}
.info-row:last-child{border-bottom:0}
.info-row>div{min-width:0}.info-row em{font-size:6.5px;font-style:normal;color:#777;white-space:nowrap}
.info-empty{margin:0;padding:9px 0;font-size:7px;line-height:1.45;color:#999}
.info-tag{display:inline-block;margin:2px 3px 1px 0;padding:3px 5px;border:1px solid #deded8;font-size:6px;color:#555;background:#fafaf7}
.info-warning{margin-top:8px;padding:8px;border-left:2px solid #222;background:#f5f5f1;font-size:6.5px;line-height:1.45;color:#555}
@media(max-width:1180px){.info-grid{grid-template-columns:1fr}.info-pulldown-toggle{padding:10px 12px}.info-pulldown-panel{padding:0 12px 12px}}

/* v1.2.4 — legibilidade do Centro de Informação */
.information-center-head small{font-size:8.5px}.information-center-head>b{font-size:8.5px}
.info-pulldown-toggle{font-size:10px;padding-top:12px;padding-bottom:12px}
.info-pulldown-toggle i{font-size:13px}
.info-grid span,.info-card small,.info-row small{font-size:8px;line-height:1.45}
.info-grid b,.info-card b,.info-row b{font-size:9.5px;line-height:1.4}
.info-card h4{font-size:9.5px}.info-row em{font-size:8px}.info-tag{font-size:7.8px}.info-empty,.info-warning{font-size:8.5px;line-height:1.5}

/* v1.2.6 — contraste dos modos Projeto / Sistema / Processo */
.viewport-tools .workspace-lenses .lens-btn,
.workspace-lenses .lens-btn{
  background:transparent!important;
  color:#9a9a94!important;
  border:0!important;
  border-bottom:1px solid transparent!important;
  box-shadow:none!important;
}
.viewport-tools .workspace-lenses .lens-btn.active,
.workspace-lenses .lens-btn.active{
  background:#171714!important;
  color:#ffffff!important;
  border-bottom-color:#171714!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
.viewport-tools .workspace-lenses .lens-btn:hover:not(.active),
.workspace-lenses .lens-btn:hover:not(.active){
  color:#171714!important;
  background:transparent!important;
}


/* v1.3.0 — lentes operacionais e registo da sessão */
.session-nav{display:flex;align-items:center;gap:8px}.user-session-info{display:grid;grid-template-columns:auto auto;column-gap:8px;row-gap:1px;align-items:baseline;padding-right:12px;margin-right:3px;border-right:1px solid #deded8;min-width:205px}.user-session-info b{font-size:8.5px;font-weight:600;color:#171714;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-session-info span,.user-session-info small{font-size:7px;color:#85857e;white-space:nowrap}.user-session-info small{grid-column:1/-1;color:#55554f}
.lens-insight{position:absolute;left:18px;top:18px;z-index:12;width:min(520px,calc(100% - 110px));display:none;background:rgba(255,255,252,.96);border:1px solid #dcdcd5;backdrop-filter:blur(8px);box-shadow:0 8px 28px rgba(0,0,0,.055);pointer-events:auto}.lens-insight.visible{display:block}.lens-insight-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #e6e6df}.lens-insight-head span{display:block;font-size:7px;letter-spacing:.09em;color:#8d8d86}.lens-insight-head b{display:block;font-size:10px;margin-top:2px;font-weight:600}.lens-insight-head button{border:0;background:transparent;font-size:8px;color:#555;text-decoration:underline;text-underline-offset:3px}.lens-system-grid{display:grid;grid-template-columns:repeat(5,1fr)}.lens-system-grid>div{padding:10px;border-right:1px solid #ecece6}.lens-system-grid>div:last-child{border-right:0}.lens-system-grid span,.lens-process-line span{display:block;font-size:7px;color:#999}.lens-system-grid b,.lens-process-line b{display:block;font-size:11px;font-weight:600;margin:3px 0}.lens-system-grid small,.lens-process-line small{font-size:7px;color:#777;line-height:1.35}.lens-process-line{display:grid;grid-template-columns:34px 1fr 1fr 34px;align-items:stretch}.lens-process-line>div{padding:11px;border-right:1px solid #ecece6}.lens-process-line>button{border:0;background:#fafaf7;font-size:20px;color:#555}.lens-process-line>button:disabled{color:#ccc}.workspace-screen[data-lens="system"] #planSvg,.workspace-screen[data-lens="system"] #isoScene{filter:saturate(.25) contrast(1.04)}.workspace-screen[data-lens="process"] #planSvg,.workspace-screen[data-lens="process"] #isoScene{filter:grayscale(.72);opacity:.76}.workspace-screen[data-lens="process"] .stage-timeline{opacity:1!important;pointer-events:auto!important}
@media(max-width:1100px){.user-session-info{min-width:150px}.user-session-info small{display:none}.lens-system-grid{grid-template-columns:repeat(3,1fr)}.lens-system-grid>div:nth-child(3){border-right:0}.lens-insight{width:min(430px,calc(100% - 70px))}}

/* v1.3.1 · edição coerente em Planta e 3D */
.iso-edit-plane{fill:transparent;stroke:none;pointer-events:all}
.iso-hit-face{fill:transparent;stroke:none;pointer-events:all;cursor:pointer}
.iso-scene.move-ready .iso-hit-face{cursor:move}.iso-scene.rotate-ready .iso-hit-face{cursor:alias}.iso-scene.lock-ready .iso-hit-face{cursor:pointer}
/* wr582 · durante place-block/chassis/fixture, faces não roubam o clique (senão wr326 cancela o pending) */
.iso-scene.drawing-ready .iso-hit-face,
.iso-scene.drawing-ready .solid-face{pointer-events:none!important;cursor:crosshair}
.solid-face.preview-valid{opacity:.42;stroke:#111;stroke-dasharray:5 4}.solid-face.preview-invalid{opacity:.28;stroke:#8e3e36;stroke-dasharray:4 3}
.wire-edge.preview-valid{stroke:#111;stroke-dasharray:5 4}.wire-edge.preview-invalid{stroke:#8e3e36;stroke-dasharray:4 3}

/* v1.4.8 · Chassis Kernel estável */
.module-outline.level-0{fill:rgba(255,255,255,.7)}
.module-outline.level-1,.module-selected.level-1{fill:rgba(40,40,40,.12)}
.module-outline.level-2,.module-selected.level-2{fill:rgba(25,25,25,.2)}
.module-outline.level-3,.module-selected.level-3{fill:rgba(15,15,15,.28)}
.module-outline.level-4,.module-selected.level-4,.module-outline.level-5,.module-selected.level-5{fill:rgba(0,0,0,.36)}
.chassis-preview{fill:rgba(20,20,20,.08);stroke:#111;stroke-width:1.5;stroke-dasharray:8 5;pointer-events:none}.chassis-preview.invalid{stroke:#8a8a8a;fill:rgba(0,0,0,.025)}
.chassis-program{margin-top:0}.drawing-level-row{grid-column:1/-1;display:grid;gap:7px;padding:10px 11px;border-top:1px solid #e6e6e1;background:#fff}.drawing-level-row>span:first-child{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:#999}.drawing-level-pulldown{position:relative;display:block}.drawing-level-pulldown select{appearance:none;-webkit-appearance:none;width:100%;height:34px;border:1px solid #d9d9d4;border-radius:0;background:#fff;padding:0 32px 0 10px;font:560 10px/1 Arial,sans-serif;letter-spacing:.01em;color:#111;outline:none;cursor:pointer}.drawing-level-pulldown select:hover{border-color:#999}.drawing-level-pulldown select:focus{border-color:#111;box-shadow:inset 0 0 0 1px #111}.drawing-level-pulldown i{position:absolute;right:11px;top:50%;width:7px;height:7px;border-right:1px solid #111;border-bottom:1px solid #111;transform:translateY(-65%) rotate(45deg);pointer-events:none}.drawing-level-pulldown select:disabled{color:#aaa;background:#f7f7f5;cursor:default}.drawing-level-pulldown select:disabled+i{border-color:#aaa}
.iso-scene{contain:layout paint;touch-action:none}.iso-hit-face{pointer-events:all}

/* v1.5.5: viewport protegido durante Flyover de chassis */
.chassis-placement-lock #zoomIn,.chassis-placement-lock #zoomOut,.chassis-placement-lock #resetView{opacity:.34;cursor:not-allowed;pointer-events:none}
.chassis-placement-lock .plan-svg.pan-active,.chassis-placement-lock .plan-svg.panning{cursor:grabbing}

/* v1.5.8 active-floor stage control */
#planSvg .module-outline,#planSvg .module-selected,#planSvg .block-shape,#planSvg .wall-body{transition:stroke .12s ease,fill .12s ease,opacity .12s ease}
.solid-face.upper-locked,.wire-edge.upper-locked{opacity:.18;pointer-events:none}
.solid-face.lower-context,.wire-edge.lower-context{opacity:.66;filter:brightness(.68) contrast(1.06);pointer-events:none}
#drawingLevel{background:#fff;color:#111;border:1px solid #b9b9b9;font-weight:600}
#drawingLevel:focus{border-color:#111;outline:none;box-shadow:0 0 0 1px #111}

/* v1.5.8 — contexto multi-piso em Planta. Todos os pisos permanecem visíveis; só o piso ativo recebe ações e grelha. */
#planSvg .module-outline.upper-floor-context,#planSvg .module-selected.upper-floor-context,#planSvg .block-shape.upper-floor-context,#planSvg .wall-body.upper-floor-context{opacity:.58;filter:brightness(.62) contrast(1.08);pointer-events:none}
#planSvg .module-outline.lower-floor-context,#planSvg .module-selected.lower-floor-context,#planSvg .block-shape.lower-floor-context,#planSvg .wall-body.lower-floor-context{opacity:.66;filter:brightness(.68) contrast(1.06);pointer-events:none}
#planSvg .floor-context-node,#planSvg .floor-context-label{opacity:.48;filter:brightness(.62);pointer-events:none}
#planSvg .all-floors-context{opacity:.72;filter:brightness(.72) contrast(1.04);pointer-events:none}
#planSvg .active-floor{opacity:1}


/* Sprint 13 · Location Block */
.project-start-card{max-width:780px}
.project-start-card>h1{margin-bottom:20px}
.location-block{margin:18px 0 20px;padding:18px;border:1px solid #d7d7d7;background:#fafafa;text-align:left}
.location-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.location-block-head .kicker{margin:0 0 4px}
.location-block-head h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}
.location-status{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid #c9c9c9;color:#777;font-size:12px;white-space:nowrap}
.location-status.ready{border-color:#111;color:#111;background:#fff}
.location-mode{display:flex;border-bottom:1px solid #cfcfcf;margin-bottom:14px}
.location-mode button{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:#999;padding:9px 14px 8px;font:inherit;font-size:13px;cursor:pointer}
.location-mode button.active{color:#111;border-bottom-color:#111}
.location-panel{display:none}
.location-panel.active{display:block}
.location-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}
.location-grid label{margin:0;font-size:12px;color:#555}
.location-grid input,.location-grid select{width:100%;box-sizing:border-box;margin-top:5px;background:#fff}
.location-grid .span-2{grid-column:span 2}
.coordinates-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.location-preview{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:baseline;margin-top:14px;padding-top:12px;border-top:1px solid #ddd}
.location-preview span{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.08em}
.location-preview b{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.location-preview small{grid-column:1/-1;color:#888;font-size:11px}
@media(max-width:720px){.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-block-head{display:block}.location-status{margin-top:8px}}
@media(max-width:480px){.location-grid,.coordinates-grid{grid-template-columns:1fr}.location-grid .span-2{grid-column:auto}.location-preview{grid-template-columns:1fr}}

/* v1.6.1 · Location Intelligence Gateway */
.auth-card.extra-wide{width:min(1080px,95vw);max-height:92vh;overflow:auto}
.site-analysis-card{padding:36px 40px}.analysis-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line);padding-bottom:20px}.analysis-topbar h1{margin-bottom:10px}.analysis-lead{max-width:680px;margin:0;color:#777;font-size:12px;line-height:1.55}.confidence-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:5px 9px;border:1px solid #cfcfc9;background:#fff;color:#555;font-size:8px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.confidence-badge.confirmed,.confidence-badge.official{background:#171714;color:#fff;border-color:#171714}.confidence-badge.declared,.confidence-badge.interpreted,.confidence-badge.calculated{background:#e7e7e1;color:#222;border-color:#c9c9c2}.confidence-badge.pending{background:#f5f2e8;color:#765f31;border-color:#d9ceb1}.confidence-badge.missing{background:#f5ecea;color:#8a4b43;border-color:#ddc3be}.analysis-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-right:0;margin:22px 0}.analysis-summary-grid section{padding:16px 14px;border-right:1px solid var(--line);min-height:112px;background:#fff}.analysis-summary-grid section:last-child{grid-column:1/-1;border-top:1px solid var(--line)}.analysis-summary-grid span,.section-title>span{display:block;font-size:8px;letter-spacing:.11em;color:#8b8b84}.analysis-summary-grid b{display:block;font-size:12px;line-height:1.35;margin:10px 0 6px}.analysis-summary-grid small{font-size:9px;color:#888;line-height:1.45}.confidence-panel,.consultation-panel{border-top:1px solid var(--line);padding:19px 0}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:13px}.section-title small{font-size:9px;color:#999}.confidence-rows{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.confidence-rows>div{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line)}.confidence-rows>div:nth-child(odd){border-right:1px solid var(--line)}.confidence-rows>div:nth-last-child(-n+2){border-bottom:0}.confidence-rows span{font-size:10px}.confidence-rows small{font-size:8px;color:#92928b}.confidence-rows b{grid-column:2;grid-row:1/3}.consultation-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.consultation-modes button{border:1px solid var(--line);background:#fff;padding:14px;text-align:left;cursor:pointer;min-height:82px}.consultation-modes button.active{background:#171714;color:#fff;border-color:#171714}.consultation-modes b,.consultation-modes small{display:block}.consultation-modes b{font-size:10px}.consultation-modes small{font-size:8px;line-height:1.5;margin-top:7px;color:#888}.consultation-modes button.active small{color:#cfcfca}.consultation-description{display:grid;grid-template-columns:180px 1fr;gap:18px;background:#f2f2ee;padding:13px 14px;margin-top:10px}.consultation-description b{font-size:10px}.consultation-description span{font-size:9px;color:#666;line-height:1.5}.document-actions{display:grid;grid-template-columns:1fr 120px;gap:10px;align-items:end;margin-top:14px}.document-actions label{margin:0!important}.document-actions select{width:100%;border:1px solid var(--line);background:#fff;padding:11px;font:inherit;font-size:10px}.secondary-dark{border:1px solid #171714;background:#fff;color:#171714;padding:11px;cursor:pointer}.secondary-dark:hover{background:#171714;color:#fff}.analysis-disclaimer{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:14px;border-left:3px solid #171714;background:#f7f7f3;font-size:9px;line-height:1.5}.analysis-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.analysis-footer .primary{width:auto!important;min-width:220px;margin:0!important}.site-analysis-card input,.site-analysis-card select,.project-start-card input,.project-start-card select{letter-spacing:normal!important;word-spacing:normal!important;text-transform:none!important}
@media(max-width:850px){.analysis-summary-grid{grid-template-columns:1fr 1fr}.analysis-summary-grid section{border-bottom:1px solid var(--line)}.consultation-modes{grid-template-columns:1fr}.confidence-rows{grid-template-columns:1fr}.confidence-rows>div:nth-child(odd){border-right:0}.confidence-rows>div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.confidence-rows>div:last-child{border-bottom:0}.document-actions{grid-template-columns:1fr}.analysis-topbar,.section-title{display:block}.analysis-topbar>.confidence-badge{margin-top:12px}}

/* v1.6.3 · Territorial Intelligence Layer */
.territorial-intelligence-panel{border-top:1px solid var(--line);padding:19px 0}.territorial-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-right:0}.territorial-kpis>div{padding:12px;border-right:1px solid var(--line);background:#fff}.territorial-kpis span{display:block;font-size:8px;letter-spacing:.1em;color:#888}.territorial-kpis b{display:block;margin-top:7px;font-size:11px}.territorial-columns{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:10px;margin-top:10px}.territorial-columns>section{border:1px solid var(--line);padding:13px;background:#fff}.territorial-columns h3{font-size:9px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 10px}.territorial-list{display:grid;gap:7px}.territorial-row{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;border-top:1px solid #e6e6e1;padding-top:8px}.territorial-row:first-child{border-top:0;padding-top:0}.territorial-row b,.territorial-row small{display:block}.territorial-row b{font-size:9px;line-height:1.35}.territorial-row small{font-size:8px;color:#888;line-height:1.4;margin-top:3px}.territorial-row a,.territorial-row button{grid-column:2;border:0;background:none;color:#171714;font-size:8px;text-decoration:underline;cursor:pointer;padding:0;text-align:right}.territorial-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.territorial-actions .secondary-dark{padding:9px 12px}@media(max-width:950px){.territorial-columns{grid-template-columns:1fr}.territorial-kpis{grid-template-columns:1fr 1fr}}

/* v1.6.3 Preliminary information refinements */
.system-action{border:1px solid #171714;background:#fff;color:#171714;padding:9px 13px;font-size:8px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .16s,color .16s}.system-action:hover,.system-action:focus{background:#171714;color:#fff}a.system-action{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}.system-mini-action{display:inline-flex!important;align-items:center;justify-content:center;border:1px solid #cfcfc9!important;background:#fff!important;color:#171714!important;padding:5px 8px!important;font-size:7px!important;letter-spacing:.07em;text-transform:uppercase;text-decoration:none!important;cursor:pointer}.system-mini-action:hover,.system-mini-action:focus{background:#171714!important;color:#fff!important;border-color:#171714!important}.territorial-actions .system-action{min-height:34px}.project-start-card select{width:100%;border:0;border-bottom:1px solid #bbb;background:transparent;padding:10px 0;outline:none;font-size:15px;color:var(--ink)}.project-start-card select:focus{border-color:#111}


/* Sprint 15 · Planning Rules Engine */
.planning-rules-panel{border-top:1px solid var(--line);padding:19px 0}.planning-rules-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-right:0}.planning-rules-kpis>div{padding:12px;border-right:1px solid var(--line);background:#fff}.planning-rules-kpis span{display:block;font-size:8px;letter-spacing:.1em;color:#888}.planning-rules-kpis b{display:block;margin-top:7px;font-size:13px}.planning-extractor{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-top:10px}.planning-extractor>section{border:1px solid var(--line);padding:14px;background:#fff}.planning-extractor h3{font-size:9px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 12px}.planning-extractor label{display:block;margin:0 0 11px;font-size:9px;color:#666}.planning-extractor input,.planning-extractor select,.planning-extractor textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;padding:9px;font:inherit;font-size:10px;color:#171714;letter-spacing:normal!important;word-spacing:normal!important;text-transform:none!important}.planning-extractor textarea{resize:vertical;line-height:1.5}.planning-actions{display:flex;gap:8px;justify-content:flex-end}.planning-rule-form .two{display:grid;grid-template-columns:1fr 110px;gap:8px}.planning-rule-registry{border:1px solid var(--line);margin-top:10px;background:#fff;overflow:hidden}.planning-rule-head,.planning-rule-row{display:grid;grid-template-columns:1.35fr .65fr 1.15fr .7fr .7fr .9fr;gap:8px;align-items:center;padding:9px 10px}.planning-rule-head{background:#f1f1ed;border-bottom:1px solid var(--line);font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:#777}.planning-rule-row{border-bottom:1px solid #e5e5df;font-size:9px}.planning-rule-row:last-child{border-bottom:0}.planning-rule-row b,.planning-rule-row small{display:block}.planning-rule-row small{font-size:7px;color:#888;margin-top:3px}.planning-rule-actions{display:flex;gap:4px;justify-content:flex-end}.planning-rule-actions button{border:1px solid #cfcfc9;background:#fff;padding:5px 7px;font-size:7px;cursor:pointer}.planning-rule-actions button:hover,.planning-rule-actions button.active{background:#171714;color:#fff;border-color:#171714}.planning-empty{padding:18px;text-align:center;color:#888;font-size:9px}.planning-rules-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:11px 12px;background:#f5f5f1;border-left:3px solid #171714}.planning-rules-footer span{font-size:9px;color:#666}.rule-conflict{color:#8a4b43}.rule-confirmed{color:#171714;font-weight:600}@media(max-width:950px){.planning-extractor{grid-template-columns:1fr}.planning-rules-kpis{grid-template-columns:1fr 1fr}.planning-rule-head{display:none}.planning-rule-row{grid-template-columns:1fr 1fr}.planning-rule-actions{grid-column:1/-1;justify-content:flex-start}}

/* wr122 · Índice preliminar de favorabilidade */
.favorability-index-panel{border-top:1px solid var(--line);padding:19px 0}.favorability-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-right:0}.favorability-kpis>div{padding:12px 14px;border-right:1px solid var(--line);background:#fff}.favorability-kpis span{display:block;font-size:8px;letter-spacing:.1em;color:#888}.favorability-kpis b{display:block;margin-top:7px;font-size:18px;line-height:1.2}.favorability-kpis small{display:block;margin-top:6px;font-size:8px;color:#888;line-height:1.4}.favorability-disclaimer{margin:10px 0 0;padding:11px 12px;border-left:3px solid #171714;background:#f5f5f1;font-size:9px;line-height:1.5;color:#555}.favorability-criteria{margin-top:10px;border:1px solid var(--line);background:#fff}.favorability-row{display:grid;grid-template-columns:1fr 90px auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e5e5df}.favorability-row:last-child{border-bottom:0}.favorability-row b,.favorability-row small{display:block}.favorability-row small{font-size:8px;color:#888;line-height:1.4;margin-top:3px}.favorability-row.excluded{background:#f7f7f3}.favorability-row.blocker{background:#f5ecea}.favorability-basis{display:block;margin-top:3px;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:#5a7a9a}.favorability-official{color:#171714!important}@media(max-width:850px){.favorability-kpis{grid-template-columns:1fr}.favorability-row{grid-template-columns:1fr auto}}

/* v1.7.1 · ações das Informações Preliminares alinhadas com a linguagem do sistema */
.system-action-primary{background:#171714;color:#fff;border-color:#171714}
.system-action-primary:hover,.system-action-primary:focus{background:#fff;color:#171714}
.analysis-footer .system-action{min-height:38px;padding:10px 14px}
.analysis-footer .system-action-primary{min-width:220px}
.document-actions .system-action{min-height:38px}
.consultation-panel .document-actions{grid-template-columns:minmax(0,1fr) auto}
.consultation-panel .document-download-actions,
.planning-rules-downloads{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.consultation-panel .document-download-actions .system-action{min-height:38px;white-space:nowrap}


/* Sprint 16 · Urban Validation Engine */
.urban-compliance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.urban-compliance-summary>div{border:1px solid #d8d8d8;padding:9px 10px;min-height:52px}.urban-compliance-summary span,.urban-compliance-values span{display:block;color:#6d6d6d;font-size:11px}.urban-compliance-summary b{display:block;margin-top:4px;font-size:15px}.urban-compliance-item{border-left:3px solid #aaa;border-top:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;padding:10px;margin:8px 0;background:#fff}.urban-compliance-item.urban-ok{border-left-color:#222}.urban-compliance-item.urban-warning{border-left-style:dashed}.urban-compliance-item.urban-error{border-left-width:6px;border-left-color:#111}.urban-compliance-item.urban-na{opacity:.72}.urban-compliance-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.urban-compliance-head small{display:block;text-transform:uppercase;letter-spacing:.06em;color:#888;font-size:9px}.urban-compliance-head b{font-size:13px}.urban-compliance-head em{font-style:normal;border:1px solid #bbb;padding:3px 6px;font-size:10px;white-space:nowrap}.urban-error .urban-compliance-head em{background:#111;color:#fff;border-color:#111}.urban-compliance-values{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.urban-compliance-values b{color:#222;font-size:12px}.urban-compliance-item p{margin:5px 0;font-size:11px;line-height:1.35}.urban-source{display:block;color:#777;border-top:1px dotted #ccc;padding-top:6px}.urban-suggestion{margin-top:7px;padding:7px;border:1px solid #222;font-size:11px;font-weight:600}#informationCenterStatus[data-urban="non-conforming"]{background:#111;color:#fff;padding:3px 6px}

/* Sprint 17 · Dossier Digital do Território */
.territorial-dossier-panel{border-top:1px solid #d8d8d8;padding:20px 0;margin-top:18px}
.site-analysis-busy{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(247,247,243,.62);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);pointer-events:auto}
.site-analysis-busy[hidden],.site-analysis-busy:not(.is-on){display:none!important;pointer-events:none}
.site-analysis-busy-card{display:grid;justify-items:center;gap:14px;padding:22px 28px;background:rgba(255,255,255,.92);border:1px solid #d8d8d2;box-shadow:0 8px 28px rgba(23,23,20,.08)}
.site-analysis-busy-donut{width:52px;height:52px;border-radius:50%;background:conic-gradient(from 0deg,#d9d9d3 0deg,#9a9a94 90deg,#ecece7 180deg,#6f6f6a 270deg,#d9d9d3 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));animation:site-analysis-busy-spin .85s linear infinite}
.site-analysis-busy-card p{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5c5c56;text-align:center;max-width:240px}
@keyframes site-analysis-busy-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.site-analysis-busy-donut{animation:none;opacity:.85}}

.dossier-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}
.primary-system-action{background:#111!important;color:#fff!important;border-color:#111!important}
.primary-system-action:hover{background:#2a2a2a!important}
.dossier-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#d7d7d7;border:1px solid #d7d7d7;margin:12px 0}
.dossier-kpis>div{background:#fff;padding:12px 14px;display:flex;flex-direction:column;gap:5px}
.dossier-kpis span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#777}
.dossier-kpis b{font-size:20px;font-weight:500}
.dossier-location-summary{border:1px solid #ddd;padding:12px 14px;display:flex;flex-direction:column;gap:4px;background:#fafafa}
.dossier-location-summary small{color:#666}
.dossier-filter{display:flex;gap:0;margin:14px 0;border-bottom:1px solid #d8d8d8;overflow:auto}
.dossier-filter button{border:0;border-bottom:2px solid transparent;background:transparent;padding:9px 12px;color:#888;font:inherit;white-space:nowrap;cursor:pointer}
.dossier-filter button.active{color:#111;border-bottom-color:#111}
.territorial-evidence-list{display:flex;flex-direction:column;border-top:1px solid #dedede}
.evidence-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #dedede}
.evidence-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.evidence-main b{font-size:14px;font-weight:550}
.evidence-main small,.evidence-main p{font-size:12px;color:#666;margin:0}
.evidence-type{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.evidence-meta,.evidence-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.dossier-empty{padding:24px 0;color:#777;font-size:13px}
.dossier-validation-note{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:12px 0;color:#666;font-size:12px}
.dossier-validation-note b{color:#222;font-weight:500}
@media(max-width:900px){.dossier-kpis{grid-template-columns:repeat(2,1fr)}.evidence-row{grid-template-columns:1fr}.evidence-meta,.evidence-actions{justify-content:flex-start}.dossier-validation-note{grid-template-columns:1fr}}

/* Sprint 18 · Location Resolver */
.location-mode{flex-wrap:wrap}
.location-resolver-note{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding:11px 12px;border:1px solid #deded8;background:#fff}
.location-resolver-note b{font-size:12px;font-weight:600}
.location-resolver-note span{font-size:11px;color:#777;line-height:1.45}
.parcel-upload{display:block;margin:0;font-size:12px;color:#555}
.parcel-upload input{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid #d1d1cb;background:#fff}
.parcel-summary{margin-top:10px;padding:10px 12px;border:1px solid #deded8;background:#fafaf7;font-size:11px;color:#666}


/* Sprint 19 · Geocoding Connector */
.geocoding-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.geocoding-actions .system-action{min-height:38px}.geocode-status{font-size:11px;color:#777}.geocode-status[data-state="success"],.geocode-status[data-state="ready"]{color:#111;font-weight:600}.geocode-status[data-state="error"]{color:#111;text-decoration:underline}.geocode-results{margin-top:10px;border-top:1px solid #d8d8d2}.geocode-result{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;text-align:left;padding:11px 0;border:0;border-bottom:1px solid #d8d8d2;background:transparent;color:#111;cursor:pointer;font:inherit}.geocode-result b{font-size:12px;font-weight:550}.geocode-result small{font-size:10px;color:#777}.geocode-result span{grid-column:2;grid-row:1/3;align-self:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #111}.geocode-result:hover b{text-decoration:underline}.geocode-empty{padding:12px 0;color:#777;font-size:11px}

/* Sprint 24 · Painel de Inteligência Territorial */
.territorial-intelligence-hub{padding-top:24px}
.territorial-hub-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);margin:14px 0 0;background:#fff}
.territorial-hub-tabs button{min-height:42px;border:0;border-right:1px solid var(--line);background:#fff;padding:9px 6px;font:inherit;font-size:8px;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;color:#666}
.territorial-hub-tabs button:last-child{border-right:0}.territorial-hub-tabs button:hover{background:#f3f3ef;color:#111}.territorial-hub-tabs button.active{background:#171714;color:#fff}
.territorial-hub-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-top:0;background:#f7f7f3}
.territorial-hub-context>div{padding:12px;border-right:1px solid var(--line)}.territorial-hub-context>div:last-child{border-right:0}.territorial-hub-context span{display:block;font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#888}.territorial-hub-context b{display:block;margin-top:6px;font-size:10px;line-height:1.35}.territorial-hub-context small{display:block;margin-top:4px;font-size:8px;color:#777;line-height:1.45}
.evidence-row.is-highlighted{background:#f7f7f3;padding-left:10px;padding-right:10px}.evidence-type{letter-spacing:.07em;text-transform:uppercase}
@media(max-width:1050px){.territorial-hub-tabs{grid-template-columns:repeat(4,1fr)}.territorial-hub-tabs button:nth-child(4){border-right:0}.territorial-hub-tabs button:nth-child(-n+4){border-bottom:1px solid var(--line)}.territorial-hub-context{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.territorial-hub-tabs{grid-template-columns:1fr 1fr}.territorial-hub-tabs button{border-bottom:1px solid var(--line)}.territorial-hub-context{grid-template-columns:1fr}.territorial-hub-context>div{border-right:0;border-bottom:1px solid var(--line)}}

/* Sprint 26 · TheNorma platform separation */
.platform-switch{display:flex;gap:2px;padding:2px;border:1px solid #c9c9c9;background:#f4f4f4;align-items:stretch}
.platform-choice{min-width:78px;border:0;background:transparent;padding:6px 10px;text-align:left;cursor:pointer;color:#555}
.platform-choice b,.platform-choice small{display:block}.platform-choice b{font-size:11px;letter-spacing:.04em}.platform-choice small{font-size:9px;margin-top:2px}
.platform-choice.active{background:#111;color:#fff}.platform-choice.is-locked{opacity:.38;cursor:not-allowed}
#workspace[data-platform="build"] .platform-switch{box-shadow:inset 0 -2px 0 #111}
#workspace[data-platform="twin"] .platform-switch{box-shadow:inset 0 -2px 0 #555}

/* Sprint 27 · Spatial origin and coordinate systems */
.tn-origin-triad{pointer-events:none}
.tn-axis{fill:none;stroke-width:.85;stroke-linecap:round;vector-effect:non-scaling-stroke}
.tn-axis-x{stroke:#4f4f4f}
.tn-axis-y{stroke:#777}
.tn-axis-z{stroke:#9a9a9a}
.tn-axis-label{font:500 10px/1 Arial,sans-serif;letter-spacing:.04em;fill:#6f6f6f;stroke:none}
.tn-axis-label-x{fill:#4f4f4f}
.tn-axis-label-y{fill:#777}
.tn-axis-label-z{fill:#9a9a9a}


/* v1.28.1 · Volumetria Técnica */
.view-icon.volume:before{content:"";position:absolute;left:2px;top:3px;width:9px;height:8px;border:1px solid currentColor;transform:skewY(-18deg)}
.view-icon.volume:after{content:"";position:absolute;left:5px;top:1px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:skewY(18deg)}
.iso-scene.volumetric-mode{background:linear-gradient(180deg,#f7f7f5 0%,#ecece8 100%)}
.iso-scene.volumetric-mode .iso-edit-plane{fill:rgba(255,255,255,.28);stroke:#d7d7d1;stroke-width:.65}
.iso-scene.volumetric-mode .solid-face.volumetric-face{fill:#cfcfca;fill-opacity:1;stroke:#8c8c86;stroke-width:.45;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px rgba(0,0,0,.07))}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-0{fill:#d6d6d1}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-1{fill:#eeeeeb}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-2{fill:#c7c7c1}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-3{fill:#bdbdb7}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-4{fill:#d1d1cc}
.iso-scene.volumetric-mode .solid-face.volumetric-face.face-5{fill:#b7b7b1}
.iso-scene.volumetric-mode .solid-face.wall3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.interior3d.volumetric-face{fill:#d8d8d3;fill-opacity:1}
.iso-scene.volumetric-mode .solid-face.exterior3d.volumetric-face,
.iso-scene.volumetric-mode .solid-face.closure3d.volumetric-face{fill:#c9c9c3;fill-opacity:1}
.iso-scene.volumetric-mode .solid-face.roof3d.volumetric-face{fill:#bcbcb6;fill-opacity:1}
.iso-scene.volumetric-mode .solid-face.floor3d.volumetric-face{fill:#d3d3ce;fill-opacity:1}
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face{fill:#e2e2de;fill-opacity:.82}
.iso-scene.volumetric-mode .solid-face.selected{fill:#a9a9a3!important;stroke:#333!important;stroke-width:.8}
.iso-scene.volumetric-mode .wire-edge{stroke:#555550;stroke-width:.72;opacity:.86}



/* v1.28.2 · Vidro transparente na Vista Volume */
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face{fill:#dfe3e2;fill-opacity:.24;stroke:#767b79;stroke-width:.48}
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-1{fill:#eef2f1;fill-opacity:.30}
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-0,
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-2,
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-3,
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-4,
.iso-scene.volumetric-mode .solid-face.window3d.volumetric-face.glass-face.face-5{fill:#d9dfdd;fill-opacity:.18}
.iso-scene.volumetric-mode .wire-edge.window3d{stroke:#555a58;stroke-width:.72;opacity:.92}
.iso-scene.volumetric-mode .solid-face.window3d.selected{fill:#c8cdcb!important;fill-opacity:.42!important;stroke:#2f3432!important}

/* v1.28.4 · Responsive Viewport
   Adapts the existing interface to the live browser viewport without
   removing, renaming or reordering application content. */
html,body,#app{
  width:100%;
  max-width:100%;
  min-width:0;
  height:100%;
  min-height:0;
  overflow:hidden;
}
body{min-height:100dvh}
.screen{
  width:100%;
  max-width:100vw;
  min-width:0;
  height:100%;
  min-height:0;
}
.splash,.auth{
  overflow:auto;
  padding:clamp(12px,3vw,36px);
}
.auth-card,.auth-card.wide,.auth-card.extra-wide{
  max-width:100%;
  max-height:calc(100dvh - 24px);
  overflow:auto;
}
.workspace-screen.active{
  width:100%;
  max-width:100vw;
  height:100dvh!important;
  min-height:0!important;
  grid-template-rows:clamp(52px,7dvh,68px) minmax(0,1fr)!important;
  overflow:hidden;
}
/* wr541 · faixa próximo passo sob o header (01–08 intacto) */
.workspace-screen.active.workspace-next-step-open{
  grid-template-rows:clamp(52px,7dvh,68px) auto minmax(0,1fr)!important;
}
/* wr607 · ponte Sítio OK (pode coexistir com next-step em fases teóricas) */
.workspace-screen.active.site-ok-bridge-open:not(.workspace-next-step-open){
  grid-template-rows:clamp(52px,7dvh,68px) auto minmax(0,1fr)!important;
}
.workspace-screen.active.workspace-next-step-open.site-ok-bridge-open{
  grid-template-rows:clamp(52px,7dvh,68px) auto auto minmax(0,1fr)!important;
}
/* wr628 · Dossier way sozinho (Percurso silenciado) */
.workspace-screen.active.dossier-way-bridge-open:not(.workspace-next-step-open):not(.site-ok-bridge-open){
  grid-template-rows:clamp(52px,7dvh,68px) auto minmax(0,1fr)!important;
}
/* fallback raro (ex. handoff Gate/Modo B + Dossier) */
.workspace-screen.active.workspace-next-step-open.dossier-way-bridge-open{
  grid-template-rows:clamp(52px,7dvh,68px) auto auto minmax(0,1fr)!important;
}
.site-ok-draw-bridge{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:0 clamp(8px,1.6vw,20px);
  padding:8px 12px;
  border:1px solid var(--line);
  border-top:0;
  background:#f7f8f5;
  min-width:0;
}
.site-ok-draw-bridge[hidden]{display:none!important}
.site-ok-draw-bridge-copy{min-width:0}
.site-ok-draw-bridge-copy>span{
  display:block;
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#5f7f62;
}
.site-ok-draw-bridge-copy>b{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:650;
  color:#171714;
  line-height:1.35;
}
.site-ok-draw-bridge-copy>small{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:#777;
  line-height:1.35;
}
.site-ok-draw-bridge-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}
.site-ok-draw-bridge-actions .system-action{min-height:36px}
@media(max-width:900px){
  .site-ok-draw-bridge{grid-template-columns:1fr}
  .site-ok-draw-bridge-actions{justify-content:stretch}
  .site-ok-draw-bridge-actions .system-action{width:100%}
}
/* wr609 · N5 · wayfinding Dossier tipológico */
.dossier-way-bridge{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:0 clamp(8px,1.6vw,20px);
  padding:8px 12px;
  border:1px solid var(--line);
  border-top:0;
  background:#f7f6f3;
  min-width:0;
}
.dossier-way-bridge[hidden]{display:none!important}
.dossier-way-bridge-copy{min-width:0}
.dossier-way-bridge-copy>span{
  display:block;
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#6a5a3a;
}
.dossier-way-bridge-copy>b{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:650;
  color:#171714;
  line-height:1.35;
}
.dossier-way-bridge-copy>small{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:#777;
  line-height:1.35;
}
.dossier-way-bridge-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}
.dossier-way-bridge-actions .system-action{min-height:36px}
@media(max-width:900px){
  .dossier-way-bridge{grid-template-columns:1fr}
  .dossier-way-bridge-actions{justify-content:stretch}
  .dossier-way-bridge-actions .system-action{width:100%}
}
.workspace-next-step{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:0 clamp(8px,1.6vw,20px);
  padding:8px 12px;
  border:1px solid var(--line);
  border-top:0;
  background:#fff;
  min-width:0;
}
.workspace-next-step[hidden]{display:none!important}
.workspace-next-step-copy{min-width:0}
.workspace-next-step-copy span{
  display:block;
  font-size:8px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.workspace-next-step-copy b{
  display:block;
  margin-top:2px;
  font-size:12px;
  font-weight:650;
  color:#171714;
  line-height:1.35;
}
.workspace-next-step-copy small{
  display:block;
  margin-top:2px;
  font-size:9px;
  color:var(--muted);
  line-height:1.4;
}
.workspace-next-step-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;justify-content:flex-end}
.workspace-next-step .system-action{min-height:34px;white-space:nowrap}
.ws-guide-toggle{display:inline-flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#171714;cursor:pointer;user-select:none;white-space:nowrap}
.ws-guide-toggle input{width:13px;height:13px;accent-color:#171714}
.workspace-next-step[data-mode="fogo-beta"] .workspace-next-step-copy b{color:#8a4b2f}
.workspace-next-step[data-mode="real-project"] .workspace-next-step-copy b{color:#2f5d4a}
.workspace-next-step[data-e2e="1"]{border-color:rgba(47,93,74,.35)}
/* wr542 · guiado: esconde só competidores marcados · 01–08 e títulos CI ficam */
.workspace-screen.workspace-guided [data-ws-guided-competitor]{display:none!important}
.workspace-screen.workspace-guided .info-pulldown.is-guided-dim:not(.open){
  opacity:.52;
}
.workspace-screen.workspace-guided .info-pulldown.is-guided-relevant>.info-pulldown-toggle{
  color:#171714;
}
/* wr608 · N4 · IC estreito: secções fora do foco ocultas (browse revela) */
.workspace-screen.workspace-guided .info-pulldown.is-guided-hidden{
  display:none!important;
}
.workspace-screen.workspace-guided.ic-guided-browse .info-pulldown.is-guided-dim:not(.open){
  opacity:.62;
}
.ic-guided-focus{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin:0 0 8px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-left:3px solid #171714;
  background:#f7f7f3;
  min-width:0;
}
.ic-guided-focus[hidden]{display:none!important}
.ic-guided-focus-copy{min-width:0}
.ic-guided-focus-copy>span{
  display:block;
  font-size:8px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#888;
}
.ic-guided-focus-copy>b{
  display:block;
  margin-top:3px;
  font-size:12px;
  font-weight:650;
  color:#171714;
  line-height:1.35;
}
.ic-guided-focus-copy>small{
  display:block;
  margin-top:3px;
  font-size:10px;
  color:#666;
  line-height:1.4;
}
.ic-guided-focus-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:stretch;
}
.ic-guided-focus-actions .system-action{min-height:34px;white-space:nowrap}
.workspace-screen.workspace-guided .information-center-advice .eyebrow{
  letter-spacing:.1em;
}
@media(max-width:1100px){
  .ic-guided-focus{grid-template-columns:1fr}
}
.workspace-screen.workspace-guided .workflow-nav,
.workspace-screen.workspace-guided .workflow-nav .stage{
  /* mapa de domínios sempre legível */
  opacity:1!important;
}
@media(max-width:900px){
  .workspace-next-step{grid-template-columns:1fr}
  .workspace-next-step-actions{justify-content:stretch}
  .workspace-next-step .system-action{width:100%}
}
.workspace-screen header{
  width:100%;
  min-width:0;
  height:auto!important;
  min-height:0;
  padding-inline:clamp(8px,1.6vw,22px);
  grid-template-columns:minmax(108px,clamp(120px,14vw,220px)) minmax(0,1fr) max-content;
  gap:clamp(6px,1.2vw,20px);
  overflow:hidden;
}
.workspace-screen .brand{min-width:0;gap:clamp(8px,1.2vw,20px)}
.workspace-screen .brand img{width:clamp(92px,9vw,112px);max-width:100%}
.workflow-nav{
  min-width:0;
  max-width:100%;
  justify-content:flex-start;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.workflow-nav::-webkit-scrollbar{display:block;height:3px}
.workflow-nav .stage{flex:0 0 auto;padding-inline:clamp(6px,.8vw,14px)}
.workspace-screen header .session-nav{
  min-width:max-content;
  max-width:none;
  overflow:visible;
  justify-content:flex-end;
}
.workspace-screen header .session-nav>*{flex:0 0 auto}
.user-session-info{min-width:max-content}
.workspace-grid{
  width:auto;
  max-width:none;
  min-width:0;
  height:auto!important;
  min-height:0;
  align-self:stretch;
  margin:clamp(6px,1.2vw,14px) clamp(8px,1.6vw,20px) clamp(8px,1.6vw,20px);
  grid-template-columns:clamp(190px,18vw,236px) minmax(0,1fr) clamp(230px,21vw,278px)!important;
  overflow:hidden;
}
.workspace-grid>.left,
.workspace-grid>main,
.workspace-grid>.right{
  min-width:0;
  min-height:0;
}
.workspace-grid>.left,
.workspace-grid>.right{
  display:block!important;
  overflow:auto;
  overscroll-behavior:contain;
}
.workspace-grid>.right.information-center{display:flex!important;min-width:0}
.workspace-grid main{
  width:100%;
  overflow:hidden;
  grid-template-rows:clamp(42px,6dvh,50px) minmax(120px,1fr) clamp(92px,17dvh,154px) clamp(52px,9dvh,74px)!important;
}
.viewbar{
  width:100%;
  min-width:0;
  height:auto!important;
  min-height:0;
  gap:clamp(8px,1vw,16px);
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.viewbar>.view-switch,
.viewbar>.platform-switch,
.viewbar>.viewport-tools{flex:0 0 auto}
.canvas{width:100%;min-width:0;min-height:0!important}
.module-library-wrap{
  min-width:0;
  min-height:0!important;
  height:auto!important;
  overflow:hidden;
}
.module-library-head{
  min-height:clamp(30px,4.2dvh,38px)!important;
  height:auto!important;
}
.module-library-head>div{min-width:0}
.module-library-strip{
  min-width:0;
  min-height:0!important;
  height:auto!important;
  grid-template-columns:repeat(8,minmax(112px,1fr))!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.library-module{
  min-width:112px!important;
  min-height:0!important;
  height:auto!important;
}
.project-summary-strip{
  min-width:0;
  min-height:0!important;
  height:auto!important;
  grid-template-columns:repeat(6,minmax(112px,1fr));
  overflow-x:auto;
  overflow-y:hidden;
}
.stage-module-strip{max-width:calc(100% - 24px)!important}
.stage-timeline:not(:empty){max-width:calc(100% - 24px)!important;overflow-x:auto}
.information-center-pulldowns{min-width:0}
.os-console{max-width:100vw;height:100dvh;max-height:100dvh}

@media(max-width:1180px){
  .workspace-screen header{
    grid-template-columns:minmax(96px,130px) minmax(0,1fr) max-content;
    gap:8px;
  }
  .workflow-nav .stage span{display:inline}
  .workspace-grid{
    grid-template-columns:clamp(176px,18vw,210px) minmax(0,1fr) clamp(218px,23vw,250px)!important;
  }
  .information-center{min-width:0}
  .information-center-tabs{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:900px){
  .workspace-screen.active{
    grid-template-rows:auto minmax(0,1fr)!important;
  }
  .workspace-screen header{
    min-height:58px;
    grid-template-columns:minmax(92px,120px) minmax(220px,1fr) max-content;
  }
  .workspace-screen header .session-nav{max-width:none;overflow:visible}
  .workspace-grid{
    grid-template-columns:clamp(168px,27vw,210px) minmax(360px,1fr)!important;
    grid-template-rows:minmax(440px,1fr) minmax(280px,auto);
    overflow:auto;
  }
  .workspace-grid>.left{grid-column:1;grid-row:1 / span 2}
  .workspace-grid>main{grid-column:2;grid-row:1;min-height:440px}
  .workspace-grid>.right{
    grid-column:2;
    grid-row:2;
    min-height:280px;
    border-top:1px solid var(--line);
    border-left:0;
  }
  .information-center-pulldowns{max-height:360px}
}

@media(max-width:620px){
  html,body,#app{overflow:auto}
  .workspace-screen.active{
    min-height:100dvh!important;
    height:auto!important;
    overflow:visible;
  }
  .workspace-screen header{
    position:sticky;
    top:0;
    z-index:40;
    grid-template-columns:minmax(84px,104px) minmax(0,1fr);
    grid-template-rows:48px 38px;
    padding-inline:8px;
  }
  .workspace-screen .brand{grid-column:1;grid-row:1}
  .workspace-screen .workflow-nav{grid-column:2;grid-row:1}
  .workspace-screen header .session-nav{
    grid-column:1 / -1;
    grid-row:2;
    max-width:none;
    width:100%;
    border-top:1px solid var(--line);
  }
  .user-session-info{min-width:150px}
  .workspace-grid{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto minmax(520px,70dvh) minmax(340px,auto);
    margin:8px;
    overflow:visible;
  }
  .workspace-grid>.left{
    grid-column:1;
    grid-row:1;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(180px,1fr));
    max-height:min(46dvh,360px);
    border-right:0;
    border-bottom:1px solid var(--line);
    overflow:auto;
  }
  .workspace-grid>.left>.project-block{grid-column:1 / -1}
  .workspace-grid>main{grid-column:1;grid-row:2;min-height:520px}
  .workspace-grid>.right{grid-column:1;grid-row:3;min-height:340px}
  .viewbar{padding-inline:8px}
  .module-library-head small{display:block}
  .project-summary-strip{grid-template-columns:repeat(6,minmax(128px,1fr))}
  .lens-insight{left:8px;right:8px;width:auto;max-width:none}
  .os-console{width:100vw}
}

@media(max-height:700px){
  .workspace-screen.active{grid-template-rows:48px minmax(0,1fr)!important}
  .workspace-screen header{min-height:48px}
  .workspace-grid{margin-top:6px;margin-bottom:6px}
  .workspace-grid main{
    grid-template-rows:40px minmax(96px,1fr) clamp(76px,17dvh,104px) 48px!important;
  }
  .module-library-head{min-height:28px!important;padding-block:3px}
  .module-library-strip{min-height:0!important}
  .library-module{padding-block:5px!important}
  .project-summary-strip>div{padding-block:6px}
  .left section,.right section,.project-block{padding:12px}
}

@media(max-width:620px) and (max-height:700px){
  .workspace-screen.active{grid-template-rows:auto minmax(0,1fr)!important}
  .workspace-screen header{min-height:86px}
}

/* v1.36.1 · Dossier técnico alinhado com a linguagem editorial NORMA */
.os-console-content{
  container-type:inline-size;
  container-name:os-console-content;
}
.os-console.dossier-active{
  background:var(--paper);
}
.os-console.dossier-active .os-console-head{
  align-items:flex-start;
  padding-block:24px 17px;
  background:rgba(255,255,255,.72);
}
.os-console.dossier-active .os-console-head>div{
  min-width:0;
}
.os-console.dossier-active .os-console-head h2{
  margin:4px 0 5px;
  color:var(--ink);
  font-size:clamp(20px,2.2vw,24px);
  font-weight:520;
  line-height:1.08;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}
.os-console.dossier-active .os-console-head p{
  max-width:48ch;
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.os-dossier,
.os-dossier *{
  min-width:0;
}
.os-dossier-kpis{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  border:1px solid var(--line);
  background:var(--line);
}
.os-dossier-kpis .os-kpi{
  min-height:76px;
  border:0;
  background:var(--white);
  padding:14px;
}
.os-dossier-kpis .os-kpi span{
  color:var(--muted);
  font-size:8px;
  line-height:1.35;
  letter-spacing:.12em;
}
.os-dossier-kpis .os-kpi b{
  margin-top:8px;
  color:var(--ink);
  font-size:20px;
  font-weight:520;
  line-height:1.05;
  overflow-wrap:anywhere;
}
.os-dossier-kpis .os-kpi b small{
  display:inline;
  color:var(--muted);
  font-size:9px;
  font-weight:500;
}
.os-dossier-section h3{
  margin-bottom:12px;
  color:#66665f;
  font-size:9px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.12em;
}
.os-dossier-list{
  border-color:var(--line);
}
.os-dossier-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(72px,max-content) max-content;
  grid-template-areas:"copy count state";
  gap:10px 14px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.os-dossier-copy{
  grid-area:copy;
  min-width:0;
}
.os-dossier-copy b,
.os-dossier-copy small{
  display:block;
  overflow-wrap:anywhere;
}
.os-dossier-copy b{
  color:var(--ink);
  font-size:10px;
  font-weight:560;
  line-height:1.35;
}
.os-dossier-copy small{
  margin-top:4px;
  color:var(--muted);
  font-size:8px;
  line-height:1.55;
}
.os-dossier-count{
  grid-area:count;
  color:#76766f;
  font-size:8px;
  line-height:1.4;
  text-align:right;
  overflow-wrap:anywhere;
}
.os-dossier-row>em{
  grid-area:state;
  justify-self:end;
  min-width:50px;
  padding:5px 7px;
  border:1px solid #cecec8;
  font-size:8px;
  font-style:normal;
  line-height:1;
  text-align:center;
  white-space:nowrap;
}
.os-dossier-row>em.ready{
  border-color:var(--ink);
  background:var(--ink);
  color:var(--white);
}
.os-dossier-row>em.conditioned{
  border-color:#d8d8d1;
  background:var(--soft);
  color:#5f5f58;
}
.os-dossier-actions{
  justify-content:flex-start;
  padding-top:2px;
}
.os-dossier-actions button{
  min-height:36px;
  padding-inline:16px;
  font-size:9px;
  letter-spacing:.02em;
}
@container os-console-content (max-width:430px){
  .os-dossier-kpis{
    grid-template-columns:1fr;
  }
  .os-dossier-kpis .os-kpi{
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:12px;
  }
  .os-dossier-kpis .os-kpi b{
    margin-top:0;
    text-align:right;
  }
  .os-dossier-row{
    grid-template-columns:minmax(0,1fr) max-content;
    grid-template-areas:
      "copy state"
      "count count";
    align-items:start;
  }
  .os-dossier-count{
    text-align:left;
  }
}
@container os-console-content (max-width:290px){
  .os-dossier-row{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "count"
      "state";
  }
  .os-dossier-row>em{
    justify-self:start;
  }
  .os-dossier-actions button{
    width:100%;
  }
}
@media(max-width:620px){
  .os-console.dossier-active .os-console-head{
    gap:14px;
    padding:20px 18px 15px;
  }
  .os-dossier-kpis{
    grid-template-columns:1fr;
  }
  .os-dossier-kpis .os-kpi{
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:12px;
  }
  .os-dossier-kpis .os-kpi b{
    margin-top:0;
    text-align:right;
  }
  .os-dossier-row{
    grid-template-columns:minmax(0,1fr) max-content;
    grid-template-areas:
      "copy state"
      "count count";
    align-items:start;
  }
  .os-dossier-count{
    text-align:left;
  }
}

/* v1.29.0 · Canonical Project Core & Space Foundation */
.space-boundary{fill:rgba(43,87,72,.08);stroke:#2b5748;stroke-width:1.5;stroke-dasharray:7 5;pointer-events:none;vector-effect:non-scaling-stroke}
.space-boundary.confirmed{fill:rgba(43,87,72,.12);stroke-dasharray:none}
.space-boundary.invalid{fill:rgba(142,62,54,.07);stroke:#8e3e36;stroke-dasharray:3 4}
.space-boundary.selected{stroke-width:2.5;fill:rgba(43,87,72,.16)}
.space-boundary.floor-context{opacity:.32}
.space-label{fill:#173b30;font-size:11px;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.space-label.proposed{font-style:italic}.space-label.invalid{fill:#8e3e36}.space-label.archived{display:none}
.space-core-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:10px}
.space-core-summary>div{display:flex;min-width:0;flex-direction:column;gap:3px;background:var(--paper);padding:9px}
.space-core-summary span{color:var(--muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.space-core-summary b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.space-foundation-note{display:flex;flex-direction:column;gap:4px;padding:10px;border-left:2px solid #2b5748;background:rgba(43,87,72,.06)}
.space-foundation-note b{font-size:11px}.space-foundation-note span{color:var(--muted);font-size:10px;line-height:1.45}
.space-actionbar{display:flex;margin:10px 0}.space-actionbar button{width:100%}
.space-primary-action,.space-register-actions button{appearance:none;border:1px solid #171714;background:transparent;color:#171714;padding:8px 10px;font:700 10px/1 inherit;cursor:pointer}
.space-primary-action{background:#171714;color:#fff}.space-primary-action:disabled{border-color:var(--line);background:var(--line);color:var(--muted);cursor:not-allowed}
.space-register{display:grid;gap:8px}.space-register-item{border:1px solid var(--line);background:var(--paper)}
.space-register-item.selected{border-color:#2b5748;box-shadow:inset 3px 0 0 #2b5748}.space-register-item.invalid{border-color:rgba(142,62,54,.45)}.space-register-item.archived{opacity:.58}
.space-select{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:10px;text-align:left;cursor:pointer}
.space-select span{display:flex;min-width:0;flex-direction:column;gap:2px}.space-select small{color:var(--muted);font-size:9px;letter-spacing:.08em}.space-select b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.space-select em{font-size:9px;font-style:normal;text-transform:uppercase}
.space-register-meta{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:7px 10px;color:var(--muted);font-size:9px}
.space-register-actions{display:flex;gap:6px;padding:0 10px 10px}.space-register-actions button{flex:1;padding:6px}
@media(max-width:620px){.space-core-summary{grid-template-columns:repeat(4,minmax(100px,1fr));overflow-x:auto}.space-register-actions button{min-height:36px}}

/* v1.29.1 · Spatial Detection Engine */
.space-boundary.detected{fill:rgba(42,96,128,.1);stroke:#2a6080;stroke-dasharray:5 4}
.space-label.detected{fill:#234f69}
.space-foundation-note.operational{border-left-color:#2a6080;background:rgba(42,96,128,.065)}
.space-actionbar{gap:6px}.space-actionbar button{appearance:none;flex:1;width:auto;min-height:34px;border:1px solid #171714;background:transparent;color:#171714;padding:8px 10px;font:700 10px/1 inherit;cursor:pointer}
.space-actionbar button:disabled{border-color:var(--line);background:var(--line);color:var(--muted);cursor:not-allowed}
.space-register-item.detected{border-color:rgba(42,96,128,.45)}
.space-register-item.detected .space-select em{color:#2a6080}
.space-detection-run{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);background:var(--paper)}
.space-detection-run span{color:var(--muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.space-detection-run b{font-size:10px;text-transform:uppercase}.space-detection-run small{grid-column:1 / -1;color:var(--muted);font-size:9px}
.space-diagnostics{display:grid;gap:5px;margin:0 0 10px}.space-diagnostics h4{margin:0 0 2px;font-size:10px;text-transform:uppercase}
.space-diagnostic{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;padding:7px 8px;border-left:2px solid #2a6080;background:rgba(42,96,128,.05)}
.space-diagnostic.warning{border-left-color:#aa6d16;background:rgba(170,109,22,.07)}.space-diagnostic.error{border-left-color:#8e3e36;background:rgba(142,62,54,.07)}
.space-diagnostic span{font-size:8px;letter-spacing:.08em;text-transform:uppercase}.space-diagnostic b{font-size:9px}.space-diagnostic small{grid-column:1 / -1;color:var(--muted);font-size:9px;line-height:1.35}
@media(max-width:620px){.space-actionbar{flex-direction:column}.space-actionbar button{min-height:38px}}

/* v1.29.2 · Spatial Workflow & Area Schedule */
.space-editor{display:grid;gap:9px;margin:12px 0;padding:11px;border:1px solid #2b5748;background:rgba(43,87,72,.035)}
.space-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.space-editor-head span{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.space-editor-head b{font-size:10px}
.space-editor label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em}
.space-editor input,.space-editor select{width:100%;min-width:0;height:34px;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);padding:6px 8px;font:500 11px/1.2 inherit}
.space-editor input:focus,.space-editor select:focus{border-color:#2b5748;outline:2px solid rgba(43,87,72,.12);outline-offset:0}
.space-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.space-editor .space-check{display:flex;min-height:34px;align-items:center;gap:7px;padding:6px 8px;border:1px solid var(--line);background:var(--paper);font-size:9px;letter-spacing:0}
.space-editor .space-check input{width:15px;height:15px;margin:0;accent-color:#2b5748}
.space-editor-save{min-height:35px;border:1px solid #171714;background:#171714;color:#fff;padding:8px 10px;font:700 10px/1 inherit;cursor:pointer}
.area-schedule{display:grid;gap:8px;margin:12px 0 2px;padding-top:11px;border-top:1px solid var(--line)}
.area-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.area-schedule-head>div:first-child{display:grid;gap:3px}.area-schedule-head span{color:var(--muted);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.area-schedule-head b{font-size:11px}
.area-schedule-head>div:last-child{display:flex;gap:5px}.area-schedule-head button{min-width:44px;border:1px solid #171714;background:transparent;padding:6px 8px;font:700 9px/1 inherit;cursor:pointer}.area-schedule-head button:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}
.area-schedule-table{max-width:100%;overflow:auto;border:1px solid var(--line);scrollbar-width:thin}
.area-schedule table{width:100%;min-width:610px;border-collapse:collapse;background:var(--paper);font-size:9px}
.area-schedule th,.area-schedule td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.area-schedule th{background:rgba(0,0,0,.035);color:var(--muted);font-size:8px;letter-spacing:.07em;text-transform:uppercase}.area-schedule tbody tr:last-child td{border-bottom:0}
.area-requirement{display:inline-flex;padding:3px 5px;border:1px solid var(--line);font-size:8px;text-transform:uppercase}.area-requirement.satisfied{border-color:rgba(43,87,72,.45);color:#2b5748}.area-requirement.violated{border-color:rgba(142,62,54,.45);color:#8e3e36}
@media(max-width:620px){.space-editor-grid{grid-template-columns:minmax(0,1fr)}.area-schedule-head{align-items:flex-start;flex-direction:column}.area-schedule-head>div:last-child{width:100%}.area-schedule-head button{flex:1;min-height:36px}}

/* v1.30.0 · Library Technical Completion */
.technical-space-editor,.technical-variant-editor,.technical-furniture,.technical-catalog-preview{margin-top:12px}
.technical-furniture,.technical-catalog-preview{border:1px solid var(--line);padding:11px;background:var(--paper)}
.technical-inline-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:9px 0}
.technical-inline-action select{width:100%;min-width:0;height:34px;border:1px solid var(--line);background:var(--paper);padding:6px 8px;font:500 10px/1.2 inherit}
.technical-inline-action button{min-height:34px;border:1px solid #171714;background:#171714;color:#fff;padding:7px 10px;font:700 9px/1 inherit;cursor:pointer}
.technical-composition .info-row{padding-block:7px;border-top:1px solid var(--line)}
.technical-composition .info-row:first-of-type{margin-top:8px}
.technical-catalog-preview h4{margin:0 0 8px;font-size:10px;text-transform:uppercase}
.technical-catalog-preview small{display:block;margin-top:9px;color:var(--muted);font-size:9px}
.technical-furniture .system-mini-action{flex:0 0 auto}
@media(max-width:620px){.technical-inline-action{grid-template-columns:minmax(0,1fr)}.technical-inline-action button{width:100%;min-height:38px}}

/* v1.31.0 · Building Systems */
.system-route{fill:none;stroke:#555;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;vector-effect:non-scaling-stroke}.system-route.electrical{stroke:#4656a6}.system-route.water{stroke:#1680a2}.system-route.drainage{stroke:#8a5a32}.system-route.selected{stroke-width:3}.system-route.conflict{stroke:#a43f36;stroke-dasharray:7 4}
/* Percursos = só stroke (polyline preenchida virava trapézio). Fill fica em equipamentos/terminais. */
.system-route.mep-net-wtr-hot{stroke:#e11d2e;fill:none}.system-equipment.mep-net-wtr-hot,.system-terminal.mep-net-wtr-hot{stroke:#e11d2e;fill:#e11d2e}
.system-route.mep-net-wtr-cold{stroke:#1d6fe1;fill:none}.system-equipment.mep-net-wtr-cold,.system-terminal.mep-net-wtr-cold{stroke:#1d6fe1;fill:#1d6fe1}
.system-route.mep-net-drn-waste{stroke:#6b7280;fill:none}.system-equipment.mep-net-drn-waste,.system-terminal.mep-net-drn-waste{stroke:#6b7280;fill:#6b7280}
.system-route.mep-net-drn-rain{stroke:#0e7490;fill:none;stroke-dasharray:4 3}.system-equipment.mep-net-drn-rain,.system-terminal.mep-net-drn-rain{stroke:#0e7490;fill:#0e7490}
.system-route.mep-net-el-lv{stroke:#16a34a;fill:none}.system-equipment.mep-net-el-lv,.system-terminal.mep-net-el-lv{stroke:#16a34a;fill:#16a34a}
.system-route.mep-net-el-data{stroke:#eab308;fill:none;stroke-dasharray:4 3}.system-equipment.mep-net-el-data,.system-terminal.mep-net-el-data{stroke:#eab308;fill:#eab308}
.system-route.mep-net-avac-supply{stroke:#0284c7;fill:none}.system-equipment.mep-net-avac-supply,.system-terminal.mep-net-avac-supply{stroke:#0284c7;fill:#0284c7}
.system-route.mep-net-avac-extract{stroke:#7c3aed;fill:none;stroke-dasharray:4 3}.system-equipment.mep-net-avac-extract,.system-terminal.mep-net-avac-extract{stroke:#7c3aed;fill:#7c3aed}
.system-route.mep-net-avac-oa{stroke:#0d9488;fill:none;stroke-dasharray:2 2}.system-equipment.mep-net-avac-oa,.system-terminal.mep-net-avac-oa{stroke:#0d9488;fill:#0d9488}
.system-route.avac,.system-equipment.avac,.system-terminal.avac{stroke:#0284c7}
.system-discipline.avac{color:#0284c7}
.system-network-item.avac.selected{border-color:#0284c7;box-shadow:inset 3px 0 0 #0284c7}
.system-route.mep-xray{opacity:.95;fill:none}
.system-route.mep-under-slab{stroke-width:3.2;opacity:1}
.mep-route-dn-label{font:700 9px/1 "IBM Plex Sans",system-ui,sans-serif;letter-spacing:.02em;paint-order:stroke;stroke:#f7f7f3;stroke-width:3px;stroke-linejoin:round;pointer-events:none;user-select:none}
.system-route.stage-mep-ref,.twin-system-route3d.stage-mep-ref{opacity:.98}
.fixture-plan-symbol.stage-mep-ref .fixture-plan-body,.fixture-plan-symbol.stage-mep-ref [class^=fixture-plan-]{vector-effect:non-scaling-stroke}
.stage-visual-ref-swatch.is-line{border-radius:1px}
.mep-xray-strip{position:absolute;top:14px;left:14px;z-index:26;display:flex;flex-direction:column;gap:8px;min-width:210px;max-width:min(280px,46vw);padding:10px 12px;border:1px solid rgba(21,21,19,.16);background:rgba(255,255,252,.97);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(20,20,17,.09);font:inherit;color:#151513}
/* Mount legado desactivado (wr260) — MEP só no bloco Stage */
#canvas.stage-view-active .mep-xray-mount .mep-xray-strip{display:none!important}
#canvas.stage-view-active .stage-hud-dock .mep-xray-strip{display:flex!important;flex-direction:column!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;max-width:none!important;position:static!important;padding:0!important;min-width:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.mep-xray-strip[hidden]{display:none!important}
.mep-xray-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.mep-xray-strip-head span{letter-spacing:.08em;font-size:9px;text-transform:uppercase;opacity:.7}
.mep-xray-strip-head b{font-size:12px}
.mep-xray-strip-actions{display:flex;flex-wrap:wrap;gap:6px}
.mep-xray-strip-actions button{border:1px solid rgba(30,40,36,.22);background:#fff;padding:6px 8px;font:inherit;font-size:10px;cursor:pointer}
.mep-xray-strip-actions button[aria-pressed="true"]{background:#1f2a24;color:#f7f7f3;border-color:#1f2a24}
.mep-xray-filters{display:flex;flex-wrap:wrap;gap:6px}
.mep-xray-filter{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(30,40,36,.18);background:#fff;padding:5px 7px;font:inherit;font-size:10px;cursor:pointer}
.mep-xray-filter i{width:9px;height:9px;border-radius:50%;background:var(--mep-swatch,#555);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.mep-xray-filter.is-off{opacity:.38;text-decoration:line-through}
.mep-xray-filter:disabled{cursor:not-allowed;opacity:.45}
#canvas.mep-xray-active .chassis,#canvas.mep-xray-active .wall,#canvas.mep-xray-active .block{opacity:.42}
#canvas.mep-xray-active .solid-face.chassis3d,#canvas.mep-xray-active .solid-face.wall3d,#canvas.mep-xray-active .solid-face.interior3d,#canvas.mep-xray-active .solid-face.exterior3d{opacity:.28}
#canvas.mep-xray-active .wire-edge{opacity:.35}
.system-equipment,.system-terminal,.system-reservation{stroke-width:1.5;pointer-events:none;vector-effect:non-scaling-stroke}.system-equipment{fill:#fff;stroke:#555}.system-terminal{fill:#fff;stroke:#555}.system-equipment.electrical,.system-terminal.electrical{stroke:#4656a6}.system-equipment.water,.system-terminal.water{stroke:#1680a2}.system-equipment.drainage,.system-terminal.drainage{stroke:#8a5a32}.system-equipment.conflict,.system-terminal.conflict{fill:#a43f36;stroke:#a43f36}.system-reservation{fill:#fff;stroke:#aa6d16;transform:rotate(45deg);transform-box:fill-box;transform-origin:center}.system-reservation.confirmed{fill:#2b5748;stroke:#2b5748}
.systems-note{border-left-color:#4656a6;background:rgba(70,86,166,.06)}.system-network-form{border-color:#4656a6}.system-network-register{display:grid;gap:7px;margin:10px 0}.system-network-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--line);background:var(--paper)}.system-network-item.selected{border-color:#4656a6;box-shadow:inset 3px 0 0 #4656a6}.system-network-item.water.selected{border-color:#1680a2;box-shadow:inset 3px 0 0 #1680a2}.system-network-item.drainage.selected{border-color:#8a5a32;box-shadow:inset 3px 0 0 #8a5a32}.system-network-select{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:10px;text-align:left;cursor:pointer}.system-network-select span{display:grid;min-width:0;gap:2px}.system-network-select small{overflow:hidden;color:var(--muted);font-size:8px;letter-spacing:.07em;text-overflow:ellipsis;white-space:nowrap}.system-network-select b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.system-network-select em{font-size:9px;font-style:normal;white-space:nowrap}.system-network-item>.system-mini-action{margin-right:8px}
.system-network-detail,.system-object-register,.system-conflicts{margin:11px 0;border:1px solid var(--line);background:var(--paper);padding:10px}.system-network-detail .info-grid{margin-top:9px}.system-discipline{padding:4px 6px;border:1px solid currentColor;font-size:8px!important;text-transform:uppercase}.system-discipline.electrical{color:#4656a6}.system-discipline.water{color:#1680a2}.system-discipline.drainage{color:#8a5a32}.systems-space-context{display:grid;gap:3px;margin:10px 0;padding:8px 10px;border-left:3px solid #171714;background:#f2f2ee}.systems-space-context span{color:var(--muted);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.systems-space-context b{font-size:10px}
.system-inline-form{grid-template-columns:minmax(0,1fr) auto}.system-terminal-form{grid-template-columns:minmax(0,1fr) 84px auto}.system-inline-form input{width:100%;min-width:0;height:34px;box-sizing:border-box;border:1px solid var(--line);background:var(--paper);padding:6px 8px;font:500 10px/1.2 inherit}.system-object-register h4,.system-conflicts h4{margin:0 0 8px;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.system-object-register .info-row{padding-block:8px;border-top:1px solid var(--line)}.system-object-register .info-row:first-of-type{border-top:0}.system-object-register .info-row small{overflow-wrap:break-word;word-break:normal}.system-route-row+.system-route-row{border-top:1px solid var(--line)}.system-reservation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:0 0 9px}.system-reservation-row input{min-width:0;border:1px solid var(--line);padding:7px;font:inherit;font-size:9px}.system-reservation-row button{border:1px solid #aa6d16;background:#fff;padding:7px 8px;font:700 8px/1 inherit;cursor:pointer}.system-reservation-confirmed{display:block;margin:0 0 9px;padding:6px 8px;border-left:2px solid #2b5748;background:rgba(43,87,72,.06);color:#2b5748;font-size:8px}
.system-conflict{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;margin-top:6px;padding:7px 8px;border-left:3px solid #aa6d16;background:rgba(170,109,22,.07)}.system-conflict.error{border-left-color:#a43f36;background:rgba(164,63,54,.07)}.system-conflict span{font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.system-conflict b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.system-conflict small{grid-column:1/-1;color:var(--muted);font-size:9px;line-height:1.35}.systems-clear{margin:10px 0;padding:9px;border-left:3px solid #2b5748;background:rgba(43,87,72,.06);color:#2b5748;font-size:9px;font-weight:700}
/* wr248 · Sistemas do Edifício · tipografia IC + contenção */
#infoPanelBuildingSystems,.building-systems-panel{min-width:0;max-width:100%;overflow-x:hidden;box-sizing:border-box}
#infoPanelBuildingSystems *,.building-systems-panel *{box-sizing:border-box}
#infoPanelBuildingSystems .building-systems-panel{display:grid;gap:0;min-width:0}
#infoPanelBuildingSystems .space-editor,
#infoPanelBuildingSystems .system-network-detail,
#infoPanelBuildingSystems .system-object-register,
#infoPanelBuildingSystems .system-conflicts,
#infoPanelBuildingSystems .el-specialty-panel,
#infoPanelBuildingSystems .hid-specialty-panel,
#infoPanelBuildingSystems .avac-specialty-panel,
#infoPanelBuildingSystems .specialty-review-hub{min-width:0;max-width:100%;overflow-x:hidden;overflow-y:visible}
#infoPanelBuildingSystems .space-editor-grid,
#infoPanelBuildingSystems .system-inline-form,
#infoPanelBuildingSystems .system-terminal-form,
#infoPanelBuildingSystems .system-reservation-row,
#infoPanelBuildingSystems .technical-inline-action{grid-template-columns:minmax(0,1fr)!important}
#infoPanelBuildingSystems .system-inline-form button,
#infoPanelBuildingSystems .system-terminal-form button,
#infoPanelBuildingSystems .system-reservation-row button,
#infoPanelBuildingSystems .technical-inline-action button{width:100%}
#infoPanelBuildingSystems .system-network-item{grid-template-columns:minmax(0,1fr) auto;min-width:0}
#infoPanelBuildingSystems .system-network-select{min-width:0;overflow:hidden}
#infoPanelBuildingSystems .system-network-select span{min-width:0}
#infoPanelBuildingSystems .system-network-select small,
#infoPanelBuildingSystems .system-network-select b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#infoPanelBuildingSystems .system-network-select em{flex:0 0 auto;max-width:42%;overflow:hidden;text-overflow:ellipsis}
#infoPanelBuildingSystems .info-row{min-width:0}
#infoPanelBuildingSystems .info-row>div{min-width:0;overflow:hidden}
#infoPanelBuildingSystems .info-row b,
#infoPanelBuildingSystems .info-row small,
#infoPanelBuildingSystems .info-grid b,
#infoPanelBuildingSystems .info-grid span{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
#infoPanelBuildingSystems .info-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#infoPanelBuildingSystems .space-editor-head{min-width:0;gap:8px}
#infoPanelBuildingSystems .space-editor-head span,
#infoPanelBuildingSystems .space-editor-head b{min-width:0;overflow-wrap:anywhere}
#infoPanelBuildingSystems .system-conflict{grid-template-columns:auto minmax(0,1fr);min-width:0}
#infoPanelBuildingSystems .system-conflict b,
#infoPanelBuildingSystems .system-conflict small{overflow-wrap:anywhere;word-break:break-word}
#infoPanelBuildingSystems .system-discipline{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
#infoPanelBuildingSystems .systems-space-context b{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
#infoPanelBuildingSystems .space-core-summary b{overflow:hidden;text-overflow:ellipsis}
#infoPanelBuildingSystems label{min-width:0;display:grid;gap:4px}
#infoPanelBuildingSystems input,
#infoPanelBuildingSystems select,
#infoPanelBuildingSystems textarea{width:100%;max-width:100%;min-width:0}

@media(max-width:620px){.system-network-item{grid-template-columns:minmax(0,1fr) auto}.system-terminal-form,.system-inline-form{grid-template-columns:minmax(0,1fr)}.system-inline-form button{width:100%}.system-reservation-row{grid-template-columns:minmax(0,1fr)}.system-reservation-row button{min-height:36px}}

/* v1.32.0 · Documentation & Regulatory */
.documentation-note{border-left-color:#7a5731;background:rgba(122,87,49,.065)}
.document-set-form,.regulatory-form,.document-issue-form{border-color:#7a5731}
.space-editor textarea{width:100%;min-width:0;box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);padding:8px;font:500 11px/1.4 inherit}
.space-editor textarea:focus{border-color:#7a5731;outline:2px solid rgba(122,87,49,.12);outline-offset:0}
.document-set-register,.drawing-register,.written-register,.regulatory-matrix{display:grid;gap:7px;margin:11px 0}
.document-set-register h4,.drawing-register h4,.written-register h4,.regulatory-matrix h4{margin:0;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.document-set-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--line);background:var(--paper)}
.document-set-item.selected{border-color:#7a5731;box-shadow:inset 3px 0 0 #7a5731}
.document-set-select{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:10px;text-align:left;cursor:pointer}
.document-set-select span{display:grid;min-width:0;gap:2px}.document-set-select small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.document-set-select b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.document-set-select em{font-size:8px;font-style:normal;text-transform:uppercase;white-space:nowrap}.document-set-item>.system-mini-action{margin-right:8px}
.document-set-detail{margin:11px 0;border:1px solid var(--line);background:var(--paper);padding:10px}.document-set-detail .info-grid{margin-top:9px}
.document-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.document-actions button,.regulatory-row-actions button{min-height:32px;border:1px solid #171714;background:transparent;color:#171714;padding:7px 8px;font:700 8px/1.2 inherit;cursor:pointer}.document-actions .space-editor-save{grid-column:1/-1;background:#171714;color:#fff}.document-actions button:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}
.drawing-register,.written-register{border:1px solid var(--line);background:var(--paper);padding:10px}
.drawing-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.drawing-row:first-of-type{border-top:0}.drawing-row>div{display:grid;min-width:0;gap:2px}.drawing-row small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.drawing-row b{font-size:10px}
.drawing-row-actions{display:flex;gap:4px}
.drawing-language-note{margin:0 0 8px;font-size:8px;line-height:1.4;color:var(--muted)}
.drawing-rehearsal{margin-top:8px;border:1px solid var(--line);background:#fff;overflow:auto;max-height:240px}
.drawing-rehearsal+.drawing-rehearsal{margin-top:10px}
/* wr620 · ensaio Detail B no eixo de leitura tipológica */
.drawing-rehearsal-detail{position:relative;max-height:280px;border-color:#c5d0c6;background:#f7faf7}
.drawing-rehearsal-caption{display:block;padding:6px 8px;border-top:1px solid #dfe6e0;font-size:10px;line-height:1.35;color:#5a6a5c;background:#eef4ef}
.drawing-rehearsal svg{width:100%;height:auto;display:block}
.drawing-rehearsal.is-zoomable{cursor:zoom-in}
.industrial-doc-stage.is-zoomable{cursor:zoom-in}
.drawing-sheet-flyover{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(23,23,20,.48)}
.drawing-sheet-flyover[hidden]{display:none!important}
.drawing-sheet-flyover-card{width:min(1120px,96vw);max-height:min(92vh,900px);display:flex;flex-direction:column;background:#fff;border:1px solid #111;box-shadow:0 18px 48px rgba(0,0,0,.22)}
.drawing-sheet-flyover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.drawing-sheet-flyover-head span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.drawing-sheet-flyover-head b{display:block;margin-top:4px;font-size:15px;line-height:1.25}
.drawing-sheet-flyover-head small{display:block;margin-top:4px;font-size:10px;color:var(--muted);line-height:1.4}
.drawing-sheet-flyover-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.drawing-sheet-flyover-close{border:0;background:transparent;font-size:22px;line-height:1;color:#666;cursor:pointer;padding:2px 8px}
.drawing-sheet-flyover-stage{flex:1;min-height:0;overflow:auto;padding:12px 16px 8px;background:#fafaf7}
.drawing-sheet-flyover-stage svg{width:100%;height:auto;display:block;background:#fff;border:1px solid var(--line)}
.drawing-sheet-flyover-note{margin:0;padding:8px 16px 12px;font-size:10px;color:var(--muted)}
.written-register article{display:grid;gap:4px;padding:9px 0;border-top:1px solid var(--line)}.written-register article:first-of-type{border-top:0}.written-register article>b{font-size:10px}.written-register article>p{margin:0;color:var(--ink);font-size:9px;line-height:1.45}.written-register article>small{color:var(--muted);font-size:8px;line-height:1.4}
.regulatory-matrix{padding-top:11px;border-top:1px solid var(--line)}.regulatory-matrix-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.regulatory-matrix-head>div{display:grid;gap:3px}.regulatory-matrix-head small{color:var(--muted);font-size:8px;line-height:1.4}
.document-readiness{padding:5px 6px;border:1px solid currentColor;font-size:8px;text-transform:uppercase;white-space:nowrap}.document-readiness.ready{color:#2b5748}.document-readiness.pending{color:#aa6d16}
.regulatory-row{border:1px solid var(--line);border-left:3px solid #aa6d16;background:var(--paper);padding:10px}.regulatory-row.conforming{border-left-color:#2b5748}.regulatory-row.non-conforming{border-left-color:#a43f36}.regulatory-row.not-applicable{border-left-color:#777}
.regulatory-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.regulatory-row-head>div{display:grid;min-width:0;gap:4px}.regulatory-row-head small{color:var(--muted);font-size:8px;overflow-wrap:anywhere}.regulatory-row-head b{font-size:10px}.regulatory-row-head p{margin:0;font-size:9px;line-height:1.45}.regulatory-row-head em{font-size:8px;font-style:normal;text-transform:uppercase}
.assessment-form{display:grid;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.assessment-form label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:700}.assessment-form input,.assessment-form select,.assessment-form textarea{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);padding:7px;font:500 9px/1.35 inherit}.assessment-form input,.assessment-form select{height:31px}.assessment-form textarea{resize:vertical}.assessment-form input:focus,.assessment-form select:focus,.assessment-form textarea:focus{border-color:#7a5731;outline:2px solid rgba(122,87,49,.12)}
.regulatory-row-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.regulatory-row-actions button:first-child{background:#171714;color:#fff}
@media(max-width:620px){.document-actions,.regulatory-row-actions{grid-template-columns:minmax(0,1fr)}.document-actions button,.regulatory-row-actions button{min-height:38px}.document-set-item{grid-template-columns:minmax(0,1fr) auto}.regulatory-matrix-head{flex-direction:column}.document-readiness{align-self:flex-start}}

/* v1.33.0 · TheNorma Build */
.build-note{border-left-color:#9b542d;background:rgba(155,84,45,.065)}
.build-plan-form,.build-release-form,.build-load-form{border-color:#9b542d}
.build-plan-register,.build-bom,.build-kits,.build-logistics,.build-assembly{display:grid;gap:7px;margin:11px 0}
.build-plan-register h4,.build-section-head h4{margin:0;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.build-plan-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--line);background:var(--paper)}
.build-plan-item.selected{border-color:#9b542d;box-shadow:inset 3px 0 0 #9b542d}.build-plan-item>.system-mini-action{margin-right:8px}
.build-plan-select{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:10px;text-align:left;cursor:pointer}.build-plan-select span{display:grid;min-width:0;gap:2px}.build-plan-select small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.build-plan-select b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.build-plan-select em{font-size:8px;font-style:normal;text-transform:uppercase;white-space:nowrap}
.build-plan-detail{margin:11px 0;border:1px solid var(--line);background:var(--paper);padding:10px}.build-plan-detail .info-grid{margin-top:9px}.build-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.build-actions button,.build-inline-editor button{min-height:32px;border:1px solid #171714;background:transparent;color:#171714;padding:7px 8px;font:700 8px/1.2 inherit;cursor:pointer}.build-actions .space-editor-save{grid-column:1/-1;background:#171714;color:#fff}.build-actions button:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}
.build-readiness{padding:5px 6px;border:1px solid currentColor;font-size:8px!important;text-transform:uppercase}.build-readiness.ready{color:#2b5748}.build-readiness.pending{color:#a43f36}.build-complete-plan{width:100%;margin:0 0 11px;background:#2b5748;border-color:#2b5748}
.build-structural-gate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;margin:0 0 11px;padding:10px;border:1px solid currentColor;border-left-width:4px;background:var(--paper);color:#a43f36}.build-structural-gate.ready{color:#2b5748}.build-structural-gate>div{display:grid;gap:3px}.build-structural-gate small,.build-structural-gate span{font-size:8px}.build-structural-gate small{letter-spacing:.07em;text-transform:uppercase}.build-structural-gate b{font-size:10px}.build-structural-gate em{font-size:8px;font-style:normal;font-weight:700;text-transform:uppercase}.build-structural-gate ul{grid-column:1/-1;margin:4px 0 0;padding:8px 0 0 17px;border-top:1px solid currentColor}.build-structural-gate li{margin:3px 0;font-size:8px;line-height:1.4}
.build-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.build-section-head>div{display:grid;gap:3px}.build-section-head small{color:var(--muted);font-size:8px}
.build-bom-row,.build-kit-row,.build-load-row,.build-task-row{border:1px solid var(--line);border-left:3px solid #aa6d16;background:var(--paper);padding:10px}.build-bom-row.specified,.build-bom-row.ordered,.build-bom-row.available{border-left-color:#2b5748}.build-task-row.completed{border-left-color:#2b5748}.build-task-row.blocked{border-left-color:#a43f36}.build-kit-row{border-left-color:#9b542d}.build-load-row{border-left-color:#4656a6}
.build-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.build-row-head>div{display:grid;min-width:0;gap:3px}.build-row-head small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.build-row-head b{font-size:10px}.build-row-head em{font-size:8px;font-style:normal;text-transform:uppercase;white-space:nowrap}
.build-inline-editor{display:grid;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.build-inline-editor label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:700}.build-inline-editor input,.build-inline-editor select{width:100%;min-width:0;height:31px;box-sizing:border-box;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);padding:6px 7px;font:500 9px/1.3 inherit}.build-inline-editor select[multiple]{height:auto;min-height:60px}.build-inline-editor input:focus,.build-inline-editor select:focus{border-color:#9b542d;outline:2px solid rgba(155,84,45,.12)}.build-inline-editor button{background:#171714;color:#fff}
.build-related{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:7px 8px;background:#f2f2ee;font-size:8px}.build-related b{text-transform:uppercase}.build-logistics-unit{margin-top:8px;border-top:1px solid var(--line)}
.build-checks{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.build-checks span{padding:4px 5px;border:1px solid var(--line);font-size:7px;text-transform:uppercase}.build-checks .passed{border-color:#2b5748;color:#2b5748}.build-checks .failed{border-color:#a43f36;color:#a43f36}.build-checks .pending{border-color:#aa6d16;color:#aa6d16}
@media(max-width:620px){.build-actions{grid-template-columns:minmax(0,1fr)}.build-actions .space-editor-save{grid-column:auto}.build-actions button,.build-inline-editor button{min-height:38px}.build-plan-item{grid-template-columns:minmax(0,1fr) auto}.build-section-head{flex-direction:column}.build-structural-gate{grid-template-columns:minmax(0,1fr)}.build-structural-gate ul{grid-column:auto}}

/* v1.34.0 · Fichas de produto dos chassis */
.chassis-product-sheet{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid #1f4d45;background:rgba(31,77,69,.025)}
.product-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.product-sheet-head small{display:block;color:var(--muted);font-size:8px;letter-spacing:.09em;text-transform:uppercase}.product-sheet-head h3{margin:4px 0 3px;font-size:14px}.product-sheet-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}.product-sheet-status{flex:0 0 auto;padding:5px 7px;border:1px solid #2b5748;color:#2b5748;font-size:7px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.product-sheet-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.product-sheet-kpis>div{display:grid;min-width:0;gap:3px;background:var(--paper);padding:8px}.product-sheet-kpis span{color:var(--muted);font-size:7px;letter-spacing:.07em;text-transform:uppercase}.product-sheet-kpis b{overflow-wrap:anywhere;font-size:9px;line-height:1.35}
.product-sheet-table{max-width:100%;overflow:auto;border:1px solid var(--line);scrollbar-width:thin}.product-sheet-table table{width:100%;min-width:760px;border-collapse:collapse;background:var(--paper);font-size:8px}.product-sheet-table th,.product-sheet-table td{padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.product-sheet-table th:last-child,.product-sheet-table td:last-child{border-right:0}.product-sheet-table tbody tr:last-child td{border-bottom:0}.product-sheet-table th{background:#f2f2ee;color:var(--muted);font-size:7px;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.product-sheet-table td b,.product-sheet-table td small{display:block}.product-sheet-table td b{font-size:9px}.product-sheet-table td small{margin-top:3px;color:var(--muted);font-size:7px;line-height:1.35}.product-sheet-state{display:inline-flex;padding:3px 4px;border:1px solid #2b5748;color:#2b5748;font-size:7px;white-space:nowrap}.product-sheet-state.pending{border-color:#aa6d16;color:#8a5a15}
.product-sheet-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.product-sheet-options article{display:grid;gap:4px;padding:9px;border:1px solid var(--line);background:var(--paper)}.product-sheet-options article.selected{border-color:#2b5748;box-shadow:inset 3px 0 0 #2b5748}.product-sheet-options small{color:var(--muted);font-size:7px;text-transform:uppercase}.product-sheet-options b{font-size:13px}.product-sheet-options span{font-size:8px;line-height:1.35}
.product-sheet-details{border:1px solid var(--line);background:var(--paper)}.product-sheet-details summary{cursor:pointer;padding:9px;font-size:8px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.product-sheet-details.pending{border-left:3px solid #aa6d16}.product-sheet-details>ul,.product-sheet-detail-grid{margin:0;padding:0 10px 10px}.product-sheet-details ul{margin:0;padding-left:17px}.product-sheet-details li{margin:3px 0;color:var(--muted);font-size:8px;line-height:1.45}.product-sheet-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-sheet-detail-grid h4{margin:0 0 6px;font-size:8px;text-transform:uppercase}.product-sheet-disclaimer{margin:0;padding:8px;border-left:2px solid #777;background:#f2f2ee;color:var(--muted);font-size:8px;line-height:1.45}
@media(max-width:620px){.product-sheet-head{flex-direction:column}.product-sheet-status{align-self:flex-start}.product-sheet-options,.product-sheet-detail-grid{grid-template-columns:minmax(0,1fr)}.chassis-product-sheet{padding:9px}}

/* v1.37.0 · Ficha de produto do pavimento · conteúdo responsivo sem sobreposições */
.info-pulldown-panel{container-type:inline-size;container-name:technical-panel}
.floor-product-sheet{border-color:#4f6556;background:rgba(79,101,86,.025);overflow:hidden}
.product-sheet-status.blocked{border-color:#a43f36;color:#a43f36}
.product-sheet-state.calculated{border-color:#4656a6;color:#4656a6}
.floor-product-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.floor-stack-note{display:grid;gap:4px;padding:10px;border-left:3px solid #4656a6;background:rgba(70,86,166,.06)}
.floor-stack-note b{font-size:9px}.floor-stack-note span{font-size:9px;line-height:1.45}.floor-stack-note small{color:var(--muted);font-size:8px;line-height:1.45}
.floor-layer-table table{min-width:880px}.floor-qc-table table{min-width:620px}.floor-cost-table{margin:0 10px 10px;max-width:calc(100% - 20px)}.floor-cost-table table{min-width:1080px}
.floor-product-options{grid-template-columns:minmax(0,1fr)}.floor-product-options article b{font-size:10px}.floor-product-options article span{overflow-wrap:anywhere}
.floor-performance-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:0 10px 10px}
.floor-performance-grid article{display:grid;gap:4px;padding:9px;border:1px solid var(--line);border-left:3px solid #aa6d16;background:var(--paper)}
.floor-performance-grid small{color:var(--muted);font-size:7px;letter-spacing:.07em;text-transform:uppercase}.floor-performance-grid b{font-size:10px;line-height:1.35}.floor-performance-grid span{color:var(--muted);font-size:8px;line-height:1.45}.floor-performance-grid em{color:#8a5a15;font-size:7px;font-style:normal;text-transform:uppercase}
.floor-load-grid{margin:0 10px 10px}.floor-product-sheet ol{margin:0;padding-left:18px}.floor-product-sheet a{color:#1f4d45;font-weight:700;text-decoration:none}.floor-product-sheet a:hover{text-decoration:underline}
.floor-source-list{display:grid;gap:7px!important;padding:0 10px 10px!important;list-style:none}.floor-source-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;margin:0!important;padding:7px;border:1px solid var(--line)}.floor-source-list b{overflow-wrap:anywhere;color:var(--ink);font-size:8px}.floor-source-list small{color:var(--muted);font-size:7px;text-transform:uppercase}.floor-source-list a{grid-column:1/-1;font-size:8px}
@container technical-panel (max-width:520px){.floor-product-kpis,.floor-product-sheet .product-sheet-detail-grid{grid-template-columns:minmax(0,1fr)}.floor-product-sheet .product-sheet-head{flex-direction:column}.floor-product-sheet .product-sheet-status{align-self:flex-start}.floor-source-list li{grid-template-columns:minmax(0,1fr)}.floor-source-list a{grid-column:auto}.floor-product-sheet{padding:9px}.floor-product-sheet .product-sheet-table{max-width:calc(100cqw - 20px)}}
@container technical-panel (max-width:320px){.floor-product-sheet{padding:7px}.floor-product-sheet .product-sheet-kpis>div{padding:7px}.floor-product-sheet .product-sheet-table{max-width:calc(100cqw - 16px)}}

/* v1.35.0 · Matriz Global de Configuração Estrutural */
.structural-configuration{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid #394b63;background:rgba(57,75,99,.03)}
.structural-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.structural-config-head small{display:block;color:var(--muted);font-size:8px;letter-spacing:.09em;text-transform:uppercase}.structural-config-head h3{margin:4px 0 3px;font-size:14px}.structural-config-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}.structural-status{flex:0 0 auto;padding:5px 7px;border:1px solid currentColor;font-size:7px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.structural-status.configurable{color:#8a5a15}.structural-status.calculated{color:#4656a6}.structural-status.validated{color:#2b5748}
.structural-config-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.structural-config-kpis>div{display:grid;min-width:0;gap:3px;background:var(--paper);padding:8px}.structural-config-kpis span{color:var(--muted);font-size:7px;letter-spacing:.07em;text-transform:uppercase}.structural-config-kpis b{overflow-wrap:anywhere;font-size:9px;line-height:1.35}
.structural-pack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.structural-pack-grid article{display:grid;gap:3px;padding:8px;border:1px solid var(--line);border-left:3px solid #2b5748;background:var(--paper)}.structural-pack-grid article.pending{border-left-color:#aa6d16}.structural-pack-grid small{color:var(--muted);font-size:7px}.structural-pack-grid b{font-size:9px;line-height:1.3}.structural-pack-grid span{font-size:7px;text-transform:uppercase}
.structural-config-form{border-color:#394b63}.structural-config-form details,.structural-strategy{border:1px solid var(--line);background:var(--paper)}.structural-config-form summary,.structural-strategy summary{cursor:pointer;padding:9px;font-size:8px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.structural-form-body{display:grid;gap:8px;padding:0 9px 9px}.structural-form-body input,.structural-form-body select{box-sizing:border-box}
.structural-blockers{display:grid;border:1px solid #aa6d16;background:var(--paper);padding:10px}.structural-blockers>div:not(.space-editor-head){display:grid;gap:2px;padding:7px 0;border-bottom:1px solid var(--line)}.structural-blockers>div:last-child{border-bottom:0}.structural-blockers small{color:#8a5a15;font-size:7px}.structural-blockers b{font-size:9px;line-height:1.35}.structural-validation-form{border-color:#2b5748}.structural-strategy ul{margin:0;padding:0 25px 10px}.structural-strategy li{margin:4px 0;color:var(--muted);font-size:8px;line-height:1.45}.structural-export{width:100%}
@media(max-width:620px){.structural-config-head{flex-direction:column}.structural-status{align-self:flex-start}.structural-pack-grid,.structural-config-kpis{grid-template-columns:minmax(0,1fr)}.structural-configuration{padding:9px}}

/* v1.38.0-dev.15 · S0-I05 · NORMA Stage */
.stage-view-button{border-color:#2f5249!important}.stage-view-button.active{background:#173e36!important;color:#fff!important}.stage-view-button .view-icon{filter:saturate(.7)}
.norma-stage-active{background:radial-gradient(circle at 52% 42%,#f8f8f3 0,#ecece5 62%,#deddd4 100%)}
.norma-stage-active.stage-work-view{background:radial-gradient(circle at 50% 40%,#f7f7f2 0,#ebeae3 58%,#dddcd4 100%)}
/* wr254 · Stage HUD · barra horizontal topo-direita · tabs iguais · pull-down */
.mep-xray-mount{position:absolute;inset:0;z-index:26;pointer-events:none}
.mep-xray-mount .mep-xray-strip{pointer-events:auto}
/* wr260 · Stage HUD · 4 barras no #canvas · mount MEP legado morto */
#canvas.stage-view-active .iso-scene{contain:none!important;overflow:visible!important}
#mepXrayMount,
.mep-xray-mount{
  display:none!important;visibility:hidden!important;pointer-events:none!important
}
.stage-hud-dock{
  --stage-hud-bar-h:36px;
  --stage-hud-block-w:240px;
  position:absolute!important;left:12px!important;bottom:12px!important;top:auto!important;right:auto!important;
  z-index:80!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;
  width:var(--stage-hud-block-w)!important;min-width:var(--stage-hud-block-w)!important;max-width:min(var(--stage-hud-block-w),calc(100% - 24px))!important;
  min-height:calc(4 * var(--stage-hud-bar-h))!important;
  max-height:calc(100% - 24px)!important;overflow:visible!important;pointer-events:none;
  border:1px solid rgba(21,21,19,.16);background:rgba(255,255,252,.97);
  box-shadow:0 10px 28px rgba(20,20,17,.09);backdrop-filter:blur(12px)
}
.stage-hud-dock[hidden]{display:none!important;min-height:0!important}
.stage-hud-dock>.stage-hud-panel,
.stage-hud-dock>#stageControls,
.stage-hud-dock>#stageComponentCard,
.stage-hud-dock>#stageLegend,
.stage-hud-dock>#mepXrayStrip{
  display:flex!important;flex-direction:column!important;flex:0 0 auto!important;align-self:stretch!important;
  pointer-events:auto!important;position:static!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
  width:100%!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:var(--stage-hud-bar-h)!important;
  margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid rgba(21,21,19,.12)!important;
  border-radius:0!important;background:transparent!important;box-shadow:none!important;
  max-height:none!important;overflow:visible!important
}
.stage-hud-dock>.stage-hud-panel:last-child,
.stage-hud-dock>#stageLegend{border-bottom:0!important}
.stage-hud-toggle,
.stage-controls>.stage-hud-toggle,
.mep-xray-strip>.stage-hud-toggle,
.stage-legend>.stage-hud-toggle,
.stage-component-card>.stage-hud-toggle,
.stage-hud-dock .stage-hud-toggle{
  flex:0 0 var(--stage-hud-bar-h)!important;width:100%!important;min-width:0!important;
  min-height:var(--stage-hud-bar-h)!important;height:var(--stage-hud-bar-h)!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:8px!important;margin:0!important;padding:0 12px!important;
  border:0!important;border-radius:0!important;background:transparent!important;color:#73736d!important;
  font:inherit!important;letter-spacing:normal!important;text-transform:none!important;
  text-align:left!important;cursor:pointer;pointer-events:auto!important;box-sizing:border-box!important
}
.stage-hud-toggle span{
  flex:1;min-width:0;overflow:visible;text-overflow:clip;white-space:nowrap;
  font-size:8.5px!important;font-weight:650!important;letter-spacing:.08em!important;text-transform:uppercase!important;line-height:1.2!important
}
.stage-hud-toggle b{display:none!important}
.stage-hud-toggle i{flex:0 0 auto;font-style:normal;font-size:11px;font-weight:500;color:#96968f;line-height:1}
.stage-hud-toggle:hover{background:rgba(21,21,19,.04)!important;color:#171714!important}
.stage-hud-panel:not(.is-collapsed)>.stage-hud-toggle{
  background:#fff!important;color:#171714!important;font-weight:650!important;
  box-shadow:inset 2px 0 #171714
}
.stage-hud-panel.is-collapsed>.stage-hud-body,
.stage-hud-dock .stage-hud-panel.is-collapsed>.stage-hud-body,
.stage-hud-dock #stageControls.is-collapsed>.stage-hud-body,
.stage-hud-dock #stageComponentCard.is-collapsed>.stage-hud-body,
.stage-hud-dock #stageLegend.is-collapsed>.stage-hud-body,
.stage-hud-dock #mepXrayStrip.is-collapsed>.stage-hud-body{display:none!important}
.stage-hud-body{min-width:0;overflow:hidden}
/* Pulldown · abre sob a barra respectiva · bloco mantém-se unido */
.stage-hud-dock>.stage-hud-panel:not(.is-collapsed)>.stage-hud-body,
.stage-hud-dock>#stageControls:not(.is-collapsed)>.stage-hud-body,
.stage-hud-dock>#stageComponentCard:not(.is-collapsed)>.stage-hud-body,
.stage-hud-dock>#stageLegend:not(.is-collapsed)>.stage-hud-body,
.stage-hud-dock>#mepXrayStrip:not(.is-collapsed)>.stage-hud-body{
  position:static!important;inset:auto!important;z-index:31;flex:0 1 auto!important;
  width:100%!important;max-width:none!important;max-height:min(42vh,360px)!important;
  overflow:auto!important;scrollbar-width:thin;pointer-events:auto!important;
  margin:0!important;padding:12px!important;
  border:0!important;border-top:1px solid rgba(21,21,19,.12)!important;
  background:rgba(255,255,252,.99)!important;box-shadow:none!important
}
.stage-hud-dock>#stageControls:not(.is-collapsed)>.stage-hud-body{display:grid!important;gap:8px!important}
.stage-hud-dock>#stageComponentCard:not(.is-collapsed)>.stage-hud-body{display:block!important;padding:0!important}
.stage-hud-dock>#stageLegend:not(.is-collapsed)>.stage-hud-body{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px 8px!important;padding:12px!important}
.stage-hud-dock>#mepXrayStrip:not(.is-collapsed)>.stage-hud-body{display:flex!important;flex-direction:column!important;gap:8px!important}
.stage-hud-dock .stage-controls-head,
.stage-hud-dock .mep-xray-strip-head{display:none!important}
.stage-hud-dock .stage-legend-head{grid-column:1/-1}
.stage-hud-dock .stage-hud-toggle{display:flex!important}
.stage-hud-dock .stage-visual-ref-actions{min-width:0;max-width:100%}
.stage-hud-dock .stage-visual-ref-actions button{
  width:100%;max-width:100%;min-width:0;height:auto!important;min-height:30px;padding:8px 10px!important;
  white-space:normal;overflow-wrap:anywhere;line-height:1.25;letter-spacing:.03em!important;text-transform:none!important;font-size:8px!important
}
.stage-hud-dock .stage-control-group,
.stage-hud-dock .stage-control-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.stage-hud-dock .stage-reading-group{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.mep-xray-mount .stage-hud-toggle{display:none!important}
.mep-xray-mount .mep-xray-strip.is-collapsed>.stage-hud-body{display:flex!important}
.mep-xray-mount .mep-xray-strip-head{display:flex!important}
.mep-xray-mount .mep-xray-strip{position:absolute;top:14px;left:14px;padding:10px 12px}

.stage-legend{position:absolute;z-index:28;border:1px solid rgba(21,21,19,.16);background:rgba(255,255,252,.97);box-shadow:0 10px 28px rgba(20,20,17,.09);backdrop-filter:blur(12px);pointer-events:auto}
.stage-controls,.stage-component-card{position:absolute;z-index:28;border:1px solid rgba(21,21,19,.16);background:rgba(255,255,252,.97);box-shadow:0 10px 28px rgba(20,20,17,.09);backdrop-filter:blur(12px);pointer-events:auto}
.stage-controls[hidden],.stage-component-card[hidden],.stage-legend[hidden],.mep-xray-strip[hidden]{display:none!important}
.stage-controls{top:16px;left:16px;display:grid;width:244px;gap:8px;padding:11px}.stage-controls-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid rgba(25,38,34,.18)}.stage-controls-head span{color:#73736d;font-size:8.5px;font-weight:650;letter-spacing:.105em}.stage-controls-head b{font-size:9px}
.stage-control-group,.stage-control-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.stage-reading-group{grid-template-columns:repeat(5,minmax(0,1fr))}.stage-controls button{min-width:0;height:28px;border:1px solid rgba(25,38,34,.18);background:#f4f4ee;color:#464640;font:700 7px/1 inherit;letter-spacing:.04em;text-transform:uppercase}.stage-controls button:hover,.stage-controls button.active{border-color:#315b50;background:#315b50;color:#fff}.stage-control-actions button{background:#e9e8e0}
.norma-stage-active[data-stage-reading="estrutura"] .solid-face.stage-reading-context:not(.selected),.norma-stage-active[data-stage-reading="especialidade"] .solid-face.stage-reading-context:not(.selected),.norma-stage-active[data-stage-reading="acabado"] .solid-face.stage-reading-context:not(.selected){fill-opacity:.14!important}.norma-stage-active[data-stage-reading="estrutura"] .wire-edge.stage-reading-context,.norma-stage-active[data-stage-reading="especialidade"] .wire-edge.stage-reading-context,.norma-stage-active[data-stage-reading="acabado"] .wire-edge.stage-reading-context{stroke-opacity:.18}.norma-stage-active[data-stage-reading="sandwich"].stage-exploded .solid-face.stage-layer{stroke:#fff;stroke-width:1.4}

.stage-component-card{top:16px;right:16px;display:block;width:min(344px,calc(100% - 304px));max-height:calc(100% - 32px);overflow:auto;scrollbar-width:thin}.stage-card-empty{display:grid;gap:5px;padding:16px}.stage-card-empty span,.stage-card-head span,.stage-card-section-head span,.stage-card-source span,.stage-card-dimensions span{color:#73736d;font-size:8.5px;font-weight:650;letter-spacing:.105em}.stage-card-empty b{font-size:12px}.stage-card-empty small{color:#716f68;font-size:8px;line-height:1.45}
.stage-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border-bottom:1px solid rgba(25,38,34,.16)}.stage-card-head>div{display:grid;min-width:0;gap:3px}.stage-card-head b{overflow-wrap:anywhere;font-size:13px;line-height:1.25}.stage-card-head small{color:#716f68;font-size:7px;line-height:1.4}.stage-card-head>i{display:grid;flex:0 0 29px;height:29px;place-items:center;border:1px solid var(--stage-color);border-radius:50%;color:var(--stage-color);font:normal 800 14px/1 inherit}
.stage-card-identity{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(25,38,34,.16)}.stage-card-identity>div{display:grid;min-width:0;gap:3px;padding:9px 12px}.stage-card-identity>div+div{border-left:1px solid rgba(25,38,34,.16)}.stage-card-identity span,.stage-card-metrics span{color:#716f68;font-size:7px;text-transform:uppercase}.stage-card-identity b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.stage-card-dimensions{display:grid;gap:3px;padding:11px 12px;border-bottom:1px solid rgba(25,38,34,.16)}.stage-card-dimensions b{font-size:11px}.stage-card-dimensions small{color:#716f68;font-size:7px;line-height:1.4}
.stage-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(25,38,34,.14);border-bottom:1px solid rgba(25,38,34,.14)}.stage-card-metrics>div{display:grid;min-height:45px;gap:4px;padding:8px 10px;background:rgba(249,249,244,.98)}.stage-card-metrics b{font-size:9px}.stage-not-available{color:#8b4f43!important;font-size:8px!important;font-weight:700;text-transform:none!important}
.stage-card-section{display:grid;gap:7px;padding:11px 12px;border-bottom:1px solid rgba(25,38,34,.16)}.stage-card-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.stage-card-section-head b{font-size:8px}.stage-card-section-head .is-ready{color:#3b7450}.stage-card-section-head .is-blocked{color:#9b6324}.stage-card-section p{margin:0;color:#716f68;font-size:8px;line-height:1.45}.stage-card-section ul{margin:0;padding-left:16px}.stage-card-section li{margin:4px 0;color:#716f68;font-size:7px;line-height:1.4}
.stage-layer-list{display:grid;gap:3px}.stage-layer-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 0;border-top:1px solid rgba(25,38,34,.09)}.stage-layer-row>i{display:grid;width:20px;height:20px;place-items:center;background:var(--stage-color);color:#fff;font:normal 800 9px/1 inherit}.stage-layer-row>span{display:grid;min-width:0;gap:2px}.stage-layer-row b{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.stage-layer-row small{color:#716f68;font-size:6px}.stage-layer-row em{font-size:7px;font-style:normal;font-weight:800}.stage-card-note{padding:11px 12px;color:#716f68;font-size:8px}.stage-card-source{display:grid;gap:4px;padding:10px 12px}.stage-card-source small{color:#716f68;font-size:7px;line-height:1.45}
.stage-cutlist-rows{display:grid;gap:3px}.stage-cutlist-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 0;border-top:1px solid rgba(25,38,34,.09)}.stage-cutlist-row>i{display:grid;width:20px;height:20px;place-items:center;background:var(--stage-color);color:#fff;font:normal 800 9px/1 inherit}.stage-cutlist-row>span{display:grid;min-width:0;gap:2px}.stage-cutlist-row b{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.stage-cutlist-row small{color:#716f68;font-size:6px;line-height:1.35}.stage-cutlist-row em{font-size:8px;font-style:normal;font-weight:800}.stage-cutlist>small{color:#716f68;font-size:6px;line-height:1.4}

.stage-legend{bottom:38px;left:16px;display:grid;width:220px;grid-template-columns:1fr 1fr;gap:4px 8px;padding:9px}.stage-legend-head{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid rgba(25,38,34,.16)}.stage-legend-head span{color:#73736d;font-size:8.5px;font-weight:650;letter-spacing:.105em}.stage-legend-head small{color:#716f68;font-size:6px}.stage-legend-item{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:5px}.stage-legend-item i{display:grid;width:18px;height:18px;place-items:center;background:var(--stage-color);color:#fff;font:normal 800 8px/1 inherit}.stage-legend-item span{font-size:6px;line-height:1.2}
.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-structure{fill:#27323a}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-timber{fill:#9a6a42}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-insulation{fill:#8166b5}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-membrane{fill:#4a83b8}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-systems{fill:#d9a928}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-finish{fill:#e7e5dc}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-envelope{fill:#cb7341}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-glazing{fill:#68a6b7}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-spatial{fill:#aaa69b}.norma-stage-active[data-stage-visual="technical"] .solid-face.stage-semantic-conflict{fill:#b94b43}
.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-structure{fill:#58636a}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-timber{fill:#b48960}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-insulation{fill:#a695c8}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-membrane{fill:#79a3c4}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-finish{fill:#e8e3d8}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-envelope{fill:#c99272}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-glazing{fill:#a5d1d9}.norma-stage-active[data-stage-visual="material"] .solid-face.stage-semantic-spatial{fill:#c8c5ba}
.norma-stage-active[data-stage-visual="material"].stage-visual-ref .solid-face.stage-ref:not(.stage-ref-textured){fill:var(--stage-ref-fill)!important}
/* wr242 · tokens Material vencem volumetric-face; opacidade legível enquanto se desenha */
.norma-stage-active[data-stage-visual="material"].stage-visual-ref .solid-face.stage-ref.volumetric-face:not(.stage-ref-textured),
.iso-scene.volumetric-mode.norma-stage-active[data-stage-visual="material"].stage-visual-ref .solid-face.stage-ref.volumetric-face:not(.stage-ref-textured){fill:var(--stage-ref-fill)!important;fill-opacity:.94!important;filter:none}
.norma-stage-active[data-stage-visual="material"].stage-visual-ref .solid-face.stage-ref-textured,
.iso-scene.volumetric-mode.norma-stage-active[data-stage-visual="material"].stage-visual-ref .solid-face.stage-ref-textured{fill-opacity:.96!important;filter:none}
.norma-stage-active[data-stage-visual="material"].stage-visual-ref .stage-section-band[style*="--stage-color"] .stage-section-fill{opacity:.96}
.stage-visual-ref-panel{display:grid;gap:8px}
.stage-visual-ref-panel.is-idle{opacity:.78}
.stage-visual-ref-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px}
.stage-visual-ref-meta div{display:grid;gap:2px}
.stage-visual-ref-meta span{color:#716f68;font-size:6px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.stage-visual-ref-meta b{font-size:7px;line-height:1.25;word-break:break-word}
.stage-visual-ref-tokens{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.stage-visual-ref-token{display:grid;grid-template-columns:18px minmax(0,1fr);gap:5px;align-items:center;padding:4px;border:1px solid rgba(25,38,34,.12);background:#f4f4ee}
.stage-visual-ref-token.is-on-layer{border-color:#315b50;background:#eef4f1}
.stage-visual-ref-swatch{display:block;width:18px;height:18px;border:1px solid rgba(25,38,34,.2);background-size:cover;background-position:center}
.stage-visual-ref-token span{display:grid;gap:1px;min-width:0}
.stage-visual-ref-token b{font-size:7px}
.stage-visual-ref-token small{color:#716f68;font-size:6px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-visual-ref-selected{display:grid;gap:2px;padding-top:4px;border-top:1px solid rgba(25,38,34,.12)}
.stage-visual-ref-selected span{color:#716f68;font-size:6px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.stage-visual-ref-selected b{font-size:8px}
.stage-visual-ref-selected small,.stage-visual-ref-empty{color:#716f68;font-size:6px;line-height:1.35}
.stage-visual-ref-body>small{color:#716f68;font-size:6px;line-height:1.35}
.stage-visual-ref-actions{display:grid;gap:4px;padding-top:4px;min-width:0;max-width:100%}.rehearsal-comm-pack{margin-top:8px}
.stage-visual-ref-actions button{width:100%;max-width:100%;min-width:0;box-sizing:border-box;height:auto;min-height:28px;padding:8px 10px;border:1px solid rgba(25,38,34,.2);background:#e9e8e0;color:#315b50;font:650 8px/1.3 inherit;letter-spacing:.03em;text-transform:none;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.stage-visual-ref-actions button:hover{border-color:#315b50;background:#315b50;color:#fff}
.norma-stage-active[data-stage-visual="clean"] .solid-face{fill:#d8d8d0!important}.norma-stage-active .solid-face{fill-opacity:.82;transition:fill .18s ease,fill-opacity .18s ease,stroke-width .18s ease}
.norma-stage-active .solid-face.caixao,
.norma-stage-active .solid-face.travessa,
.norma-stage-active .solid-face.portico{fill-opacity:.72!important}
.norma-stage-active .solid-face.fecho,
.norma-stage-active .solid-face.osb{fill-opacity:.28!important}
.norma-stage-active .solid-face.caixao,
.norma-stage-active .solid-face.travessa,
.norma-stage-active .solid-face.portico{fill-opacity:.72!important}
.norma-stage-active .solid-face.fecho,
.norma-stage-active .solid-face.osb{fill-opacity:.28!important}.norma-stage-active .solid-face.selected{fill-opacity:.96;stroke:#101b18!important;stroke-width:2.2!important}.norma-stage-active .wire-edge{stroke:#25342f;stroke-opacity:.62}.norma-stage-active.stage-xray .solid-face:not(.selected){fill-opacity:.13!important}.norma-stage-active.stage-xray .solid-face.selected{fill-opacity:.72!important}.norma-stage-active.stage-xray .wire-edge{stroke-opacity:.85}.norma-stage-active.stage-exploded .solid-face.stage-layer{stroke:#171714;stroke-width:1.35;stroke-opacity:.55}
.norma-stage-active.stage-exploded.stage-explode-ghost .solid-face:not(.selected):not(.stage-layer):not(.preview3d){fill-opacity:.08!important}
.norma-stage-active.stage-exploded.stage-explode-ghost .wire-edge:not(.selected):not(.stage-layer):not(.preview3d){stroke-opacity:.1}
.norma-stage-active.stage-exploded .solid-face.stage-layer{fill-opacity:.96!important}
.norma-stage-active.stage-exploded .solid-face.stage-layer.selected{stroke:#171714!important;stroke-width:2.4!important;stroke-opacity:1}
.norma-stage-active.stage-material-callouts .stage-layer-callout-dir{fill:#716f68;font:700 8px/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.12em}
.norma-stage-active.stage-material-callouts .stage-layer-callout-index-bg{fill:var(--stage-color);stroke:#fff;stroke-width:1.2}
.norma-stage-active.stage-material-callouts .stage-layer-callout-index{fill:#fff;font:700 8px/1 ui-sans-serif,system-ui,sans-serif;pointer-events:none}
.stage-layer-row .stage-layer-order{min-width:1.4rem;font:700 9px/1 ui-sans-serif,system-ui,sans-serif;color:#716f68;letter-spacing:.04em}
.stage-layer-row.is-selected .stage-layer-order{color:#171714}
.stage-composition-contract{margin-top:8px}
.stage-contract-axis{margin:4px 0 8px;font:700 10px/1.2 ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;color:#171714}
.stage-contract-packs{display:flex;flex-wrap:wrap;gap:6px}
.stage-contract-pack{display:flex;flex-direction:column;gap:2px;min-width:72px;padding:6px 8px;border:1px solid #deded8;background:#f7f7f3}
.stage-contract-pack b{font-size:10px}
.stage-contract-pack small{font-size:8px;color:#716f68;text-transform:uppercase;letter-spacing:.06em}
.stage-contract-pack em{font-size:9px;font-style:normal;color:#171714}
.stage-contract-pack.stage-config-configurable{border-color:#5f7f62}
.stage-contract-pack.stage-config-fixed{border-color:#aaa69b}
#stageExplodeContextGroup[hidden]{display:none!important}
/* wr316–wr318 · Stage Explode legível + contrato composição */.norma-stage-active .iso-hit-face{cursor:pointer}
/* Stage construction hatch · sandwich/explode · presentation only */
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-timber{fill:url(#stage-hatch-timber)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-structure{fill:url(#stage-hatch-structure)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-insulation{fill:url(#stage-hatch-insulation)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-membrane{fill:url(#stage-hatch-membrane)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-finish{fill:url(#stage-hatch-finish)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-envelope{fill:url(#stage-hatch-envelope)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-glazing{fill:url(#stage-hatch-glazing)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-systems{fill:url(#stage-hatch-systems)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-spatial{fill:url(#stage-hatch-spatial)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-unknown{fill:url(#stage-hatch-unknown)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-semantic-conflict{fill:url(#stage-hatch-conflict)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-lvl{fill:url(#stage-hatch-lvl)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-osb{fill:url(#stage-hatch-osb)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-icb{fill:url(#stage-hatch-icb)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-fiber{fill:url(#stage-hatch-fiber)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-cavity{fill:url(#stage-hatch-cavity)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-cement{fill:url(#stage-hatch-cement)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-steel{fill:url(#stage-hatch-steel)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-board{fill:url(#stage-hatch-board)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer.stage-family-membrane{fill:url(#stage-hatch-membrane)!important}
.norma-stage-active.stage-construction-hatch .solid-face.stage-layer{fill-opacity:.92}
.stage-legend-hatch-note{grid-column:1/-1;color:#716f68;font-size:7px;line-height:1.35;padding-top:4px}
.stage-material-stack{grid-column:1/-1;display:grid;gap:6px;padding:6px 0 8px;border-bottom:1px solid rgba(25,38,34,.14);margin-bottom:2px}
.stage-material-stack-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.stage-material-stack-head span{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.1em}
.stage-material-stack-head small{color:#716f68;font-size:7px;font-weight:700}
.stage-material-stack-bands{display:grid;gap:2px}
.stage-stack-pack{display:grid;gap:4px;padding:6px;border:1px solid rgba(25,38,34,.14);background:rgba(255,255,255,.55);text-align:left;cursor:pointer}
.stage-stack-pack.is-active{border-color:#171714;box-shadow:inset 0 0 0 1px #171714}
.stage-stack-pack.is-context{opacity:.42}
.stage-stack-pack-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center}
.stage-stack-pack-head b{font-size:8px}
.stage-stack-pack-head span{color:#716f68;font-size:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-stack-pack-head em{font-size:7px;font-style:normal;font-weight:800}
.stage-stack-band{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:4px 6px 4px 8px;border-left:3px solid var(--stage-color);background:color-mix(in srgb,var(--stage-color) 22%,rgba(249,249,244,.96));box-shadow:inset 0 0 0 1px rgba(25,38,34,.08)}
.stage-stack-band b{font-size:8px;line-height:1.1}
.stage-stack-band em{font-size:7px;font-style:normal;font-weight:800}
.stage-stack-band small{grid-column:1/-1;color:#716f68;font-size:6px;line-height:1.2}
.stage-pack-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 0;border:0;border-top:1px solid rgba(25,38,34,.09);background:transparent;width:100%;text-align:left;cursor:pointer}
.stage-pack-row.is-active{background:rgba(23,23,20,.06)}
.stage-pack-row.is-context{opacity:.45}
.stage-layer-row.is-pack-context{opacity:.4}
.norma-stage-active .solid-face.stage-pack-context{fill-opacity:.22!important;stroke-opacity:.35}
.norma-stage-active .wire-edge.stage-pack-context{stroke-opacity:.25}
/* wr318 · líderes em cotovelo + escada afastada do stack */
.norma-stage-active.stage-material-callouts .stage-layer-callouts-ladder .stage-layer-callout-leader{stroke:rgba(23,23,20,.72);stroke-width:1.25;stroke-dasharray:none;pointer-events:none}
.norma-stage-active.stage-material-callouts .stage-layer-callout-leader{stroke:rgba(23,23,20,.55);stroke-width:1.1;stroke-dasharray:3 2;pointer-events:none}
.norma-stage-active.stage-material-callouts .stage-layer-callout-leader.is-selected{stroke:#171714;stroke-width:1.6;stroke-dasharray:none}
.norma-stage-active.stage-material-callouts .stage-layer-callout-dot{fill:var(--stage-color);stroke:#fff;stroke-width:1.2}
.norma-stage-active.stage-material-callouts .stage-layer-callout-dot.is-selected{stroke:#171714;stroke-width:1.6}
.norma-stage-active.stage-material-callouts .stage-layer-callout-leader.is-context,.norma-stage-active.stage-material-callouts .stage-layer-callout.is-context{opacity:.28}
.norma-stage-active.stage-material-callouts .stage-layer-callout-bg{fill:rgba(249,249,244,.96);stroke:rgba(25,38,34,.32);stroke-width:1}
.norma-stage-active.stage-material-callouts .stage-layer-callout.is-selected .stage-layer-callout-bg{stroke:#171714;stroke-width:1.5;fill:#fff}
.norma-stage-active.stage-material-callouts .stage-layer-callout-accent{fill:var(--stage-color)}
.norma-stage-active.stage-material-callouts .stage-layer-callout-primary{fill:#171714;font:700 9.5px/1 ui-sans-serif,system-ui,sans-serif;pointer-events:none}
.norma-stage-active.stage-material-callouts .stage-layer-callout-secondary{fill:#716f68;font:600 7.5px/1 ui-sans-serif,system-ui,sans-serif;pointer-events:none}
.norma-stage-active.stage-material-callouts .stage-layer-callout{pointer-events:auto}
.norma-stage-active.stage-material-callouts .stage-pack-callout-bg{fill:#171714;stroke:none}
.norma-stage-active.stage-material-callouts .stage-pack-callout-text{fill:#f9f9f4;font:800 8px/1 ui-sans-serif,system-ui,sans-serif;pointer-events:none}
.norma-stage-active.stage-material-callouts .stage-pack-callout.is-context{opacity:.3}
.norma-stage-active.stage-material-callouts .stage-pack-callout.is-active .stage-pack-callout-bg{fill:#315b50}

.stage-ficha-packs.is-live,.stage-cutlist.is-live,.stage-ficha-layers.is-live,.stage-section-diagram.is-live{box-shadow:inset 2px 0 0 #315b50;background:#f3f6f4}
.stage-cutlist.is-prominent .stage-card-section-head span{letter-spacing:.06em}
.stage-section-svg{display:block;width:100%;height:auto;max-height:320px;margin:2px 0 4px}
.stage-section-fill{fill:var(--stage-color);stroke:rgba(25,38,34,.35);stroke-width:1}
.stage-section-band.is-selected .stage-section-fill{stroke:#171714;stroke-width:1.8}
.stage-section-band.is-context{opacity:.35}
.stage-section-code{fill:#171714;font:700 8px/1 ui-sans-serif,system-ui,sans-serif}
.stage-section-thk{fill:#f9f9f4;font:800 8px/1 ui-sans-serif,system-ui,sans-serif;paint-order:stroke;stroke:rgba(23,23,20,.45);stroke-width:2}
.stage-section-side{fill:#716f68;font:700 8px/1 ui-sans-serif,system-ui,sans-serif}
.stage-section-bracket{fill:none;stroke:#171714;stroke-width:1.4}
.stage-section-pack-id{fill:#171714;font:800 8px/1 ui-sans-serif,system-ui,sans-serif}
.stage-section-pack-thk{fill:#716f68;font:600 7px/1 ui-sans-serif,system-ui,sans-serif}
.stage-section-pack.is-active .stage-section-bracket{stroke:#315b50;stroke-width:2}
.stage-section-pack.is-active .stage-section-pack-id{fill:#315b50}
.stage-section-pack.is-context{opacity:.35}
.stage-pack-list{display:grid;gap:0}
.stage-pack-row span{display:grid;gap:2px;min-width:0}
.stage-pack-row b{font-size:8px}
.stage-pack-row small{color:#716f68;font-size:6px}
.stage-pack-row em{font-size:8px;font-style:normal;font-weight:800}
.stage-ficha-path{display:block;padding:6px 0 2px;color:#716f68;font-size:7px;line-height:1.4}

@media(max-width:980px){.stage-hud-dock{width:min(280px,calc(100% - 24px))}.stage-controls{width:210px}.stage-component-card{width:min(310px,calc(100% - 258px))}.stage-legend{width:198px}.stage-control-group,.stage-control-actions{grid-template-columns:1fr}.stage-reading-group{grid-template-columns:repeat(5,minmax(0,1fr))}.stage-controls button{height:25px}.stage-controls{max-height:calc(100% - 32px);overflow:auto}.stage-hud-dock .stage-controls{width:100%;max-height:none}}
@media(max-width:720px){.stage-hud-dock{top:8px;right:8px;width:min(260px,calc(100% - 16px));max-height:calc(100% - 16px)}.stage-controls{top:8px;left:8px;width:184px;padding:8px}.stage-component-card{top:8px;right:8px;width:min(280px,calc(100% - 216px));max-height:calc(100% - 16px)}.stage-legend{bottom:30px;left:8px;width:170px;grid-template-columns:1fr}.stage-legend-head{grid-column:auto}.stage-card-metrics{grid-template-columns:1fr}.stage-card-head{padding:10px}.stage-layer-row{grid-template-columns:20px minmax(0,1fr)}.stage-hud-dock .stage-controls,.stage-hud-dock .stage-component-card,.stage-hud-dock .stage-legend{width:100%;top:auto;left:auto;right:auto;bottom:auto}.stage-hud-dock .stage-legend{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.stage-hud-dock{left:auto;right:8px;width:auto}.stage-controls{right:8px;width:auto;grid-template-columns:1fr 1fr}.stage-controls-head{grid-column:1/-1}.stage-reading-group{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr))}.stage-component-card{top:154px;left:8px;right:8px;width:auto;max-height:calc(100% - 164px)}.stage-legend{display:none}.stage-control-group,.stage-control-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.stage-hud-dock .stage-controls{grid-template-columns:1fr;width:100%}.stage-hud-dock .stage-legend{display:grid}.stage-hud-dock .stage-component-card{top:auto;left:auto;right:auto;width:100%;max-height:min(36vh,320px)}}

/* v1.38.0-dev.18 · S0-I08 · NORMA DNA · DESIGN · Analyse */
.dna-view-button{border-color:#74519a!important}.dna-view-button.active{background:#442b61!important;color:#fff!important}.view-icon.analyse:before{content:"";position:absolute;left:1px;right:1px;bottom:1px;height:3px;background:currentColor;box-shadow:0 -4px 0 rgba(128,98,157,.72),0 -8px 0 rgba(128,98,157,.38)}
.dna-analyse{position:absolute;inset:0;z-index:12;display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;gap:10px;overflow:auto;padding:18px 20px 16px;background:linear-gradient(145deg,#f8f6fa 0,#f1f0ec 55%,#e9e6ed 100%);color:#201d22}.dna-analyse[hidden]{display:none!important}
.dna-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dna-head>div:first-child{display:grid;gap:2px}.dna-head span,.dna-composition-panel>header span,.dna-esg-panel>header span,.dna-footer>span{color:#74519a;font-size:7px;font-weight:850;letter-spacing:.15em}.dna-head h2{margin:0;font-size:25px;font-weight:520;letter-spacing:-.045em}.dna-head p{margin:2px 0 0;color:#6f6a72;font-size:8px}.dna-selection-pill{max-width:260px;padding:7px 10px;border:1px solid rgba(68,43,97,.24);background:rgba(255,255,255,.62);font-size:8px;font-weight:750;color:#442b61;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dna-metric-modes{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px!important}.dna-metric-modes button{display:grid;min-width:0;gap:1px;padding:7px 6px!important;border:1px solid rgba(68,43,97,.16)!important;background:rgba(255,255,255,.68)!important;color:#716b74!important;text-align:left}.dna-metric-modes button:hover,.dna-metric-modes button.active{border-color:#442b61!important;background:#442b61!important;color:#fff!important}.dna-metric-modes b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.dna-metric-modes small{font-size:6px;opacity:.7}
.dna-scope-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dna-scope-row>span{font-size:7px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#817b84}.dna-scopes{display:flex;gap:3px}.dna-scopes button{padding:5px 9px!important;border:1px solid rgba(68,43,97,.16)!important;background:rgba(255,255,255,.55)!important;color:#716b74;font-size:7px}.dna-scopes button.active{background:#201d22!important;color:#fff!important;border-color:#201d22!important}.dna-scopes button:disabled{cursor:not-allowed;opacity:.35}
.dna-coverage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.dna-coverage>div{display:grid;gap:2px;padding:8px 10px;border:1px solid rgba(68,43,97,.14);background:rgba(255,255,255,.72)}.dna-coverage span{font-size:6px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#817b84}.dna-coverage b{font-size:16px;font-weight:540}.dna-coverage small{font-size:6px;color:#817b84}.dna-coverage .has-unknown{border-color:rgba(164,91,70,.32);background:#f7ede8}.dna-coverage .has-unknown b{color:#934f3b}
.dna-takeoff-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dna-takeoff-bar button{padding:6px 10px!important;border:1px solid rgba(68,43,97,.2)!important;background:rgba(255,255,255,.7)!important;color:#442b61;font-size:7px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.dna-takeoff-bar button.active,.dna-takeoff-bar button:hover{background:#442b61!important;color:#fff!important;border-color:#442b61!important}.dna-takeoff-bar small{color:#817b84;font-size:6px}
.dna-takeoff-panel{border:1px solid rgba(68,43,97,.14);background:rgba(255,255,255,.76)}.dna-takeoff-panel[hidden]{display:none!important}.dna-takeoff-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(68,43,97,.12)}.dna-takeoff-panel>header span{color:#74519a;font-size:7px;font-weight:850;letter-spacing:.15em}.dna-takeoff-panel>header b{font-size:11px}.dna-takeoff-panel>header small{max-width:55%;color:#817b84;font-size:6px;line-height:1.35;text-align:right}
.dna-takeoff-sheets{display:flex;flex-wrap:wrap;gap:3px;padding:8px 10px;border-bottom:1px solid rgba(68,43,97,.1)}.dna-takeoff-sheets button{display:grid;gap:1px;padding:5px 8px!important;border:1px solid rgba(68,43,97,.14)!important;background:rgba(255,255,255,.65)!important;color:#716b74;font-size:6px;text-align:left}.dna-takeoff-sheets button.active{background:#201d22!important;color:#fff!important;border-color:#201d22!important}.dna-takeoff-sheets button:disabled{opacity:.35}.dna-takeoff-sheets small{opacity:.7}
.dna-takeoff-rows{display:grid;gap:0;max-height:220px;overflow:auto}.dna-takeoff-row{display:grid;grid-template-columns:minmax(0,1.4fr) 48px 88px;gap:8px;align-items:center;padding:7px 12px;border-top:1px solid rgba(68,43,97,.08)}.dna-takeoff-row span{display:grid;gap:1px;min-width:0}.dna-takeoff-row b{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.dna-takeoff-row small{color:#817b84;font-size:6px}.dna-takeoff-row em{font-size:7px;font-style:normal;font-weight:800;text-align:right}.dna-takeoff-row em.is-unknown{color:#934f3b;font-size:6px}

.dna-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.8fr);gap:9px;min-height:0}.dna-composition-panel,.dna-esg-panel{min-height:0;overflow:auto;border:1px solid rgba(68,43,97,.14);background:rgba(255,255,255,.76)}.dna-composition-panel>header,.dna-esg-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid rgba(68,43,97,.12)}.dna-composition-panel>header>div,.dna-esg-panel>header>div{display:grid;gap:2px}.dna-composition-panel>header b,.dna-esg-panel>header b{font-size:11px}.dna-composition-panel>header small,.dna-esg-panel>header small{max-width:290px;color:#817b84;font-size:6px;line-height:1.4;text-align:right}
.dna-bars{display:grid;gap:9px;padding:11px 12px}.dna-bar-row{display:grid;gap:4px;padding:3px 5px 6px;border:1px solid transparent}.dna-bar-row.is-selected{border-color:#442b61;background:#f1ebf5}.dna-bar-label{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px}.dna-bar-label>i{display:grid;width:20px;height:20px;place-items:center;background:var(--dna-color);color:#fff;font:normal 800 9px/1 inherit}.dna-bar-label>span{display:grid;min-width:0;gap:1px}.dna-bar-label b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.dna-bar-label small,.dna-bar-percent{color:#817b84;font-size:6px}.dna-bar-label em{font-size:8px;font-style:normal;font-weight:800}.dna-bar-track{height:5px;margin-left:29px;overflow:hidden;background:#e4e1e5}.dna-bar-track i{display:block;height:100%;background:var(--dna-color)}.dna-bar-percent{margin-left:29px}.dna-no-data{display:grid;gap:4px;padding:18px}.dna-no-data b{font-size:10px}.dna-no-data p{margin:0;color:#817b84;font-size:7px;line-height:1.5}
.dna-unknown{margin:0 12px 12px;border:1px solid rgba(164,91,70,.28);background:#f7ede8}.dna-unknown[hidden]{display:none}.dna-unknown>div{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:8px}.dna-unknown i{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#934f3b;color:#fff;font:normal 800 9px/1 inherit}.dna-unknown span{display:grid;gap:2px}.dna-unknown b{font-size:8px}.dna-unknown small{color:#895f53;font-size:6px}
.dna-esg-axes{display:grid;gap:8px;padding:11px}.dna-esg-axis{display:grid;gap:3px}.dna-esg-axis>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.dna-esg-axis span{font-size:7px;font-weight:700}.dna-esg-axis b{font-size:8px}.dna-esg-track{height:4px;overflow:hidden;background:#e4e1e5}.dna-esg-track i{display:block;height:100%;background:#74519a}.dna-esg-axis small{color:#817b84;font-size:5.5px;line-height:1.35}
.dna-footer{display:grid!important;grid-template-columns:auto 1fr!important;align-items:start;gap:10px;padding:8px 10px!important;border:1px solid rgba(68,43,97,.14)!important;background:rgba(255,255,255,.58)!important}.dna-footer p{margin:0;color:#706b73;font-size:6px;line-height:1.45}
@media(max-width:1000px){.dna-metric-modes{grid-template-columns:repeat(4,minmax(0,1fr))}.dna-main-grid{grid-template-columns:1fr}.dna-analyse{padding:12px}.dna-esg-panel{overflow:visible}}
@media(max-width:680px){.dna-coverage{grid-template-columns:1fr}.dna-head{flex-direction:column}.dna-selection-pill{max-width:100%}.dna-metric-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.dna-footer{grid-template-columns:1fr!important}}

/* v1.38.0-dev.19 · S0-I09 · NORMA Walk · UX-02B */
.walk-view-button{border-color:#8a5b32!important}.walk-view-button.active{background:#5f3820!important;color:#fff!important}.view-icon.walk:before{content:"";position:absolute;left:5px;top:1px;width:4px;height:4px;border:1px solid currentColor;border-radius:50%}.view-icon.walk:after{content:"";position:absolute;left:7px;top:6px;width:1px;height:7px;background:currentColor;box-shadow:-3px 3px 0 -0.1px currentColor,3px 3px 0 -0.1px currentColor;transform-origin:top}
.walk-scene{position:absolute;inset:0;z-index:13;overflow:hidden;outline:none;background:linear-gradient(180deg,#d9e0df 0 48%,#ddd9d0 48% 100%);touch-action:none}.walk-scene[hidden]{display:none!important}.walk-scene:focus-visible{box-shadow:inset 0 0 0 2px #5f3820}.walk-scene>svg:first-child{position:absolute;inset:0;width:100%;height:100%;display:block}.walk-scene[data-walk-location="interior"]{background:linear-gradient(180deg,#ebe9e2 0 51%,#c9c4b9 51% 100%)}.walk-scene[data-walk-visual="clean"]{background:linear-gradient(180deg,#f1f1ed 0 50%,#d7d7d1 50% 100%)}
.walk-scene[data-walk-visual="material"] .walk-face.stage-ref:not(.stage-ref-textured){fill:var(--stage-ref-fill,#c9c5bb)!important}.walk-scene[data-walk-visual="material"] .walk-face.stage-ref-textured{stroke:rgba(31,32,29,.42)}.walk-face{fill:#c9c5bb;stroke:rgba(31,32,29,.48);stroke-width:.65;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .14s ease,fill-opacity .14s ease}.walk-face.face-1{filter:brightness(1.18)}.walk-face.face-3,.walk-face.face-5{filter:brightness(.84)}.walk-face.selected{stroke:#151412;stroke-width:2.1;filter:saturate(1.25) brightness(1.05)}.walk-face.window3d{fill-opacity:.32;stroke:#416a72}.walk-face.fixture3d{stroke:rgba(31,32,29,.55);fill-opacity:.92}.walk-face.furniture3d{stroke:#6b5b4a;fill-opacity:.92}.walk-face.fixture3d.role-body,.walk-face.furniture3d.role-body{fill-opacity:.95}.walk-scene[data-walk-visual="technical"] .walk-face.fixture3d{fill:#c9a227;fill-opacity:.94}.walk-scene[data-walk-visual="technical"] .walk-face.furniture3d{fill:#8a7358;fill-opacity:.92}.walk-scene[data-walk-visual="material"] .walk-face.fixture3d{fill-opacity:.96}.walk-scene[data-walk-visual="material"] .walk-face.furniture3d{fill-opacity:.96}.walk-scene[data-walk-visual="technical"] .walk-semantic-structure{fill:#27323a}.walk-scene[data-walk-visual="technical"] .walk-semantic-timber{fill:#9a6a42}.walk-scene[data-walk-visual="technical"] .walk-semantic-envelope{fill:#cb7341}.walk-scene[data-walk-visual="technical"] .walk-semantic-glazing{fill:#68a6b7;fill-opacity:.35}.walk-scene[data-walk-visual="technical"] .walk-semantic-spatial{fill:#aaa69b}.walk-scene[data-walk-visual="technical"] .walk-semantic-systems{fill:#d9a928}.walk-scene[data-walk-visual="material"] .walk-semantic-structure{fill:#667076}.walk-scene[data-walk-visual="material"] .walk-semantic-timber{fill:#b48960}.walk-scene[data-walk-visual="material"] .walk-semantic-envelope{fill:#c99272}.walk-scene[data-walk-visual="material"] .walk-semantic-glazing{fill:#a5d1d9;fill-opacity:.3}.walk-scene[data-walk-visual="material"] .walk-semantic-spatial{fill:#d4d0c5}.walk-scene[data-walk-visual="clean"] .walk-face{fill:#d7d7d1!important;stroke:#777771}.walk-scene[data-walk-visual="clean"] .walk-face.window3d{fill:#e9eeee!important;fill-opacity:.28}.walk-scene[data-walk-visual="clean"] .walk-face.fixture3d,.walk-scene[data-walk-visual="clean"] .walk-face.furniture3d{fill:#b8b4a8!important;fill-opacity:.9!important}.walk-scene[data-walk-cut]:not([data-walk-cut="none"])>svg:first-child{filter:drop-shadow(0 0 5px rgba(117,54,28,.12))}
.walk-crosshair{position:absolute;z-index:15;left:50%;top:50%;display:grid;width:26px;height:26px;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(20,20,18,.18);color:#fff;font:600 16px/1 monospace;pointer-events:none;text-shadow:0 1px 2px #000}
.walk-scene .walk-context-card,.walk-scene .walk-minimap{position:absolute;z-index:18;border:1px solid rgba(60,42,28,.25);background:rgba(250,249,244,.93);box-shadow:0 14px 34px rgba(39,31,23,.16);backdrop-filter:blur(12px)}.walk-scene .walk-context-card>header,.walk-scene .walk-minimap>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid rgba(60,42,28,.16)}.walk-scene .walk-context-card>header>div{display:grid;gap:2px}.walk-scene .walk-context-card>header span,.walk-scene .walk-minimap header span{color:#8a5b32;font-size:7px;font-weight:850;letter-spacing:.13em}.walk-scene .walk-context-card>header b{font-size:11px}.walk-scene .walk-context-card>header em{color:#6f665d;font-size:7px;font-style:normal;font-weight:750}
.walk-context-card{top:14px;right:14px;width:min(304px,calc(100% - 276px));max-height:calc(100% - 204px);overflow:auto}.walk-context-card>header{padding:11px 12px}.walk-location{display:grid;gap:3px;padding:8px 12px;border-bottom:1px solid rgba(60,42,28,.13)}.walk-location span{font-size:8px;font-weight:780}.walk-location small,.walk-context-card section>small{color:#736a62;font-size:6.5px;line-height:1.4}.walk-context-card section{display:grid;gap:4px;padding:11px 12px}.walk-context-card section>b{font-size:11px}.walk-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:4px;background:rgba(60,42,28,.13)}.walk-card-metrics i{display:grid;gap:3px;padding:7px 6px;background:#f8f7f2;font-style:normal}.walk-card-metrics span{color:#786f66;font-size:6px}.walk-card-metrics b{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.walk-context-card footer{display:block;padding:7px 0 0;border-top:1px solid rgba(60,42,28,.12);background:transparent;color:#786f66;font-size:6px}.walk-no-selection{min-height:66px}
.walk-minimap{right:14px;bottom:38px;width:240px;padding:9px}.walk-minimap[hidden]{display:none!important}.walk-minimap>header{align-items:center}.walk-minimap header b{font-size:7px}.walk-minimap>svg{display:block;width:100%;height:160px;margin-top:6px;background:rgba(255,255,255,.64)}.walk-map-module{fill:rgba(194,188,176,.28);stroke:#756b60;stroke-width:1}.walk-map-space{fill:rgba(164,137,103,.2);stroke:#8a5b32;stroke-width:1;cursor:pointer}.walk-map-space:hover,.walk-map-space.active{fill:rgba(138,91,50,.42);stroke-width:1.8}.walk-map-camera{fill:#8a3626;stroke:#fff;stroke-width:1.2}.walk-help{position:absolute;z-index:17;left:50%;bottom:12px;transform:translateX(-50%);max-width:calc(100% - 540px);padding:6px 9px;border:1px solid rgba(60,42,28,.2);background:rgba(250,249,244,.88);color:#625a53;font-size:6.5px;letter-spacing:.03em;white-space:nowrap}
@media(max-width:900px){.walk-scene .walk-context-card{width:min(264px,calc(100% - 234px))}.walk-scene .walk-minimap{width:205px}.walk-minimap>svg{height:130px}.walk-help{display:none}}
@media(max-width:620px){.walk-scene .walk-context-card{top:7px;right:7px;width:calc(100% - 202px);max-height:45%}.walk-scene .walk-minimap{right:7px;bottom:7px;width:calc(100% - 202px)}.walk-minimap>svg{height:105px}.walk-card-metrics{grid-template-columns:1fr}.viewbar>.view-switch{overflow-x:auto;scrollbar-width:none}}

/* I12 · UX-03C · Construction Rehearsal Evidence Commissioning */
.view-icon.rehearse:before{content:"";position:absolute;left:1px;right:1px;top:3px;height:8px;border:1px solid currentColor}
.view-icon.rehearse:after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;font-size:7px;line-height:1}
.rehearsal-overlay{position:absolute;inset:0;z-index:34;pointer-events:none;color:#171714}
.rehearsal-overlay .rehearsal-console:not(.rehearsal-detail-console){position:absolute;left:14px;top:14px;width:min(338px,calc(100% - 28px));max-height:calc(100% - 118px);overflow:auto;background:rgba(255,255,252,.97);border:1px solid #d7d7cf;box-shadow:0 18px 52px rgba(0,0,0,.12);backdrop-filter:blur(10px);pointer-events:auto}
.rehearsal-console>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #e4e4dd}.rehearsal-console>header span{display:block;font-size:7px;letter-spacing:.13em;color:#87877f}.rehearsal-console>header b{display:block;margin-top:3px;font-size:12px}.rehearsal-console>header em{font-style:normal;font-size:7px;letter-spacing:.06em;padding:5px 7px;background:#f1f1eb;color:#666}.rehearsal-console>header em[data-source="build"]{background:#171714;color:#fff}
.rehearsal-view-mode,.rehearsal-transport,.rehearsal-options{display:flex}.rehearsal-view-mode{padding:9px 12px 0;gap:3px}.rehearsal-view-mode button,.rehearsal-options button,.rehearsal-transport button{border:1px solid #deded7;background:#fff;color:#666;font-size:8px;padding:7px 9px;cursor:pointer}.rehearsal-view-mode button.active,.rehearsal-options button.active{background:#171714;color:#fff;border-color:#171714}.rehearsal-transport{display:grid;grid-template-columns:38px 1fr 38px;gap:4px;padding:8px 12px}.rehearsal-transport button{font-size:10px}.rehearsal-transport .primary-control{background:#171714;color:#fff;border-color:#171714}.rehearsal-transport button:disabled{opacity:.3;cursor:default}.rehearsal-options{justify-content:space-between;gap:6px;padding:0 12px 10px}.rehearsal-options>div{display:flex}.rehearsal-options>div button+button{margin-left:-1px}.rehearsal-options>button{white-space:nowrap}
.rehearsal-current{margin:0 12px 10px;padding:12px;background:#f5f5f0;border-left:3px solid #ad742f}.rehearsal-current header{display:flex;justify-content:space-between;align-items:center;gap:8px}.rehearsal-current header span{font-size:7px;letter-spacing:.08em;color:#777}.rehearsal-current header em{font-size:7px;font-style:normal;text-transform:uppercase}.rehearsal-current h3{font-size:14px;margin:8px 0 3px}.rehearsal-current p,.rehearsal-current small{font-size:8px;color:#777;line-height:1.45}.rehearsal-current ul{padding-left:16px;margin:9px 0}.rehearsal-current li{font-size:8px;line-height:1.45}.rehearsal-empty{font-size:9px;color:#777}
.rehearsal-evidence{margin:0 12px 10px;border:1px solid #e0e0d9;background:#fff}.rehearsal-evidence>header{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-bottom:1px solid #e7e7e0}.rehearsal-evidence>header span,.rehearsal-evidence>header b{display:block}.rehearsal-evidence>header span{font-size:7px;letter-spacing:.12em;color:#888}.rehearsal-evidence>header b{font-size:9px;margin-top:2px}.rehearsal-evidence>header em{font-style:normal;font-size:10px;font-weight:700}.rehearsal-evidence-grid{display:flex;flex-direction:column;gap:4px;padding:7px}.rehearsal-evidence-block{display:flex;align-items:baseline;gap:8px;min-width:0;min-height:0;width:100%;border:1px solid #e3e3dc;background:#fafaf7;padding:7px 9px;text-align:left;cursor:pointer}.rehearsal-evidence-block:hover,.rehearsal-evidence-block.active{border-color:#171714;background:#fff}.rehearsal-evidence-block>span{flex:0 1 auto;display:inline;font-size:7px;color:#777;white-space:nowrap}.rehearsal-evidence-block>b{flex:1 1 auto;display:inline;min-width:0;font-size:7px;line-height:1.25;margin:0}.rehearsal-evidence-block>small{flex:0 0 auto;display:inline;margin-left:auto;font-size:6.5px;color:#85857e;white-space:nowrap}.rehearsal-evidence-block.status-supported{box-shadow:inset 3px 0 #5e7860}.rehearsal-evidence-block.status-approved{box-shadow:inset 3px 0 #416747}.rehearsal-evidence-block.status-draft{box-shadow:inset 3px 0 #ad742f}.rehearsal-evidence-block.status-rejected{box-shadow:inset 3px 0 #a84d43}.rehearsal-evidence-block.status-missing{box-shadow:inset 3px 0 #b9b9b1}.rehearsal-evidence-detail{margin:0 7px 7px;padding:8px;background:#f5f5f0}.rehearsal-evidence-detail header{display:flex;justify-content:space-between;gap:8px}.rehearsal-evidence-detail h4{font-size:9px;margin:0}.rehearsal-evidence-detail em{font-size:7px;font-style:normal;text-transform:uppercase}.rehearsal-evidence-detail p{font-size:7px;line-height:1.4;color:#777;margin:6px 0}.rehearsal-evidence-detail ul{margin:0;padding-left:14px}.rehearsal-evidence-detail li{font-size:7px;line-height:1.45}.rehearsal-evidence-detail .resolved{color:#47674a}.rehearsal-evidence-detail .missing{color:#8b3f36}.rehearsal-production{margin:0 7px 7px;border:1px solid #deded6;background:#fbfaf5}.rehearsal-production>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-bottom:1px solid #e4e1d7}.rehearsal-production>header span,.rehearsal-production>header b{display:block}.rehearsal-production>header span{font-size:6.5px;letter-spacing:.12em;color:#8a6b45}.rehearsal-production>header b{margin-top:2px;font-size:8px}.rehearsal-production>header em{font-size:9px;font-style:normal;font-weight:750}.rehearsal-production article{padding:8px}.rehearsal-production article>header{display:flex;justify-content:space-between;gap:8px}.rehearsal-production article>header b{font-size:8px}.rehearsal-production article>header em{font-size:7px;font-style:normal;color:#777}.rehearsal-production dl{display:grid;gap:5px;margin:7px 0}.rehearsal-production dl>div{display:grid;grid-template-columns:92px 1fr;gap:6px}.rehearsal-production dt{font-size:6.5px;font-weight:800;color:#75644f}.rehearsal-production dd{margin:0;font-size:6.5px;line-height:1.35;color:#69645e}.rehearsal-production small{font-size:6px;line-height:1.4;color:#81796e}.rehearsal-production>button{width:calc(100% - 16px);margin:0 8px 8px;padding:7px;border:1px solid #8a6b45;background:#8a6b45;color:#fff;font-size:7px;font-weight:800;cursor:pointer}.rehearsal-production>button:disabled{border-color:#d4d0c5;background:#e7e4dc;color:#777;cursor:default}
.status-pending{color:#85857d}.status-ready{color:#5f7f62}.status-in-progress{color:#ad742f}.status-complete{color:#4d6f70}.status-blocked{color:#a84d43}
.rehearsal-dependencies{padding:0 12px 10px}.rehearsal-dependencies>span{display:block;font-size:7px;letter-spacing:.12em;color:#888;margin-bottom:6px}.rehearsal-dependencies #rehearsalDependencies{display:grid;gap:4px}.rehearsal-dependencies #rehearsalDependencies>div{display:flex;gap:8px;align-items:center;padding:7px;background:#fafaf7;border:1px solid #e8e8e1}.rehearsal-dependencies i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:8px;font-style:normal}.rehearsal-dependencies .met i{background:#e2ece2;color:#47674a}.rehearsal-dependencies .unmet i{background:#f2e0dd;color:#8b3f36}.rehearsal-dependencies b,.rehearsal-dependencies small{display:block;font-size:7px}.rehearsal-dependencies small{color:#777;margin-top:2px}.dependency-none{font-size:8px;color:#888}.rehearsal-disclosure{margin:0;padding:10px 12px;border-top:1px solid #e4e4dd;font-size:7px;line-height:1.45;color:#777}
.rehearsal-overlay .rehearsal-timeline:not(.rehearsal-dock-timeline),.rehearsal-active .rehearsal-timeline:not(.rehearsal-dock-timeline){position:absolute;left:366px;right:14px;bottom:14px;display:flex;gap:4px;overflow-x:auto;padding:9px;background:rgba(255,255,252,.97);border:1px solid #d7d7cf;box-shadow:0 12px 36px rgba(0,0,0,.1);pointer-events:auto;scrollbar-width:thin}.rehearsal-step{position:relative;flex:0 0 136px;min-height:68px;text-align:left;border:1px solid #e1e1da;background:#fff;padding:8px 8px 8px 13px;cursor:pointer}.rehearsal-step>i{position:absolute;left:0;top:0;bottom:0;width:4px;background:#aaa}.rehearsal-step>span,.rehearsal-step>b,.rehearsal-step>small{display:block}.rehearsal-step>span{font-size:7px;color:#888}.rehearsal-step>b{font-size:8px;margin:5px 0;line-height:1.3}.rehearsal-step>small{font-size:7px;color:#777}.rehearsal-step.status-ready>i{background:#5f7f62}.rehearsal-step.status-in-progress>i{background:#ad742f}.rehearsal-step.status-complete>i{background:#4d6f70}.rehearsal-step.status-blocked>i{background:#a84d43}.rehearsal-step.active{border-color:#171714;box-shadow:inset 0 0 0 1px #171714}
.rehearsal-active #contextualTimeline,.rehearsal-active #lensInsight,.rehearsal-active #moduleStatusStrip{display:none!important}.rehearsal-active #walkControls,.rehearsal-active #walkContextCard,.rehearsal-active #walkMiniMap,.rehearsal-active .walk-help{display:none!important}
.solid-face.rehearsal-complete,.walk-face.rehearsal-complete{opacity:.38}.solid-face.rehearsal-future,.walk-face.rehearsal-future{opacity:.12}.solid-face.rehearsal-unrelated,.walk-face.rehearsal-unrelated{opacity:.07}.solid-face.rehearsal-hidden,.walk-face.rehearsal-hidden{opacity:0;pointer-events:none}.solid-face.rehearsal-current,.walk-face.rehearsal-current{opacity:1;stroke:#d98b27!important;stroke-width:3px!important;filter:drop-shadow(0 0 5px rgba(217,139,39,.75))}.wire-edge.rehearsal-complete{opacity:.3}.wire-edge.rehearsal-future,.wire-edge.rehearsal-unrelated{opacity:.08}.wire-edge.rehearsal-hidden{opacity:0}.wire-edge.rehearsal-current{stroke:#d98b27!important;stroke-width:2.2px!important;opacity:1}
.iso-hit-face.rehearsal-hidden{pointer-events:none}
@media(max-width:900px){.rehearsal-overlay>.rehearsal-console:not(.rehearsal-detail-console){width:286px;max-height:calc(100% - 104px)}.rehearsal-timeline:not(.rehearsal-dock-timeline){left:314px}.rehearsal-step{flex-basis:118px}}
@media(max-width:620px){.rehearsal-overlay>.rehearsal-console:not(.rehearsal-detail-console){left:7px;top:7px;width:244px;max-height:calc(100% - 94px)}.rehearsal-timeline:not(.rehearsal-dock-timeline){left:258px;right:7px;bottom:7px}.rehearsal-step{flex-basis:104px}.rehearsal-current ul,.rehearsal-dependencies,.rehearsal-evidence-detail{display:none}.rehearsal-evidence-grid{display:flex;flex-direction:column}}

/* v1.38.0-dev.25 · S0-I15 · Guided Design Core · UX-04C */
.guide-assistant-button{border-color:#476a62!important;color:#31534b!important}.guide-assistant-button.active{background:#31534b!important;border-color:#31534b!important;color:#fff!important}.view-icon.guide:before{content:"";position:absolute;left:1px;top:2px;width:10px;height:7px;border:1px solid currentColor;border-radius:5px}.view-icon.guide:after{content:"✓";position:absolute;right:-2px;bottom:-3px;display:grid;width:8px;height:8px;place-items:center;border-radius:50%;background:#31534b;color:#fff;font-size:5px}.guide-assistant-button.active .view-icon.guide:after{background:#fff;color:#31534b}
.guided-design{position:absolute;z-index:42;top:12px;right:12px;width:min(390px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;border:1px solid #cad6d2;background:rgba(251,252,249,.98);box-shadow:0 20px 58px rgba(28,51,45,.18);color:#1d2724;backdrop-filter:blur(12px)}.guided-design[hidden]{display:none!important}.guided-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #dce4e1;background:#f1f6f3}.guided-head>div{display:grid;gap:2px}.guided-head span,.guided-section>header span,.guided-summary span{font-size:6.5px;font-weight:850;letter-spacing:.13em;color:#58756d}.guided-head b{font-size:12px}.guided-head small{font-size:6.5px;color:#75847f}.guided-head>button{display:grid;width:24px;height:24px;place-items:center;border:1px solid #cad6d2;background:#fff;color:#49635c;font-size:16px;cursor:pointer}
.guided-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #e0e7e4}.guided-summary>div{display:grid;min-width:0;gap:2px}.guided-summary b{overflow:hidden;max-width:245px;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.guided-summary small{overflow:hidden;max-width:245px;color:#788681;font-size:6.5px;text-overflow:ellipsis;white-space:nowrap}.guided-summary em{padding:5px 7px;border:1px solid #d3dad7;background:#f4f5f2;color:#68716e;font-size:7px;font-style:normal;font-weight:800}.guided-summary em[data-status="allowed"]{border-color:#a8c3ad;background:#e8f2e9;color:#3c6845}.guided-summary em[data-status="conditional"]{border-color:#d7bf92;background:#f7f0e2;color:#866026}.guided-summary em[data-status="blocked"]{border-color:#dab3ac;background:#f7e9e6;color:#8c4035}
.guided-live{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #e0e7e4;font-size:7px;font-weight:760}.guided-live button{min-width:62px;padding:5px 8px;border:1px solid #76948c;background:#31534b;color:#fff;font-size:7px;cursor:pointer}.guided-live button[aria-pressed="false"]{background:#fff;color:#66746f}
.guided-section{border-bottom:1px solid #e0e7e4}.guided-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:#f7f9f6}.guided-section>header b{font-size:7px;color:#56635f}.guided-section>header b[data-status="blocked"]{color:#8c4035}.guided-rules,.guided-evidence,.guided-decisions,.guided-suggestions{display:grid;gap:4px;padding:8px 10px}.guided-rules article,.guided-evidence article{display:grid;grid-template-columns:20px 1fr;gap:7px;padding:7px 8px;border:1px solid #e1e6e3;background:#fff}.guided-rules i,.guided-evidence i{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;background:#e8f2e9;color:#3c6845;font-size:8px;font-style:normal;font-weight:900}.guided-rules .failed i{background:#f5dfdb;color:#8c4035}.guided-rules b,.guided-evidence b{display:block;font-size:7.5px}.guided-rules p,.guided-evidence p{margin:2px 0 0;color:#6d7874;font-size:6.5px;line-height:1.4}.guided-evidence small{display:block;margin-top:3px;color:#926b30;font-size:6px}.guided-decisions article{display:grid;gap:2px;padding:7px 8px;border-left:3px solid #3c6845;background:#eef5ef}.guided-decisions span{font-size:6px;font-weight:850;letter-spacing:.1em;color:#3c6845}.guided-decisions b{font-size:8px}.guided-decisions small{font-size:6.5px;line-height:1.35;color:#65736e}.guided-empty{margin:0;padding:8px;color:#7b8682;font-size:7px;line-height:1.4}
.guided-suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}.guided-suggestions button{display:grid;min-width:0;gap:3px;padding:8px;border:1px solid #cfdad6;background:#fff;color:#263d37;text-align:left;cursor:pointer}.guided-suggestions button:hover{border-color:#31534b;background:#f0f5f2}.guided-suggestions b{font-size:7.5px}.guided-suggestions small{font-size:6px;line-height:1.35;color:#6e7975}.guided-proposal{margin:8px 10px;padding:9px;border:1px solid #d7dfdc;background:#fff}.guided-proposal header{display:flex;justify-content:space-between;gap:8px}.guided-proposal header span,.guided-proposal header em{font-size:6.5px;font-style:normal;color:#66746f}.guided-proposal h4{margin:6px 0 3px;font-size:9px}.guided-proposal p,.guided-proposal small{font-size:6.5px;line-height:1.4;color:#6b7672}.guided-proposal dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:7px 0;background:#dce3e0}.guided-proposal dl>div{min-width:0;padding:5px;background:#f6f8f5}.guided-proposal dt{font-size:5.5px;color:#78847f}.guided-proposal dd{overflow:hidden;margin:2px 0 0;font-size:6.5px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.guided-proposal-actions{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:4px;padding:0 10px 9px}.guided-proposal-actions button{padding:7px;border:1px solid #bdcbc6;background:#fff;color:#405750;font-size:7px;font-weight:750;cursor:pointer}.guided-proposal-actions .primary-control{background:#31534b;border-color:#31534b;color:#fff}.guided-proposal-actions button:disabled{opacity:.32;cursor:default}.guided-disclosure{margin:0;padding:9px 12px;background:#eef3f0;color:#60706a;font-size:6.5px;line-height:1.45}
@media(max-width:760px){.guided-design{top:7px;right:7px;width:min(340px,calc(100% - 14px));max-height:calc(100% - 14px)}.guided-suggestions{grid-template-columns:1fr}.guided-evidence{display:none}.guided-proposal dl{grid-template-columns:1fr}.guided-proposal-actions{grid-template-columns:1fr 1fr}.guided-proposal-actions .primary-control{grid-column:1/-1}}

/* UX-04B · host/opening interface, tolerance states and impact preview */
.guided-summary em[data-status="indeterminate"],.guided-section>header b[data-status="indeterminate"]{border-color:#b9bec9;background:#eef0f4;color:#525967}.guided-section>header b[data-status="conditional"],.guided-section>header b[data-status="limit"]{color:#866026}.guided-section>header b[data-status="insufficient"]{color:#8c4035}.guided-rules article.state-indeterminate i{background:#eceef2;color:#596170}.guided-rules article.state-limit i{background:#f7f0e2;color:#866026}.guided-interface{padding:8px 10px}.guided-interface dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:#dce3e0}.guided-interface dl>div{min-width:0;padding:6px 7px;background:#fff}.guided-interface dt{font-size:5.5px;color:#78847f}.guided-interface dd{overflow:hidden;margin:2px 0 0;font-size:6.5px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.guided-interface>small{display:block;padding:6px 2px 0;color:#6d7874;font-size:6px;line-height:1.4}.guided-impact{display:grid;gap:3px;margin:7px 0;padding:6px;border:1px solid #dce3e0;background:#f7f9f6}.guided-impact>b{font-size:6.5px;color:#405750}.guided-impact>div{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #e3e8e5;padding-top:3px}.guided-impact span,.guided-impact small{overflow:hidden;font-size:5.8px;text-overflow:ellipsis;white-space:nowrap}.guided-impact span{max-width:58%;font-weight:760;color:#43564f}.guided-impact small{max-width:42%;color:#7b8682}.guided-proposal .guided-impact{max-height:110px;overflow:auto}@media(max-width:760px){.guided-interface dl{grid-template-columns:1fr}}

/* UX-04C · dedicated opening entity, semantic host cut and propagated impact use the existing Guided Design visual language. */

/* UX-04F topological commit transaction and rollback */
.opening-proxy{fill:rgba(72,108,98,.08);stroke:#466d63;stroke-width:1.1;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;cursor:pointer}.opening-proxy.state-stale{stroke:#9b6a2d;stroke-dasharray:2 2}.opening-proxy.state-orphaned{stroke:#984b43}.opening-proxy.selected{stroke-width:2;filter:drop-shadow(0 0 2px rgba(30,70,60,.35))}.solid-face.opening3d{fill:rgba(75,112,101,.06);stroke:#466d63;stroke-dasharray:4 3}.wire-edge.opening3d{stroke:#466d63;stroke-dasharray:4 3}.guided-interface-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 10px 9px}.guided-interface-actions .guided-materialize{margin:0;width:100%}.guided-materialize{margin:0 10px 9px;width:calc(100% - 20px);border:1px solid #9eb5ae;background:#f4f8f6;color:#36564d;padding:7px 9px;font-size:6.5px;font-weight:800;cursor:pointer}.guided-materialize:disabled{opacity:.42;cursor:default}


/* v1.38.0-dev.30 · S0-I20 · Guided Design Core · UX-04H */
.opening-topology-void{fill:var(--white);fill-opacity:.92;stroke:var(--ink);stroke-width:1.25;stroke-dasharray:6 2;vector-effect:non-scaling-stroke;cursor:pointer}.opening-topology-void.selected{stroke-width:2}.wire-edge.topology-void3d{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:6 2}.solid-face.topology-void3d{display:none}

/* v1.38.0-dev.32 · S0-I22 · NORMA Walk UX-02B · Geometry Fidelity & Building Navigation */
.walk-building-row,.walk-level-visibility-row,.walk-orbit-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.walk-building-row{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:2px;border-top:1px solid rgba(60,42,28,.12)}
.walk-level-visibility-row{padding-bottom:2px;border-bottom:1px solid rgba(60,42,28,.12)}
.walk-orbit-row[hidden]{display:none!important}
.walk-orbit-row button{border-color:rgba(49,83,75,.28);background:#f3f6f4;color:#31534b}
.walk-scene[data-walk-navigation="orbit"]{cursor:grab}.walk-scene[data-walk-navigation="orbit"]:active{cursor:grabbing}
.walk-scene[data-walk-navigation="orbit"] .walk-crosshair{width:16px;height:16px;border-color:rgba(255,255,255,.5);background:rgba(20,20,18,.08);font-size:0}
.walk-scene[data-walk-navigation="orbit"] .walk-crosshair:before,.walk-scene[data-walk-navigation="orbit"] .walk-crosshair:after{content:"";position:absolute;background:rgba(255,255,255,.78)}
.walk-scene[data-walk-navigation="orbit"] .walk-crosshair:before{left:3px;right:3px;top:7px;height:1px}.walk-scene[data-walk-navigation="orbit"] .walk-crosshair:after{top:3px;bottom:3px;left:7px;width:1px}
.walk-scene[data-walk-building="no-roof"] #walkCameraMode:after{content:" · sem cobertura"}
.walk-scene[data-walk-level-mode="single"] #walkFloorLabel:before{content:"Só · "}.walk-scene[data-walk-level-mode="through"] #walkFloorLabel:before{content:"Até · "}
@media(max-width:620px){.walk-building-row,.walk-level-visibility-row,.walk-orbit-row{grid-template-columns:1fr}.walk-building-row{grid-template-columns:1fr 1fr}}

/* v1.38.0-dev.33 · S0-I23 · Contextual Tool Zone UX-05B
   Walk e Rehearse usam a coluna de ferramentas; o canvas deixa de carregar o painel operacional principal. */
.design-tool-zone[hidden],.contextual-tool-zone[hidden]{display:none!important}
.contextual-tool-zone{min-height:0;background:#fff}
.workspace-screen[data-tool-zone="walk"] .left,.workspace-screen[data-tool-zone="rehearse"] .left{overscroll-behavior:contain}
.workspace-screen[data-tool-zone="walk"] .project-block,.workspace-screen[data-tool-zone="rehearse"] .project-block{position:sticky;top:0;z-index:4;background:rgba(255,255,255,.98);backdrop-filter:blur(8px)}
.contextual-tool-zone .walk-controls,.contextual-tool-zone .rehearsal-console{position:static;inset:auto;width:auto;max-height:none;overflow:visible;border:0;box-shadow:none;backdrop-filter:none;background:transparent}
.contextual-tool-zone .walk-controls{display:grid;gap:8px;padding:14px 12px 16px}
.contextual-tool-zone .walk-controls>header{margin:-14px -12px 2px;padding:14px 12px 12px;background:#fafaf7;border-bottom:1px solid #e7e7e0}
.contextual-tool-zone .walk-controls button{min-height:30px;background:#fff;border-color:#deded8;color:#4f4f49}
.contextual-tool-zone .walk-controls button:hover,.contextual-tool-zone .walk-controls button.active{background:#171714;border-color:#171714;color:#fff}
.contextual-tool-zone .walk-space-jump{grid-template-columns:1fr;gap:4px;padding-top:2px}
.contextual-tool-zone .walk-space-jump select{height:31px;border-color:#deded8}
.contextual-tool-zone .walk-floor-row{padding:6px 0;border-top:1px solid #efefe9;border-bottom:1px solid #efefe9}
.contextual-tool-zone .walk-floor-row>b{font-size:8px}
.contextual-tool-zone .rehearsal-console>header{background:#fafaf7}
.contextual-tool-zone .rehearsal-console .rehearsal-current,
.contextual-tool-zone .rehearsal-console .rehearsal-evidence,
.contextual-tool-zone .rehearsal-console .rehearsal-dependencies{margin-left:0;margin-right:0}
.contextual-tool-zone .rehearsal-console .rehearsal-disclosure{margin:0}
.rehearsal-active .rehearsal-timeline:not(.rehearsal-dock-timeline){left:14px}
.rehearsal-active .rehearsal-overlay{pointer-events:none}
.rehearsal-active .rehearsal-timeline:not(.rehearsal-dock-timeline){pointer-events:auto}
.walk-scene>.walk-controls,.rehearsal-overlay>.rehearsal-console{display:none!important}
@media(max-width:900px){.contextual-tool-zone .walk-controls,.contextual-tool-zone .rehearsal-console{width:auto;max-height:none}.rehearsal-active .rehearsal-timeline:not(.rehearsal-dock-timeline){left:10px}}
@media(max-width:620px){.contextual-tool-zone .walk-controls,.contextual-tool-zone .rehearsal-console{width:auto;max-height:none}.rehearsal-active .rehearsal-timeline:not(.rehearsal-dock-timeline){left:7px}.rehearsal-active .rehearsal-current ul,.rehearsal-active .rehearsal-dependencies,.rehearsal-active .rehearsal-evidence-detail{display:block}}


/* v1.38.0-dev.34 · S0-I24 · Contextual Action Dock UX-05C
   Apenas Walk e Rehearse substituem a Biblioteca de Módulos pela ação própria do modo. */
.module-library-wrap[hidden],.action-dock[hidden]{display:none!important}
.action-dock{overflow:hidden;background:#fff;border-top:1px solid #d8d8d2;position:relative;z-index:12}
#modelActionDock.model-action-dock{height:auto;min-height:0}
.walk-action-dock.action-dock,.rehearsal-action-dock.action-dock{height:178px;min-height:178px}
.workspace-screen:has(#walkActionDock:not([hidden])) .workspace-grid main,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) .workspace-grid main,
.workspace-screen[data-action-dock="walk"] .workspace-grid main,
.workspace-screen[data-action-dock="rehearse"] .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 178px 74px!important}
.workspace-screen:has(#walkActionDock:not([hidden])) #contextualTimeline,
.workspace-screen:has(#walkActionDock:not([hidden])) #moduleStatusStrip,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) #contextualTimeline,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) #moduleStatusStrip,
.workspace-screen[data-action-dock="walk"] #contextualTimeline,.workspace-screen[data-action-dock="rehearse"] #contextualTimeline{display:none!important}
.workspace-grid main>.viewbar{grid-row:1}
.workspace-grid main>.canvas{grid-row:2}
.workspace-grid main>.module-library-wrap:not([hidden]),
.workspace-grid main>.action-dock:not([hidden]){grid-row:3}
.workspace-grid main>.project-summary-strip{grid-row:4}
.walk-context-tools{display:grid;gap:12px;padding:14px 12px 18px}.walk-context-tools>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:-14px -12px 0;padding:14px 12px 12px;background:#fafaf7;border-bottom:1px solid #e7e7e0}.walk-context-tools>header span{display:block;font-size:7px;letter-spacing:.13em;color:#8a5b32;font-weight:800}.walk-context-tools>header b{display:block;margin-top:3px;font-size:11px}.walk-context-tools>header em{font-style:normal;font-size:7px;padding:4px 6px;background:#171714;color:#fff}.walk-context-summary{display:grid;gap:8px}.walk-context-summary>div{padding-bottom:8px;border-bottom:1px solid #ecece7}.walk-context-summary span{display:block;font-size:7px;letter-spacing:.1em;color:#999}.walk-context-summary b{display:block;margin-top:4px;font-size:9px;font-weight:600}.walk-context-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.walk-context-actions button{min-height:30px;border:1px solid #deded8;background:#fff;font-size:7px;font-weight:750}.walk-context-actions button:hover,.walk-context-actions button.active{background:#171714;color:#fff;border-color:#171714}.walk-context-note{margin:0;font-size:8px;line-height:1.55;color:#888}
.walk-navigation-dock-controls{position:static!important;inset:auto!important;width:auto!important;height:100%;max-height:none!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important;display:grid!important;grid-template-rows:38px minmax(0,1fr);overflow:hidden!important}.walk-navigation-dock-controls>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 14px;border-bottom:1px solid #e3e3dd;background:#fafaf7}.walk-navigation-dock-controls>header span{display:block;font-size:7px;letter-spacing:.12em;color:#8a5b32;font-weight:850}.walk-navigation-dock-controls>header b{font-size:10px}.walk-navigation-dock-controls>header em{font-style:normal;font-size:8px;color:#67675f}.walk-dock-body{display:grid;grid-template-columns:1.2fr 1.05fr 1.35fr .9fr;gap:0;min-height:0}.walk-dock-group{display:grid;align-content:start;gap:5px;padding:9px 12px;border-right:1px solid #ecece7;min-width:0}.walk-dock-group:last-child{border-right:0}.walk-dock-group>span{font-size:7px;letter-spacing:.1em;color:#989890}.walk-dock-group>p{margin:2px 0 0;font-size:7px;line-height:1.35;color:#888}.walk-navigation-dock-controls button{min-width:0;min-height:25px;border:1px solid #deded8;background:#fff;color:#4f4f49;font:750 7px/1 inherit}.walk-navigation-dock-controls button:hover,.walk-navigation-dock-controls button.active{background:#171714;border-color:#171714;color:#fff}.walk-navigation-dock-controls .walk-mode-row{grid-template-columns:repeat(3,minmax(0,1fr))}.walk-navigation-dock-controls .walk-orbit-row,.walk-navigation-dock-controls .walk-flyover-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.walk-navigation-dock-controls .walk-pad{grid-template-columns:repeat(6,minmax(0,1fr))}.walk-navigation-dock-controls .walk-building-row{grid-template-columns:repeat(2,minmax(0,1fr))}.walk-navigation-dock-controls .walk-level-visibility-row,.walk-navigation-dock-controls .walk-visual-row,.walk-navigation-dock-controls .walk-cut-row{grid-template-columns:repeat(3,minmax(0,1fr))}.walk-navigation-dock-controls .walk-floor-row{padding:0;border:0}.walk-navigation-dock-controls .walk-floor-row>b{font-size:7px}.walk-scene[data-walk-navigation="flyover"] .walk-crosshair{width:18px;height:18px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(20,20,18,.08);font-size:0}.walk-scene[data-walk-navigation="flyover"] .walk-crosshair:before,.walk-scene[data-walk-navigation="flyover"] .walk-crosshair:after{content:"";position:absolute;background:rgba(255,255,255,.8)}.walk-scene[data-walk-navigation="flyover"] .walk-crosshair:before{left:2px;right:2px;top:8px;height:1px}.walk-scene[data-walk-navigation="flyover"] .walk-crosshair:after{top:2px;bottom:2px;left:8px;width:1px}
.rehearsal-detail-console{position:static!important;inset:auto!important;width:auto!important;max-height:none!important;overflow:visible!important;border:0!important;box-shadow:none!important;background:transparent!important}.rehearsal-detail-console>header{background:#fafaf7}.rehearsal-sequence-dock{height:100%;display:grid;grid-template-columns:210px 250px minmax(0,1fr);grid-template-rows:38px minmax(0,1fr);background:#fff}.rehearsal-sequence-dock>header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:6px 14px;border-bottom:1px solid #e3e3dd;background:#fafaf7}.rehearsal-sequence-dock>header span{display:block;font-size:7px;letter-spacing:.12em;color:#87877f}.rehearsal-sequence-dock>header b{font-size:10px}.rehearsal-sequence-dock .rehearsal-view-mode{display:flex;gap:4px}.rehearsal-sequence-controls{grid-column:1/3;display:grid;grid-template-columns:210px 250px;align-items:start;border-right:1px solid #e5e5df;min-width:0}.rehearsal-sequence-controls .rehearsal-transport,.rehearsal-sequence-controls .rehearsal-options{margin:0;padding:10px;border:0}.rehearsal-dock-timeline{grid-column:3;position:static!important;inset:auto!important;height:auto!important;min-height:0!important;box-shadow:none!important;border:0!important;border-left:1px solid #ecece7!important;padding:8px!important;background:#fff!important;overflow-x:auto!important}.rehearsal-dock-timeline .rehearsal-step{flex-basis:126px;min-height:88px}.rehearsal-active .rehearsal-overlay{pointer-events:none}
@media(max-height:820px){
  .walk-action-dock.action-dock,.rehearsal-action-dock.action-dock,
  .workspace-screen:has(#walkActionDock:not([hidden])) .workspace-grid main,
  .workspace-screen:has(#rehearsalActionDock:not([hidden])) .workspace-grid main,
  .workspace-screen[data-action-dock="walk"] .workspace-grid main,
  .workspace-screen[data-action-dock="rehearse"] .workspace-grid main{grid-template-rows:50px minmax(0,1fr) 178px 68px!important}
  .walk-action-dock.action-dock,.rehearsal-action-dock.action-dock{height:178px!important;min-height:178px!important}
  .action-dock:not(.model-action-dock):not(.walk-action-dock):not(.rehearsal-action-dock){height:148px;min-height:148px}
  .walk-navigation-dock-controls{grid-template-rows:34px minmax(0,1fr)}
  .walk-dock-body{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
  .walk-navigation-dock-controls>header{padding:5px 12px}
  .walk-dock-group{padding:6px 9px;gap:3px}
  .walk-navigation-dock-controls button{min-height:21px}
  .rehearsal-sequence-dock{grid-template-rows:34px minmax(0,1fr)}
  .rehearsal-dock-timeline .rehearsal-step{min-height:72px}
}
@media(max-width:1050px){.walk-dock-body{grid-template-columns:1.15fr 1fr 1.2fr}.walk-dock-group:last-child{display:none}.rehearsal-sequence-dock{grid-template-columns:180px 215px minmax(0,1fr)}.rehearsal-sequence-controls{grid-template-columns:180px 215px}}
@media(max-width:760px){.walk-dock-body{grid-template-columns:1fr 1fr}.walk-dock-group:nth-child(3){border-right:0}.walk-dock-group:nth-child(4){display:none}.rehearsal-sequence-dock{grid-template-columns:170px minmax(0,1fr)}.rehearsal-sequence-controls{grid-column:1;grid-template-columns:1fr}.rehearsal-dock-timeline{grid-column:2}.rehearsal-options{display:none}}

/* S0-I29 · Stage Advanced UX-01B · read-only inspection lenses */
.stage-advanced-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.stage-section-controls{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;padding-top:8px;border-top:1px solid rgba(25,38,34,.14)}
.stage-section-controls[hidden],.stage-section-badge[hidden],.stage-compare-pane[hidden],.stage-compare-current-label[hidden]{display:none!important}
.stage-section-axis{display:grid;grid-template-columns:repeat(3,28px);gap:3px;grid-column:1/-1}
.stage-section-axis button{height:26px!important;padding:0!important}
.stage-section-controls label{display:grid;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:7px;color:#716f68;font-size:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.stage-section-controls input[type="range"]{width:100%;accent-color:#315b50}
.stage-section-controls>button{height:28px!important;padding:0 8px!important}
.stage-section-badge{position:absolute;z-index:8;top:16px;left:276px;display:grid;gap:2px;max-width:250px;padding:9px 11px;border:1px solid rgba(49,91,80,.24);background:rgba(249,249,244,.95);box-shadow:0 8px 24px rgba(25,38,34,.06)}
.stage-section-badge span{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.12em}.stage-section-badge b{font-size:9px}.stage-section-badge small{color:#716f68;font-size:7px;line-height:1.4}
.norma-stage-active .solid-face.stage-section-cut{stroke:#315b50!important;stroke-width:1.35!important;stroke-dasharray:3 2}
.norma-stage-active .wire-edge.stage-section-cut{stroke:#315b50!important;stroke-width:1.25!important}
.norma-stage-active .solid-face.stage-layer-selected{fill-opacity:1!important;stroke:#171714!important;stroke-width:2.4!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.norma-stage-active .wire-edge.stage-layer-selected{stroke:#171714!important;stroke-width:1.8!important}
.stage-layer-row{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}
.stage-layer-row:hover,.stage-layer-row.is-selected{background:#eeeee8}
.stage-layer-row.is-selected{box-shadow:inset 2px 0 0 #315b50}
.stage-layer-inspector{background:#f3f3ed}
.stage-layer-inspector h4{margin:0;font-size:11px}.stage-layer-inspector .stage-card-section-head button{border:0;background:transparent;color:#716f68;font-size:7px;cursor:pointer}
.stage-layer-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(25,38,34,.12)}
.stage-layer-facts>div{display:grid;gap:3px;padding:7px;background:#fafaf6}.stage-layer-facts span{color:#716f68;font-size:6px;text-transform:uppercase}.stage-layer-facts b{font-size:7px}
.stage-compare-current-label{position:absolute;z-index:10;top:16px;left:calc(50% - 128px);padding:7px 9px;border:1px solid rgba(25,38,34,.18);background:rgba(249,249,244,.96);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.stage-compare-pane{position:absolute;z-index:9;inset:0 0 0 50%;display:grid;grid-template-rows:auto minmax(220px,1fr) auto auto;border-left:1px solid rgba(25,38,34,.28);background:#f6f6f1;box-shadow:-14px 0 34px rgba(25,38,34,.08)}
.stage-compare-pane header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid rgba(25,38,34,.14);background:#fafaf6}
.stage-compare-pane header span{font-size:9px;font-weight:800}.stage-compare-pane header b{color:#315b50;font-size:7px;letter-spacing:.11em}
.stage-compare-pane svg{width:100%;height:100%;min-height:0;background:radial-gradient(circle at 50% 44%,#fff 0,#f4f4ef 62%,#e9e9e3 100%)}
.stage-compare-notice{padding:8px 12px;border-top:1px solid rgba(25,38,34,.12);background:#eef2ee;color:#425b52;font-size:7px;line-height:1.45}.stage-compare-notice.is-blocked{background:#f4ede6;color:#82562b}
.stage-compare-diff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(25,38,34,.12);max-height:142px;overflow:auto}
.stage-compare-diff>div{display:grid;gap:3px;padding:7px 9px;background:#fafaf6}.stage-compare-diff span{color:#716f68;font-size:6px;text-transform:uppercase}.stage-compare-diff b{font-size:7px;line-height:1.35}.stage-compare-diff i{padding:0 4px;color:#315b50;font-style:normal}
.stage-compare-active .stage-component-card,.stage-compare-active .stage-legend{display:none!important}
.stage-compare-active>#isoSvg{width:50%;margin-right:50%}
.stage-compare-active .orbit-help{right:calc(50% + 18px)}
.stage-controls .is-unavailable{opacity:.48}
@media(max-width:980px){.stage-section-badge{left:232px}.stage-compare-pane{inset:0 0 0 46%}.stage-compare-active>#isoSvg{width:46%;margin-right:54%}.stage-compare-diff{grid-template-columns:1fr}}
.norma-stage-active .stage-section-plane{fill:rgba(49,91,80,.055);stroke:#315b50;stroke-width:1;stroke-dasharray:7 4;pointer-events:none}

/* v1.38.0-dev.57-wr11 · force dock ownership: library never stays when Walk/Rehearse own the deck */
.workspace-screen[data-action-dock="walk"] #modelActionDock,
.workspace-screen[data-action-dock="rehearse"] #modelActionDock,
.workspace-screen[data-action-dock="factory"] #modelActionDock,
.workspace-screen[data-action-dock="site"] #modelActionDock,
.workspace-screen[data-action-dock="inspect"] #modelActionDock,
.workspace-screen[data-action-dock="systems"] #modelActionDock,
.workspace-screen:has(#walkActionDock:not([hidden])) #modelActionDock,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) #modelActionDock,
#modelActionDock[hidden],
.module-library-wrap[hidden],
.action-dock[hidden]{
  display:none!important;visibility:hidden!important;pointer-events:none!important;
  height:0!important;min-height:0!important;max-height:0!important;overflow:hidden!important;border:0!important;margin:0!important;padding:0!important
}
.workspace-screen[data-action-dock="walk"] #walkActionDock,
.workspace-screen:has(#walkActionDock:not([hidden])) #walkActionDock{
  display:block!important;visibility:visible!important;pointer-events:auto!important;
  height:178px!important;min-height:178px!important;max-height:178px!important;overflow:hidden!important;z-index:14
}
.workspace-screen[data-action-dock="rehearse"] #rehearsalActionDock,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) #rehearsalActionDock{
  display:block!important;visibility:visible!important;pointer-events:auto!important;
  height:178px!important;min-height:178px!important;max-height:178px!important;overflow:hidden!important;z-index:14
}

/* v1.38.0-dev.57-wr10 · design-system max-height must not crush Walk/Rehearse to 148px */
/* v1.38.0-dev.57-wr9 · dev.61 UX-05C contract lock */
.workspace-screen .project-summary-strip{
  transform:none!important;margin-bottom:0!important;position:relative!important;
}
.workspace-screen[data-action-dock="walk"] #walkActionDock,
.workspace-screen[data-action-dock="rehearse"] #rehearsalActionDock{z-index:14}
#walkActionDock .walk-controls.walk-navigation-dock-controls,
.walk-navigation-dock-controls{
  position:static!important;inset:auto!important;width:auto!important;max-height:none!important;
  padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important;
  display:grid!important;
}
.rehearsal-detail-console{
  position:static!important;inset:auto!important;width:auto!important;max-height:none!important;
  overflow:visible!important;border:0!important;box-shadow:none!important;background:transparent!important;
}
.rehearsal-dock-timeline{
  position:static!important;inset:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  box-shadow:none!important;
}

/* v1.38.0-dev.57-wr15 · process chrome · vertical Vista/Ajuste pulldowns */
.viewbar.viewbar-compact{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  padding:0 12px!important;
  overflow:visible!important;
  background:#fff;
  border-bottom:1px solid #d8d8d2;
  position:relative;
  /* wr533 · acima do Percurso Real (48) e industrial-ops (49) · pulldowns VISTAS/AJUSTE sempre por cima */
  z-index:55;
}
.viewbar-primary{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1 1 auto;
}
.viewbar-process{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  position:relative;
  margin-right:28px;
  padding-right:28px;
  border-right:1px solid #e4e4de;
}
.viewbar-pulldown{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  position:relative;
  /* wr586 · não encolher: o trigger (min-width) sobrepunha o eyebrow AJUSTE */
  flex:0 0 auto;
}
#vistaPulldown{
  padding-right:14px;
  margin-right:4px;
  border-right:1px solid #e4e4de;
}
#ajustePulldown{
  margin-left:12px;
  padding-left:2px;
}
.viewbar-eyebrow{
  font-size:7px;
  letter-spacing:.12em;
  font-weight:600;
  color:#2f2f2b;
  white-space:nowrap;
}
.viewbar.viewbar-compact .platform-switch{
  display:flex;
  gap:0;
  padding:0;
  border:1px solid #d0d0ca;
  background:#fff;
}
.viewbar.viewbar-compact .platform-choice{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
  min-height:32px;
  padding:4px 10px;
  border:0;
  border-right:1px solid #e4e4de;
  background:#fff;
  color:#8a8a84;
  border-radius:0;
}
.viewbar.viewbar-compact .platform-choice:last-child{border-right:0}
.viewbar.viewbar-compact .platform-choice b{
  font-size:9px;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.1;
}
.viewbar.viewbar-compact .platform-choice small{
  font-size:7px;
  color:currentColor;
  opacity:.72;
  letter-spacing:.02em;
}
.viewbar.viewbar-compact .platform-choice:hover{color:#111;background:#f7f7f3}
.viewbar.viewbar-compact .platform-choice.active{
  background:#4f4f4a;
  color:#fff;
}
.viewbar.viewbar-compact .platform-choice.is-locked{opacity:.38;cursor:not-allowed}
.viewbar-trigger{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  min-width:108px;
  padding:0 10px;
  border:1px solid #d0d0ca;
  background:#fff;
  color:#4f4f4a;
  font-size:10px;
  font-weight:600;
  letter-spacing:.01em;
  cursor:pointer;
  border-radius:0;
  white-space:nowrap;
}
.viewbar-trigger:hover{border-color:#4f4f4a}
.viewbar-pulldown.is-open .viewbar-trigger{
  background:#fff;
  border-color:#4f4f4a;
  color:#4f4f4a;
}
/* Ao pairar opções do menu, a escolha visível em cima fica cinza */
.viewbar-pulldown.is-open:has(.viewbar-panel .view:hover) .viewbar-trigger,
.viewbar-pulldown.is-open:has(.viewbar-panel .guide-assistant-button:hover) .viewbar-trigger,
.viewbar-pulldown.is-open:has(.viewbar-panel .ajuste-option:hover) .viewbar-trigger{
  background:#ecece7;
  border-color:#cfcfc9;
  color:#8a8a84;
  font-weight:500;
}
.viewbar-caret{
  width:0;height:0;
  margin-left:auto;
  border-left:3.5px solid transparent;
  border-right:3.5px solid transparent;
  border-top:4px solid currentColor;
  opacity:.7;
}
.viewbar-pulldown.is-open .viewbar-caret{transform:rotate(180deg)}
.viewbar-panel{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  min-width:100%;
  width:max(160px,100%);
  padding:0;
  background:#fff;
  border:1px solid #d0d0ca;
  box-shadow:0 10px 28px rgba(23,23,20,.10);
  z-index:56;
}
.viewbar-pulldown.is-open{
  z-index:56;
}
.viewbar-panel-ajuste{min-width:180px;width:max(180px,100%);max-height:min(70vh,420px);overflow:auto}
.viewbar.viewbar-compact .view-switch,
.viewbar.viewbar-compact .ajuste-list{
  display:flex;
  flex-direction:column;
  gap:0;
  border:0;
}
.viewbar.viewbar-compact .view-switch .view,
.viewbar.viewbar-compact .view-switch .guide-assistant-button,
.viewbar.viewbar-compact .ajuste-list .ajuste-option{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:100%;
  min-height:34px;
  margin:0;
  padding:8px 12px;
  border:0;
  border-bottom:1px solid #efefe9;
  background:#fff;
  color:#6f6f69;
  border-radius:0;
  letter-spacing:.02em;
  text-align:left;
}
.viewbar.viewbar-compact .view-switch .view:last-child,
.viewbar.viewbar-compact .view-switch .guide-assistant-button:last-child,
.viewbar.viewbar-compact .ajuste-list .ajuste-option:last-child{border-bottom:0}
.viewbar.viewbar-compact .view-switch .view span,
.viewbar.viewbar-compact .view-switch .guide-assistant-button span,
.viewbar.viewbar-compact .ajuste-list .ajuste-option span{
  font-size:10px;
  text-transform:none;
  letter-spacing:.01em;
  font-weight:500;
}
.viewbar.viewbar-compact .view-switch .view:hover,
.viewbar.viewbar-compact .view-switch .guide-assistant-button:hover,
.viewbar.viewbar-compact .ajuste-list .ajuste-option:hover{
  color:#4f4f4a;background:#f3f3ef;
}
.viewbar.viewbar-compact .view-switch .view.active,
.viewbar.viewbar-compact .view-switch .guide-assistant-button.active,
.viewbar.viewbar-compact .ajuste-list .ajuste-option.active{
  background:#4f4f4a;color:#fff;font-weight:600;
}
.viewbar.viewbar-compact .view-switch [data-process][hidden],
.viewbar.viewbar-compact .view-switch .view[hidden],
.viewbar.viewbar-compact .view-switch .guide-assistant-button[hidden]{display:none!important}
.viewbar.viewbar-compact .representation-controls.is-mirror,
.viewbar.viewbar-compact .unit-control.is-mirror{display:none!important}
.viewbar-camera{
  display:flex;align-items:center;gap:2px;flex:0 0 auto;
}
.viewbar-camera>button{
  min-height:32px;padding:0 9px;border:1px solid transparent;
  background:transparent;color:#777770;font-size:9px;letter-spacing:.03em;border-radius:0;
}
.viewbar-camera>button:hover{color:#111;background:#f3f3ef}
.viewbar-camera>button.active,
.viewbar-camera>button.dark{background:#111;color:#fff;border-color:#111}
.viewbar-camera>button:disabled{opacity:.28;cursor:not-allowed}
.viewbar-camera>#zoomIn,
.viewbar-camera>#zoomOut{min-width:30px;font-size:14px}
.workspace-grid main{
  grid-template-rows:44px minmax(120px,1fr) clamp(92px,17dvh,154px) clamp(52px,9dvh,74px)!important;
}
@media (max-width:1180px){
  .viewbar-eyebrow{display:none}
  .viewbar.viewbar-compact .platform-choice small{display:none}
  .viewbar.viewbar-compact{gap:8px;padding:0 8px!important}
  .viewbar-process{margin-right:16px;padding-right:16px}
}
@media (max-width:900px){
  .viewbar.viewbar-compact .platform-choice{padding:4px 7px}
  .viewbar-trigger{padding:0 8px;font-size:9px;min-width:88px}
  .viewbar-process{margin-right:12px;padding-right:12px}
}

/* v1.38.0-dev.57-wr17 · compact ETAPA header (01–08 pulldown) */
.workspace-screen header{
  height:48px!important;
  min-height:48px!important;
  padding:0 14px!important;
  grid-template-columns:minmax(120px,180px) minmax(0,1fr) minmax(220px,auto)!important;
  gap:16px!important;
}
.workspace-screen header .brand img{
  width:118px!important;
  max-height:28px!important;
}
.workflow-nav.workflow-nav-compact{
  display:flex!important;
  justify-content:center;
  align-items:center;
  gap:10px;
  overflow:visible!important;
  min-width:0;
}
.workflow-nav.workflow-nav-compact .stage:not(:last-child):after{display:none!important}
.workflow-nav.workflow-nav-compact .etapa-list{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:200px;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:34px;
  margin:0;
  padding:8px 12px;
  border:0;
  border-bottom:1px solid #efefe9;
  border-radius:0;
  background:#fff;
  color:#6f6f69;
  font-size:10px;
  text-align:left;
  white-space:nowrap;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage:last-child{border-bottom:0}
.workflow-nav.workflow-nav-compact .etapa-list .stage i{
  font-style:normal;
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  margin:0;
  border:1px solid #deded8;
  border-radius:0;
  font-size:8px;
  letter-spacing:.04em;
  background:#fff;
  color:inherit;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage span{
  font-size:10px;
  letter-spacing:.01em;
  font-weight:500;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage:hover{
  color:#4f4f4a;
  background:#f3f3ef;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage.active,
.workflow-nav.workflow-nav-compact .etapa-list .stage.os-active{
  background:#4f4f4a;
  color:#fff;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage.active i,
.workflow-nav.workflow-nav-compact .etapa-list .stage.os-active i{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}
.workflow-nav.workflow-nav-compact .etapa-list .stage.os-active::after{display:none!important}
.workflow-nav.workflow-nav-compact .etapa-trigger{
  min-width:148px;
}
.workflow-nav.workflow-nav-compact #etapaMenuLabel{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.workflow-nav.workflow-nav-compact #etapaMenuLabel i{
  font-style:normal;
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  border:1px solid #d0d0ca;
  font-size:8px;
  letter-spacing:.04em;
}
.workflow-nav.workflow-nav-compact #etapaMenuLabel em{
  font-style:normal;
  font-weight:600;
  font-size:10px;
}
.workflow-nav.workflow-nav-compact .viewbar-pulldown.is-open:has(.etapa-list .stage:hover) .viewbar-trigger{
  background:#ecece7;
  border-color:#cfcfc9;
  color:#8a8a84;
  font-weight:500;
}
.workspace-screen header .session-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:3px;
  min-width:max-content;
  max-width:none!important;
  overflow:visible!important;
}
.workspace-screen header .session-nav button{
  min-height:30px;
  padding:0 7px;
  font-size:9px;
}
/* wr421 · identidade de login sempre legível (email + tempo); não cortar à esquerda */
.workspace-screen header .user-session-info{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  margin-right:10px;
  padding-right:10px;
  border-right:1px solid #deded8;
  flex:0 0 auto;
  min-width:max-content;
  max-width:min(280px,32vw);
  overflow:visible;
}
.workspace-screen header .user-session-info b{
  display:block!important;
  font-size:10px!important;
  font-weight:600;
  color:#171714!important;
  max-width:min(280px,32vw);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.2;
}
.workspace-screen header .user-session-info span{
  display:block!important;
  font-size:8px!important;
  color:#55554f!important;
  white-space:nowrap;
  line-height:1.2;
}
.workspace-screen header .user-session-info small{display:none!important}
@media (max-width:1180px){
  .workspace-screen header{grid-template-columns:minmax(96px,120px) minmax(0,1fr) auto!important;gap:8px!important}
  .workflow-nav.workflow-nav-compact .viewbar-eyebrow{display:none}
  .workspace-screen header .user-session-info{max-width:min(220px,28vw)}
  .workspace-screen header .user-session-info b{max-width:min(220px,28vw);font-size:9px!important}
}
@media (max-width:1100px){
  .workspace-screen header #closeProjectBtn,
  .workspace-screen header #newProjectBtn{padding:0 5px}
  .workspace-screen header #recoverBtn{display:none}
}
@media (max-width:900px){
  .workspace-screen header .brand img{width:96px!important;max-height:24px!important}
  .workflow-nav.workflow-nav-compact .etapa-trigger{min-width:120px}
  .workspace-screen header #recoverBtn{display:none}
}

/* v1.38.0-dev.57-wr18 · etapas em linha + progresso por cor */
.workspace-screen header{
  height:62px!important;
  min-height:62px!important;
  padding:0 18px!important;
  grid-template-columns:minmax(130px,180px) minmax(0,1fr) auto!important;
  gap:12px!important;
}
.workspace-screen header .brand img{
  width:142px!important;
  max-height:34px!important;
}
.workflow-nav{
  display:flex!important;
  justify-content:center;
  align-items:center;
  gap:0;
  overflow-x:auto;
  overflow-y:hidden;
  min-width:0;
}
.workflow-nav .stage{
  position:relative;
  border:0;
  background:transparent;
  color:#a2a29b; /* por realizar */
  font-size:8px;
  padding:8px 12px;
  white-space:nowrap;
  cursor:pointer;
  transition:color .18s ease;
}
.workflow-nav .stage:not(:last-child):after{
  content:"";
  position:absolute;
  right:-7px;
  top:50%;
  width:14px;
  border-top:1px solid #e2e2dc;
}
.workflow-nav .stage i{
  font-style:normal;
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  border:1px solid #deded8;
  border-radius:50%;
  margin-right:6px;
  font-size:7px;
  background:transparent;
  color:inherit;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.workflow-nav .stage:hover{color:#6f6f69}
.workflow-nav .stage.is-complete{
  color:#2a2a28; /* completa · próximo do preto */
}
.workflow-nav .stage.is-complete i{
  background:#2a2a28;
  border-color:#2a2a28;
  color:#fff;
}
.workflow-nav .stage.active,
.workflow-nav .stage.os-active{
  color:#2a2a28;
}
.workflow-nav .stage.active i,
.workflow-nav .stage.os-active i{
  background:#2a2a28;
  border-color:#2a2a28;
  color:#fff;
}
/* disable compact etapa leftovers */
.workflow-nav .viewbar-eyebrow,
.workflow-nav #etapaPulldown,
.workflow-nav .etapa-panel{display:none!important}
@media (max-width:1250px){
  .workflow-nav .stage{padding:8px 8px}
}

/* Info pulldowns must not inherit .right section padding (clips Componente title). */
.information-center .info-pulldown,.right.information-center section.info-pulldown{padding:0!important;margin:0!important;overflow:visible!important}.information-center .component-card-pulldown.info-pulldown,.right.information-center .component-card-pulldown.info-pulldown{overflow:hidden!important;min-width:0!important}.information-center .info-pulldown-toggle{overflow:visible!important;line-height:1.3!important;padding-top:12px!important;padding-bottom:12px!important}.information-center .info-pulldown-toggle>span{line-height:1.3!important;overflow:visible!important}

/* wr154 · cotas de planta (só vista Planta) */
.plan-cota{pointer-events:none}
.plan-cota-line,.plan-cota-ext,.plan-cota-tick{fill:none;stroke:#1f2a24;stroke-width:1;vector-effect:non-scaling-stroke}
.plan-cota-ext{stroke-opacity:.55}
.plan-cota-tick{stroke-width:1.2}
.plan-cota-label{fill:#1f2a24;font:700 10px/1 "IBM Plex Sans",sans-serif;text-anchor:middle;paint-order:stroke;stroke:#f7f7f3;stroke-width:3px;stroke-linejoin:round}
.plan-cota.is-live .plan-cota-line,.plan-cota.is-live .plan-cota-tick{stroke:#166534}
.plan-cota.is-live .plan-cota-label{fill:#166534}
.plan-cota.is-preview .plan-cota-line,.plan-cota.is-preview .plan-cota-tick{stroke:#555;stroke-dasharray:3 2}
.plan-cota.is-preview .plan-cota-label{fill:#555}
#planCotasToggle[hidden]{display:none!important}

/* wr155 · cotas de afastamento entre componentes */
.plan-cota.is-clearance .plan-cota-line,.plan-cota.is-clearance .plan-cota-tick{stroke:#0f4c5c;stroke-width:1.25}
.plan-cota.is-clearance .plan-cota-ext{stroke:#0f4c5c;stroke-opacity:.45}
.plan-cota.is-clearance .plan-cota-label{fill:#0f4c5c;font-weight:700}
.plan-cota.is-self .plan-cota-line,.plan-cota.is-self .plan-cota-tick{stroke:#8a8a82;stroke-width:1;stroke-dasharray:2 2}
.plan-cota.is-self .plan-cota-label{fill:#6e6e66;font-weight:600;font-size:9px}

/* wr156 · decisão de sítio NORMA */
.site-viability-panel{margin:18px 0;padding:16px 18px;border:1px solid var(--line,#e4e4de);background:#fbfbf8}
.site-viability-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.site-viability-kpis>div{padding:10px 12px;background:#fff;border:1px solid #ecece6}
.site-viability-kpis span{display:block;font-size:9px;letter-spacing:.08em;color:#888;text-transform:uppercase}
.site-viability-kpis b{display:block;margin-top:4px;font-size:15px;color:#171714}
.site-viability-kpis small{display:block;margin-top:4px;font-size:10px;color:#777}
#siteViabilityDecision.is-go{color:#166534}
#siteViabilityDecision.is-conditional{color:#9a6700}
#siteViabilityDecision.is-nogo{color:#b42318}
#siteViabilityDecision.is-incomplete{color:#667085}
/* wr368 · chip decisão de sítio no project-block */
.ws-site-decision{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:8px;padding-top:8px;border-top:1px solid #efefe9}
.ws-site-decision[hidden]{display:none!important}
.ws-site-decision b{font-size:11px;letter-spacing:.06em;font-weight:650}
.ws-site-decision[data-code="GO"] b{color:#166534}
.ws-site-decision[data-code="CONDITIONAL"] b{color:#9a6700}
.ws-site-decision[data-code="NO_GO"] b{color:#b42318}
.ws-site-decision[data-code="INCOMPLETE"] b{color:#667085}
.ws-site-decision span{font-size:9px;color:#777;line-height:1.35;flex:1 1 8rem}
.ws-site-decision .text-btn{font-size:8.5px;letter-spacing:.04em;text-transform:uppercase;padding:0;border:0;background:transparent;color:#2f2f2b;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
/* wr369 · próximo elo Golden Thread */
.ws-fogo-thread{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 10px;margin-top:8px;padding-top:10px;border-top:1px solid #efefe9}
.ws-fogo-thread[hidden]{display:none!important}
.ws-fogo-thread>span:first-child{font-size:7.5px;letter-spacing:.1em;color:#8a8a82;font-weight:600;flex:0 0 100%;text-transform:uppercase}
.ws-fogo-thread>span:first-child i{font-style:normal;font-weight:650;color:#2f2f2b;letter-spacing:.04em;margin-left:.35em}
.ws-fogo-thread>b{font-size:11px;font-weight:600;color:#171714;line-height:1.35;flex:1 1 100%}
.ws-fogo-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.ws-fogo-actions .system-action{min-height:30px;padding:6px 10px;font-size:7.5px}
.ws-fogo-actions .system-mini-action{min-height:28px}
.ws-fogo-honest{flex:0 0 100%;font-size:9px;line-height:1.4;color:#666;margin:0}
.ws-fogo-honest{flex:1 1 100%;font-size:8.5px;line-height:1.4;color:#8a6a1a;margin:0}
.site-viability-rationale{font-size:12px;line-height:1.45;color:#444;margin:8px 0 12px}
.site-viability-actions-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.site-viability-envelope{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:12px}
.site-viability-envelope>div{padding:8px 10px;background:#fff;border:1px solid #ecece6}
.site-viability-envelope>div.is-confirmed{box-shadow:inset 3px 0 0 #2f6b3a}
.site-viability-envelope>div.is-unknown{box-shadow:inset 3px 0 0 #c4b28a}
.site-viability-envelope span{display:block;font-size:9px;color:#888;text-transform:uppercase;letter-spacing:.06em}
.site-viability-envelope b{display:block;margin-top:3px;font-size:12px}
.site-viability-envelope small{display:block;margin-top:2px;font-size:10px;color:#777}
.site-viability-next{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:900px){.site-viability-kpis{grid-template-columns:1fr 1fr}}

/* wr159 · design quantity feedback */
.project-summary-strip b[data-status="not-demonstrated"],.project-summary-strip b[data-status="not-generated"],.project-summary-strip b[data-status="unknown"],.project-summary-strip b[data-status="EMPTY"]{color:#93938d;font-weight:560}
.project-summary-strip b[data-status="CONDITIONAL"],.project-summary-strip b[data-site="CONDITIONAL"]{color:#8a6a1a}
.project-summary-strip b[data-status="NO_GO"],.project-summary-strip b[data-site="NO_GO"],.project-summary-strip b[data-status="BLOCKED"]{color:#a33}
.project-summary-strip b[data-status="GO"],.project-summary-strip b[data-site="GO"],.project-summary-strip b[data-status="FABRICABLE"]{color:var(--green)}
.project-summary-strip b[data-warn="true"]{color:#8a6a1a}

/* wr161 · sync BOM from strip */
.summary-bom-cell{gap:4px}
.summary-sync-bom{align-self:flex-start;margin-top:4px;border:1px solid #d0d0c8;background:#f7f7f3;color:#30302c;font-size:8px;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;cursor:pointer;border-radius:0}
.summary-sync-bom:hover{background:#efefe8;border-color:#bdbdb4}
.summary-sync-bom:disabled{opacity:.45;cursor:not-allowed}
.summary-sync-bom[data-busy="true"]{opacity:.7}

.summary-export-cell .summary-sync-bom{margin-top:4px}

/* wr164 · identidade honesta no splash/login */
.splash .build-identity,.auth-card>small{display:block;margin-top:10px;max-width:28rem;color:#7a7a74;font-size:9px;line-height:1.45;letter-spacing:.02em;text-align:center}
.splash .build-identity{margin:14px auto 0}
.auth-card>small br{display:block;content:''}

/* wr178 · language gate · mesmo quadro do splash + opções em linha */
.language-screen .language-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:1.75rem 2.25rem;margin:34px 0 0;padding:0;max-width:min(92vw,36rem)}
.language-option{appearance:none;-webkit-appearance:none;position:relative;display:inline-flex;align-items:baseline;gap:.4em;margin:0;padding:0 0 7px;border:0;background:transparent;box-shadow:none;border-radius:0;color:#8a8a82;cursor:pointer;font:inherit;line-height:1.2}
.language-option .language-code{font-size:11px;font-weight:600;letter-spacing:.1em}
.language-option .language-name{font-size:13px;font-weight:400;letter-spacing:.01em}
.language-option::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;background:currentColor;transform:translateX(-50%);transition:width .16s ease}
.language-option:hover{color:#6f6f68}
.language-option:hover::after{width:1.1em}
.language-option.active,.language-option[aria-pressed="true"]{color:#171714}
.language-option.active::after,.language-option[aria-pressed="true"]::after{width:1.1em}
.language-option:focus-visible{outline:1px solid #171714;outline-offset:4px}
.auth-card label>span{display:block;margin-bottom:4px}
@media(max-width:520px){.language-screen .language-row{gap:1.25rem 1.5rem}}

/* wr323 · file gate · pilha vertical ABRIR → lista → NOVO */
.file-gate-screen .file-gate-lead{margin:18px auto 0;max-width:min(92vw,28rem);color:#7a7a74;font-size:11px;line-height:1.45;letter-spacing:.01em;text-align:center}
.file-gate-screen.splash{overflow:visible}
.file-gate-stack{display:flex;flex-direction:column;align-items:center;gap:1.15rem;margin:34px auto 0;padding:0 0 2rem;width:min(92vw,22rem);overflow:visible}
.file-gate-stack .file-gate-choice{align-self:center}
.file-gate-stack .file-gate-choice .language-code{font-size:13px;font-weight:600;letter-spacing:.1em}
/* wr422 · nome centrado + lista na linguagem NORMA OS */
/* wr449 · lista em fluxo (não absolute) — o splash overflow cortava o painel */
.file-gate-recent{position:relative;width:100%;max-width:22rem;overflow:visible}
.file-gate-recent-line{
  appearance:none;-webkit-appearance:none;
  position:relative;display:flex;align-items:center;justify-content:center;
  width:100%;min-height:1.55em;margin:0;padding:0 1.4em 8px;
  border:0;border-bottom:1px solid #d8d8d0;border-radius:0;
  background:transparent;box-shadow:none;cursor:pointer;box-sizing:border-box;
  font:inherit;color:inherit;
}
.file-gate-recent-line:focus-visible{outline:1px solid #171714;outline-offset:3px}
.file-gate-recent.is-open .file-gate-recent-line{border-bottom-color:#171714}
.file-gate-recent-value{
  display:block;width:100%;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  text-align:center;
  color:#171714;font:400 12px/1.25 "IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  letter-spacing:.02em;pointer-events:none;
}
.file-gate-recent-value.is-empty{color:#8a8a82;letter-spacing:.04em}
.file-gate-chevron{
  position:absolute;right:0;top:50%;
  display:block;font:300 11px/1 "IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  color:#171714;transform:translateY(-65%) scaleX(1.35) scaleY(.85);
  transform-origin:center;pointer-events:none;user-select:none;
  transition:transform .16s ease;
}
.file-gate-recent.is-open .file-gate-chevron{transform:translateY(-35%) scaleX(1.35) scaleY(.85) rotate(180deg)}
.file-gate-recent-panel{
  position:static;left:auto;top:auto;z-index:8;
  width:100%;max-width:22rem;max-height:min(48vh,320px);overflow:auto;
  transform:none;
  margin:8px 0 0;padding:6px 0;
  border:1px solid #deded8;border-radius:0;
  background:#fff;
  box-shadow:none;
  scrollbar-width:thin;
}
.file-gate-recent-panel[hidden]{display:none!important}
.file-gate-recent-option{
  appearance:none;-webkit-appearance:none;
  display:grid;gap:3px;width:100%;margin:0;padding:10px 14px;
  border:0;border-radius:0;background:transparent;text-align:center;
  cursor:pointer;font:inherit;color:#171714;
}
.file-gate-recent-option:hover,
.file-gate-recent-option:focus-visible{
  background:#f7f7f3;outline:none;
}
.file-gate-recent-option.is-selected{background:#f2f2ee}
.file-gate-recent-option .fg-file-name{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:12px;font-weight:600;letter-spacing:.02em;color:#171714;
}
.file-gate-recent-option .fg-file-meta{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:9px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:#8a8a82;
}
.file-gate-recent-option.is-empty .fg-file-name,
.file-gate-recent-option.is-action .fg-file-name{
  font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:10px;color:#6f6f68;
}
.file-gate-recent-option.is-action{
  margin-top:4px;padding-top:12px;border-top:1px solid #ecece6;
}
.file-gate-recent-option.is-action .fg-file-name{color:#171714}
.file-gate-recent-option.is-missing .fg-file-name{color:#5a5a54}
.file-gate-recent-option.is-missing .fg-file-meta{color:#8a6a20}
.file-gate-msg{margin-top:18px;max-width:28rem;text-align:center}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:520px){.file-gate-stack{gap:1rem;width:min(94vw,20rem)}.file-gate-recent,.file-gate-recent-panel{max-width:20rem}}


/* wr180 · faixa resumo: última linha (Constr. / botões) deixava de se ver */
.workspace-grid main{
  grid-template-rows:44px minmax(120px,1fr) clamp(92px,17dvh,154px) minmax(72px,auto)!important;
}
.workspace-screen:has(#walkActionDock:not([hidden])) .workspace-grid main,
.workspace-screen:has(#rehearsalActionDock:not([hidden])) .workspace-grid main,
.workspace-screen[data-action-dock="walk"] .workspace-grid main,
.workspace-screen[data-action-dock="rehearse"] .workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) 178px minmax(72px,auto)!important;
}
@media(max-height:820px){
  .workspace-screen:has(#walkActionDock:not([hidden])) .workspace-grid main,
  .workspace-screen:has(#rehearsalActionDock:not([hidden])) .workspace-grid main,
  .workspace-screen[data-action-dock="walk"] .workspace-grid main,
  .workspace-screen[data-action-dock="rehearse"] .workspace-grid main{
    grid-template-rows:50px minmax(0,1fr) 178px minmax(86px,auto)!important;
  }
}
.project-summary-strip{
  min-height:72px!important;
  height:auto!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  align-items:stretch;
}
.project-summary-strip>div{
  justify-content:flex-start!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
  gap:0;
  min-width:0!important;
  overflow:hidden!important;
}
.project-summary-strip small{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#summaryConstructionHint{
  color:#6f6f68;
  font-weight:560;
}


/* wr181 · célula Implantação + Área de construção legível */
.summary-area-cell .summary-sublabel{display:block!important;margin-top:6px!important;font-size:7px!important;letter-spacing:.08em;text-transform:uppercase;color:#93938d;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.summary-area-cell .summary-construction{display:block!important;margin-top:2px!important;font-size:11px!important;font-weight:590;color:#171714;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* wr182 · faixa resumo: texto contido em cada célula */
.workspace-screen .project-summary-strip>div{
  min-width:0!important;
  overflow:hidden!important;
}
.workspace-screen .project-summary-strip span,
.workspace-screen .project-summary-strip b,
.workspace-screen .project-summary-strip small{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.workspace-screen .project-summary-strip .summary-sync-bom{
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* wr185 · Chassis: valor + tipologia na mesma linha; sem 3ª linha em Peças/Massa/Custo */
#workspace.workspace-screen .summary-chassis-cell .summary-value-row,
.project-summary-strip .summary-chassis-cell .summary-value-row{
  display:flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  gap:10px!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  margin-top:1px!important;
}
#workspace.workspace-screen .summary-chassis-cell .summary-value-row>b,
.project-summary-strip .summary-chassis-cell .summary-value-row>b{
  flex:0 0 auto!important;
  margin:0!important;
}
#workspace.workspace-screen .summary-chassis-cell .summary-value-row>small,
.project-summary-strip .summary-chassis-cell .summary-value-row>small{
  flex:1 1 auto!important;
  margin:0!important;
  min-width:0!important;
  color:#6f6f68!important;
  font-size:9px!important;
  font-weight:500!important;
  letter-spacing:.01em!important;
  text-transform:none!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* AVAC S1 · REH/SCE vocab / symbology */
.avac-reh-vocab{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.avac-reh-ref{display:grid;gap:3px;margin:0 0 10px}
.avac-reh-ref b{font-size:11px;line-height:1.3}
.avac-reh-ref small{color:#716f68;font-size:8px;line-height:1.4}
.avac-reh-roles{display:grid;gap:6px;margin-bottom:10px}
.avac-reh-role{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.avac-reh-role small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.06em}
.avac-reh-role b{font-size:10px}
.avac-reh-role span{color:#716f68;font-size:8px;line-height:1.35}
.avac-reh-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}
.avac-reh-symbol{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:center}
.avac-reh-symbol i{display:block;height:3px;background:var(--avac-stroke,#111)}
.avac-reh-symbol[data-kind="equipment"] i,.avac-reh-symbol[data-kind="terminal"] i,.avac-reh-symbol[data-kind="marker"] i{height:12px;border:1px solid var(--avac-stroke,#111);background:rgba(255,255,255,.9)}
.avac-reh-symbol span{font-size:8px;line-height:1.25}
.avac-reh-layout{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.avac-reh-findings{display:grid;gap:6px}
.avac-reh-finding{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.avac-reh-finding small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.05em}
.avac-reh-finding[data-status="open"] small,.avac-reh-finding[data-status="flag"] small{color:#8a4b2a}
.avac-reh-finding[data-status="ok"] small{color:#2f6b4f}
.avac-reh-finding b{font-size:10px}
.avac-reh-finding span{color:#716f68;font-size:8px;line-height:1.35}
.avac-reh-reception{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3;display:grid;gap:10px}
.avac-reception-form{margin:0;padding:8px 0;border-top:1px solid rgba(25,38,34,.1)}
.avac-reh-hold{display:grid;gap:2px;margin-bottom:6px}
.avac-reh-hold small{color:#8a4b2a;font-size:7px;font-weight:800;letter-spacing:.05em}
.avac-reh-hold[data-status="passed"] small,.avac-reh-hold[data-status="waived"] small{color:#2f6b4f}
.avac-reh-hold[data-status="failed"] small{color:#8a1f1f}
.avac-reh-hold[data-status="n/a"] small{color:#716f68}
.avac-reh-hold b{font-size:10px}
.avac-reh-hold span{color:#716f68;font-size:8px;line-height:1.35}
.avac-reh-hold.is-na,.avac-reception-form.is-na{opacity:.55}
.avac-schematic-preview{margin-top:10px;overflow:auto;border:1px solid rgba(25,38,34,.14);background:#fff}
.avac-schematic-preview svg{display:block;max-width:100%;height:auto}

/* EL S1 · RTIEBT / ITED vocab / symbology */
.el-rtiebt-vocab{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.el-rtiebt-ref{display:grid;gap:3px;margin:0 0 10px}
.el-rtiebt-ref b{font-size:11px;line-height:1.3}
.el-rtiebt-ref small{color:#716f68;font-size:8px;line-height:1.4}
.el-rtiebt-roles{display:grid;gap:6px;margin-bottom:10px}
.el-rtiebt-role{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.el-rtiebt-role small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.06em}
.el-rtiebt-role b{font-size:10px}
.el-rtiebt-role span{color:#716f68;font-size:8px;line-height:1.35}
.el-rtiebt-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}
.el-rtiebt-symbol{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:center}
.el-rtiebt-symbol i{display:block;height:3px;background:var(--el-stroke,#111)}
.el-rtiebt-symbol[data-kind="equipment"] i,.el-rtiebt-symbol[data-kind="terminal"] i,.el-rtiebt-symbol[data-kind="marker"] i{height:12px;border:1px solid var(--el-stroke,#111);background:rgba(255,255,255,.9)}
.el-rtiebt-symbol span{font-size:8px;line-height:1.25}
.el-rtiebt-layout{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.el-rtiebt-findings{display:grid;gap:6px}
.el-rtiebt-finding{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.el-rtiebt-finding small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.05em}
.el-rtiebt-finding[data-status="open"] small,.el-rtiebt-finding[data-status="flag"] small{color:#8a4b2a}
.el-rtiebt-finding[data-status="ok"] small{color:#2f6b4f}
.el-rtiebt-finding b{font-size:10px}
.el-rtiebt-finding span{color:#716f68;font-size:8px;line-height:1.35}
.el-ited-xray{margin-top:12px;padding:10px 12px;border:1px solid rgba(161,98,7,.28);background:#fffbeb}
.el-ited-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 10px}
.el-ited-symbol{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:center}
.el-ited-symbol i{display:block;height:3px;background:var(--el-stroke,#eab308)}
.el-ited-symbol span{font-size:8px;line-height:1.25}
.el-rtiebt-reception{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3;display:grid;gap:10px}
.el-reception-form{margin:0;padding:8px 0;border-top:1px solid rgba(25,38,34,.1)}
.el-rtiebt-hold{display:grid;gap:2px;margin-bottom:6px}
.el-rtiebt-hold small{color:#8a4b2a;font-size:7px;font-weight:800;letter-spacing:.05em}
.el-rtiebt-hold[data-status="passed"] small,.el-rtiebt-hold[data-status="waived"] small{color:#2f6b4f}
.el-rtiebt-hold[data-status="failed"] small{color:#8a1f1f}
.el-rtiebt-hold[data-status="n/a"] small{color:#716f68}
.el-rtiebt-hold b{font-size:10px}
.el-rtiebt-hold span{color:#716f68;font-size:8px;line-height:1.35}
.el-rtiebt-hold.is-na{opacity:.55}
.el-unifilar-preview{margin-top:10px;overflow:auto;border:1px solid rgba(25,38,34,.14);background:#fff}
.el-unifilar-preview svg{display:block;max-width:100%;height:auto}

/* HID S1 · LNEC vocab / symbology */
.hid-lnec-vocab{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.hid-lnec-ref{display:grid;gap:3px;margin:0 0 10px}
.hid-lnec-ref b{font-size:11px;line-height:1.3}
.hid-lnec-ref small{color:#716f68;font-size:8px;line-height:1.4}
.hid-lnec-roles{display:grid;gap:6px;margin-bottom:10px}
.hid-lnec-role{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.hid-lnec-role small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.06em}
.hid-lnec-role b{font-size:10px}
.hid-lnec-role span{color:#716f68;font-size:8px;line-height:1.35}
.hid-lnec-legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}
.hid-lnec-symbol{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:center}
.hid-lnec-symbol i{display:block;height:3px;background:var(--hid-stroke,#111)}
.hid-lnec-symbol[data-kind="equipment"] i,.hid-lnec-symbol[data-kind="terminal"] i,.hid-lnec-symbol[data-kind="marker"] i{height:12px;border:1px solid var(--hid-stroke,#111);background:rgba(255,255,255,.9)}
.hid-lnec-symbol span{font-size:8px;line-height:1.25}
.hid-lnec-layout{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3}
.hid-lnec-findings{display:grid;gap:6px}
.hid-lnec-finding{display:grid;gap:2px;padding:6px 0;border-top:1px solid rgba(25,38,34,.1)}
.hid-lnec-finding small{color:#315b50;font-size:7px;font-weight:800;letter-spacing:.05em}
.hid-lnec-finding[data-status="open"] small,.hid-lnec-finding[data-status="flag"] small{color:#8a4b2a}
.hid-lnec-finding[data-status="ok"] small{color:#2f6b4f}
.hid-lnec-finding b{font-size:10px}
.hid-lnec-finding span{color:#716f68;font-size:8px;line-height:1.35}
.hid-lnec-reception{margin-top:12px;padding:10px 12px;border:1px solid rgba(25,38,34,.16);background:#f7f7f3;display:grid;gap:10px}
.hid-reception-form{margin:0;padding:8px 0;border-top:1px solid rgba(25,38,34,.1)}
.hid-lnec-hold{display:grid;gap:2px;margin-bottom:6px}
.hid-lnec-hold small{color:#8a4b2a;font-size:7px;font-weight:800;letter-spacing:.05em}
.hid-lnec-hold[data-status="passed"] small,.hid-lnec-hold[data-status="waived"] small{color:#2f6b4f}
.hid-lnec-hold[data-status="failed"] small{color:#8a1f1f}
.hid-lnec-hold[data-status="n/a"] small{color:#716f68}
.hid-lnec-hold b{font-size:10px}
.hid-lnec-hold span{color:#716f68;font-size:8px;line-height:1.35}
.hid-lnec-hold.is-na{opacity:.55}
.hid-schematic-preview{margin-top:10px;overflow:auto;border:1px solid rgba(25,38,34,.14);background:#fff}
.hid-schematic-preview svg{display:block;max-width:100%;height:auto}

/* wr236 · Walk MEP overlay */
.walk-mep-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:stroke;opacity:.95}
.walk-mep-route.selected{stroke-width:3.5}
.walk-face.stage-mep-ref{stroke-opacity:.9}

/* wr240 · biblioteca PV/CB como paredes · selecção a caixa toda · resumo mais baixo */
/* wr246 · designações e medidas alinhadas em duas linhas longitudinais */
/* wr247 · entrelinhamento designação ↔ dimensão mais apertado */
#moduleLibraryStrip.module-library-strip{
  display:grid!important;
  grid-template-columns:repeat(8,minmax(0,1fr))!important;
  align-items:stretch!important;
}
#moduleLibraryStrip .library-module{
  display:grid!important;
  grid-template-rows:36px 2.35em 2.2em!important;
  justify-items:center!important;
  align-items:stretch!important;
  gap:3px 0!important;
  row-gap:3px!important;
  min-height:0!important;
  height:100%!important;
  padding:10px 8px 8px!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
#moduleLibraryStrip .library-module .lib-icon{
  grid-row:1!important;
  align-self:center!important;
  justify-self:center!important;
  flex:none!important;
  margin:0 auto!important;
  height:34px!important;
  max-height:34px!important;
  background:transparent!important;
}
#moduleLibraryStrip .library-module span{
  display:contents!important;
}
#moduleLibraryStrip .library-module b{
  grid-row:2!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  width:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0 2px!important;
  font-size:8px!important;
  line-height:1.2!important;
  text-align:center!important;
  background:transparent!important;
  box-sizing:border-box!important;
}
#moduleLibraryStrip .library-module small{
  grid-row:3!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  width:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0 2px!important;
  font-size:6.8px!important;
  line-height:1.25!important;
  text-align:center!important;
  color:#8a8a84!important;
  background:transparent!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  box-sizing:border-box!important;
}
/* wr245 · sem ícone de lock na Biblioteca de Módulos */
#moduleLibraryStrip .library-lock{display:none!important}
#moduleLibraryStrip .library-module.active,
#moduleLibraryStrip .library-module.active:hover{
  background:#ecece8!important;
  color:#111!important;
  box-shadow:inset 0 2px #111!important;
  border-color:#b8b8b1!important;
}
#moduleLibraryStrip .library-module.active .lib-icon,
#moduleLibraryStrip .library-module.active span,
#moduleLibraryStrip .library-module.active b,
#moduleLibraryStrip .library-module.active small{
  background:transparent!important;
}
/* fecho: mesmo idioma visual, mais estreito (como parede de fecho) */
.lib-icon.floor.floor-fecho{width:20px!important}
.lib-icon.roof.roof-fecho{width:18px!important;margin-left:auto;margin-right:auto}

/* faixa Implantação / resumo tipológico · altura reduzida */
#workspace.workspace-screen .project-summary-strip{
  min-height:0!important;
  height:auto!important;
  max-height:52px!important;
}
#workspace.workspace-screen .project-summary-strip>div{
  padding-top:5px!important;
  padding-bottom:5px!important;
}
.workspace-screen[data-action-dock="model"] .workspace-grid main{
  grid-template-rows:50px minmax(0,1fr) auto minmax(48px,auto)!important;
}


/* wr255 · stage-hud-dock media · sempre topo-direita · grelha 4 cols */
@media(max-width:980px){
  .stage-hud-dock{width:min(560px,calc(100% - 20px))!important;right:10px!important;left:auto!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .stage-hud-dock{top:8px!important;right:8px!important;left:auto!important;width:min(100% - 16px,520px)!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .stage-hud-toggle span{font-size:7px!important;letter-spacing:.04em!important}
}
@media(max-width:520px){
  .stage-hud-dock{left:auto!important;right:6px!important;width:calc(100% - 12px)!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
}

/* wr255 · Build · Rehearse · coluna esquerda · tipografia NORMA OS + pack dentro do quadro */
.rehearsal-tool-zone,
.rehearsal-tool-zone .rehearsal-console{
  min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important
}
.rehearsal-tool-zone .rehearsal-console>header{
  align-items:flex-start!important;gap:10px!important;padding:12px 12px 10px!important
}
.rehearsal-tool-zone .rehearsal-console>header span{
  font-size:7px!important;font-weight:650!important;letter-spacing:.08em!important;line-height:1.35!important;
  color:var(--muted,#777770)!important;text-transform:uppercase!important
}
.rehearsal-tool-zone .rehearsal-console>header b{
  margin-top:4px!important;font-size:12px!important;font-weight:560!important;letter-spacing:-.01em!important;
  line-height:1.3!important;overflow-wrap:anywhere!important
}
.rehearsal-tool-zone .rehearsal-console>header em{
  flex:0 0 auto;max-width:42%;padding:5px 7px!important;font-size:7px!important;font-weight:650!important;
  letter-spacing:.04em!important;line-height:1.25!important;text-align:center;overflow-wrap:anywhere;white-space:normal!important
}
.rehearsal-tool-zone .rehearsal-current{
  margin:0 10px 10px!important;padding:11px!important;min-width:0!important;max-width:100%!important;
  overflow:hidden!important;box-sizing:border-box!important;border-left:3px solid #ad742f;background:#f5f5f0
}
.rehearsal-tool-zone .rehearsal-current header{gap:8px;align-items:flex-start!important}
.rehearsal-tool-zone .rehearsal-current header span,
.rehearsal-tool-zone .rehearsal-current header em{
  font-size:7px!important;letter-spacing:.06em!important;line-height:1.35!important;overflow-wrap:anywhere!important;white-space:normal!important
}
.rehearsal-tool-zone .rehearsal-current h3{
  margin:7px 0 4px!important;font-size:13px!important;font-weight:560!important;letter-spacing:-.015em!important;
  line-height:1.3!important;overflow-wrap:anywhere!important
}
.rehearsal-tool-zone .rehearsal-current p,
.rehearsal-tool-zone .rehearsal-current small,
.rehearsal-tool-zone .rehearsal-current li{
  font-size:8px!important;line-height:1.45!important;letter-spacing:0!important;overflow-wrap:anywhere!important
}
.rehearsal-tool-zone .rehearsal-current ul{margin:8px 0;padding-left:15px}
.rehearsal-tool-zone .stage-visual-ref-actions,
.rehearsal-tool-zone .rehearsal-comm-pack{
  display:grid!important;gap:6px!important;margin-top:10px!important;min-width:0!important;max-width:100%!important
}
.rehearsal-tool-zone .stage-visual-ref-actions button,
.rehearsal-tool-zone #rehearsalCommunicationPackBtn{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  height:auto!important;min-height:32px!important;padding:8px 10px!important;
  white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;
  font:650 8px/1.3 inherit!important;letter-spacing:.03em!important;text-transform:none!important;
  border:1px solid rgba(25,38,34,.2)!important;background:#e9e8e0!important;color:#315b50!important;cursor:pointer
}
.rehearsal-tool-zone .rehearsal-evidence>header span,
.rehearsal-tool-zone .rehearsal-dependencies>span,
.rehearsal-tool-zone .rehearsal-production>header span,
.rehearsal-tool-zone .assembly-map-head span{
  font-size:7px!important;font-weight:650!important;letter-spacing:.08em!important;line-height:1.35!important;text-transform:uppercase!important
}
.rehearsal-tool-zone .rehearsal-disclosure{
  font-size:7px!important;line-height:1.45!important;letter-spacing:0!important;overflow-wrap:anywhere!important
}
.factory-tool-zone .factory-context-tools,
.site-tool-zone .site-context-tools{min-width:0;max-width:100%;overflow-x:hidden;box-sizing:border-box}
.factory-tool-zone .factory-context-tools>header span,
.site-tool-zone .site-context-tools>header span{
  font-size:7px!important;font-weight:650!important;letter-spacing:.08em!important;line-height:1.35!important;text-transform:uppercase!important
}
.factory-tool-zone .factory-context-tools>header b,
.site-tool-zone .site-context-tools>header b{
  font-size:12px!important;font-weight:560!important;letter-spacing:-.01em!important;line-height:1.3!important;overflow-wrap:anywhere!important
}

/* wr256 · Cadeia NORMA · Validate + Issues no IC Build */
.chain-hardening-panel{margin:0 0 12px;padding:0 0 10px;border:1px solid var(--line);background:var(--paper);min-width:0}
.chain-hardening-panel>.space-editor-head{padding:10px 12px;margin:0;border-bottom:1px solid var(--line)}
.chain-hardening-panel>.drawing-language-note,.chain-hardening-panel>.chain-next,.chain-hardening-panel>.info-empty,.chain-hardening-panel>.product-sheet-disclaimer{padding:8px 12px;margin:0}
.chain-overall.ready{color:#2b5748}.chain-overall.blocked{color:#a43f36}.chain-overall.indeterminate{color:#9b6324}
.chain-phase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 12px;min-width:0}
.chain-phase{display:grid;gap:2px;min-width:0;padding:8px;border:1px solid var(--line);background:#fff}
.chain-phase.ready{border-left:3px solid #2b5748}.chain-phase.blocked{border-left:3px solid #a43f36}.chain-phase.indeterminate{border-left:3px solid #9b6324}
.chain-phase small{font-size:7px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.3}
.chain-phase b{font-size:10px;line-height:1.25}.chain-phase span{font-size:7px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.chain-next{display:block;font-size:7px;color:var(--muted);line-height:1.4}
.chain-issue-list{display:grid;gap:5px;padding:0 12px 8px}
.chain-issue-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:start;padding:8px;border:1px solid var(--line);background:#fff;min-width:0}
.chain-issue-row>div{display:grid;gap:2px;min-width:0}
.chain-issue-row small{font-size:7px;color:var(--muted);overflow-wrap:anywhere;line-height:1.35}
.chain-issue-row b{font-size:9px;line-height:1.3;overflow-wrap:anywhere}
.chain-issue-row em{font-size:7px;font-style:normal;text-transform:uppercase}
.chain-issue-form{margin:8px 12px 0!important;padding:10px!important;border:1px solid var(--line)!important}
@media(max-width:620px){.chain-phase-grid{grid-template-columns:1fr}}

/* wr313 · Biblioteca local de projectos */
/* wr314 · Detalhe 3D · botão na viewbar-camera (Auto/Massa/Peças) */
/* wr315 · cache geometria órbita Iso/Walk */
.project-library-dialog{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px}
.project-library-dialog[hidden]{display:none!important}
.project-library-backdrop{position:absolute;inset:0;background:rgba(20,22,24,.42)}
.project-library-card{position:relative;z-index:1;width:min(720px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column;background:#f7f7f3;border:1px solid #111;box-shadow:0 18px 48px rgba(0,0,0,.18)}
.project-library-head{display:flex;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #d8d8d2}
.project-library-head span{display:block;font-size:9px;letter-spacing:.08em;color:#777;text-transform:uppercase}
.project-library-head h2{margin:4px 0 2px;font-size:18px;font-weight:700}
.project-library-head p{margin:0;font-size:11px;color:#666}
.project-library-head button{width:32px;height:32px;border:1px solid #111;background:#fff;font-size:18px;line-height:1;cursor:pointer}
.project-library-list{overflow:auto;padding:12px 18px;display:grid;gap:8px;min-height:160px}
.project-library-empty{margin:18px 0;font-size:12px;color:#555;line-height:1.45}
.project-library-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px;border:1px solid #d8d8d2;background:#fff}
.project-library-row b{display:block;font-size:13px}
.project-library-row small,.project-library-row em{display:block;font-size:11px;color:#666;font-style:normal;margin-top:2px}
.project-library-row-side{display:grid;gap:6px;justify-items:end;min-width:140px}
.project-library-row-side span{font-size:10px;color:#777}
.project-library-row-side button{border:1px solid #111;background:#111;color:#fff;padding:5px 10px;font-size:11px;cursor:pointer}
.project-library-row-side button.ghost{background:#fff;color:#111}
.project-library-foot{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;border-top:1px solid #d8d8d2}
.project-library-foot button{border:1px solid #111;background:#fff;padding:7px 12px;font-size:11px;cursor:pointer}
.project-library-foot button.ghost{border-color:#bbb;color:#555}


/* wr341 · Planta: preencher o canvas como o iso-scene (senão height:100% = 0px
   enquanto emptyState absoluto é o único filho com caixa; ao colocar o 1.º chassis
   o desenho usava escala do canvas mas o SVG tinha 0×0 — só aparecia após ir ao 3D). */
#planSvg.plan-svg,
.canvas > .plan-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
}
#planSvg.plan-svg.active{display:block}
.canvas > .empty{z-index:3;pointer-events:none}
.canvas > .iso-scene{z-index:2}


/* wr342/wr343 · Planta: fill legível; chassis com stroke fino de novo */
#planSvg.plan-svg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:5!important;
  overflow:visible!important;
}
#planSvg.plan-svg.active{display:block!important}
.canvas > .empty{z-index:4;pointer-events:none}
.canvas > .iso-scene{z-index:2}
#planSvg .module-outline,
#planSvg .module-selected{
  fill:rgba(247,247,243,.10)!important;
  stroke:#171714!important;
  stroke-width:1.05!important;
  opacity:1!important;
}
#planSvg .module-selected{
  fill:rgba(230,230,224,.16)!important;
  stroke:#111!important;
  stroke-width:1.35!important;
}
#planSvg .block-shape{
  opacity:1!important;
}
#planSvg .block-shape.exterior,
#planSvg .block-shape.closure{
  fill:rgba(72,78,68,.72)!important;
  stroke:#2c322c!important;
  stroke-width:1.15!important;
}
#planSvg .block-shape.floor,
#planSvg .block-shape.floorFecho{
  fill:rgba(90,120,70,.55)!important;
  stroke:#3d5a32!important;
  stroke-width:1.15!important;
}
#planSvg .block-shape.interior{
  fill:rgba(140,134,118,.62)!important;
  stroke:#4a463c!important;
  stroke-width:1!important;
}
#planSvg .block-shape.roof,
#planSvg .block-shape.roofFecho{
  fill:rgba(100,118,132,.55)!important;
  stroke:#3a4a58!important;
  stroke-width:1.15!important;
}

/* wr399 · flyover: geometria existente não captura o pointer */
#planSvg.placing-element .module-outline,
#planSvg.placing-element .module-selected,
#planSvg.placing-element .block-shape,
#planSvg.placing-element .wall-body{
  pointer-events:none!important;
}
#planSvg .block-preview.invalid{
  fill:rgba(80,80,74,.14)!important;
  stroke:#333!important;
  stroke-width:1.7!important;
  stroke-dasharray:6 4!important;
}
#planSvg .block-preview.valid{
  fill:rgba(46,125,50,.32)!important;
  stroke:#1b5e20!important;
  stroke-width:1.6!important;
  stroke-dasharray:7 4!important;
}
#planSvg .block-corner-node{
  pointer-events:none;
  fill:#222;
  stroke:#fff;
  stroke-width:1;
}
#planSvg .block-corner-node.valid{fill:#1b5e20}
#planSvg .block-corner-node.invalid{fill:#444}
#planSvg .chassis-preview.valid{
  fill:rgba(46,125,50,.22)!important;
  stroke:#1b5e20!important;
  stroke-width:2!important;
  stroke-dasharray:7 4!important;
}
#planSvg .chassis-preview.invalid{
  fill:rgba(40,40,36,.1)!important;
  stroke:#333!important;
  stroke-width:1.8!important;
  stroke-dasharray:6 4!important;
}
#planSvg .chassis-corner-node{
  fill:#111;
  stroke:#fff;
  stroke-width:1.2;
  pointer-events:none;
}
#planSvg .chassis-corner-node.valid{fill:#1b5e20}
#planSvg .chassis-corner-node.invalid{fill:#222}


/* wr344 · Confronto planning vs bases do projecto (alerta ≠ validação) */
.planning-confrontation-summary{margin:10px 0 0;padding:10px 12px;border:1px solid #c9b48a;background:#fbf7ef;display:flex;flex-direction:column;gap:4px}
.planning-confrontation-summary[hidden]{display:none!important}
.planning-confrontation-summary b{font-size:11px;color:#3a3428}
.planning-confrontation-summary span{font-size:10px;color:#6a6458;line-height:1.4}
.planning-confrontation{margin-top:6px;padding:6px 8px;border:1px solid #ddd;background:#fafaf8;display:grid;gap:2px}
.planning-confrontation b{font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.planning-confrontation small{font-size:10px;color:#333}
.planning-confrontation span{font-size:9px;color:#666;line-height:1.35}
.planning-confrontation.pc-alert{border-color:#a84d43;background:#fbf4f3}
.planning-confrontation.pc-alert b{color:#a84d43}
.planning-confrontation.pc-warn{border-color:#ad742f;background:#fbf7f0}
.planning-confrontation.pc-warn b{color:#8a5a20}
.planning-confrontation.pc-info{border-color:#5f7f62;background:#f4f7f4}
.planning-confrontation.pc-info b{color:#3d5a40}
.planning-confrontation.pc-neutral{border-color:#ccc;background:#f7f7f3}
.planning-rule-row.has-pc-alert{box-shadow:inset 3px 0 0 #a84d43}
.planning-rule-row.has-pc-warn{box-shadow:inset 3px 0 0 #ad742f}
/* wr345 · Corpus PDM do projecto (B-lite) */
.planning-corpus-panel{margin-top:12px;border:1px solid var(--line);padding:14px;background:#fff}
.planning-corpus-panel>.section-title{margin:0 0 12px}
.planning-corpus-form{display:grid;gap:10px}
.planning-corpus-form label{display:block;font-size:9px;color:#666}
.planning-corpus-form input,.planning-corpus-form select,.planning-corpus-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;padding:9px;font:inherit;font-size:10px;color:#171714}
.planning-corpus-list{margin-top:12px;display:grid;gap:8px}
.planning-corpus-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);padding:10px 12px;background:#fafaf8}
.planning-corpus-row>div:first-child{display:grid;gap:4px;min-width:0}
.planning-corpus-row b{font-size:12px}
.planning-corpus-row small{font-size:10px;color:#666}
.planning-corpus-row .confidence-badge{justify-self:start}
/* wr346 · Conectores locais (geoportal municipal + CCDR) */
.territorial-connectors-panel{margin:12px 0 0;border:1px solid var(--line);padding:14px;background:#fff}
.territorial-connectors-panel>.section-title{margin:0 0 12px}
.territorial-connectors-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
.territorial-connectors-grid>section{border:1px solid var(--line);padding:12px;background:#fafaf8;display:flex;flex-direction:column;gap:10px}
.territorial-connector-head{display:flex;justify-content:space-between;gap:8px;align-items:center}
.territorial-connector-head h3{margin:0;font-size:9px;letter-spacing:.09em;text-transform:uppercase}
.territorial-connectors-grid label{display:block;font-size:9px;color:#666}
.territorial-connectors-grid input,.territorial-connectors-grid select{width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;padding:9px;font:inherit;font-size:10px;color:#171714}
/* wr354 · Guardar / Limpar / Abrir idênticos nos dois cartões (CCDR: Sugerir à parte) */
.territorial-connector-suggest{display:flex;gap:8px}
.territorial-connector-suggest .system-action{flex:1 1 auto;min-height:34px}
.territorial-connector-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-top:auto;padding-top:2px}
/* wr359 · Abrir (= <a>) com a mesma tipografia que Guardar/Limpar */
.territorial-connector-actions .system-action,
.territorial-connector-actions a.system-action{
  flex:1 1 0;min-width:0;min-height:34px;display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;text-decoration:none;text-align:center;
  padding:8px 12px!important;
  font:inherit!important;
  font-size:8px!important;
  font-weight:520!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  line-height:1.2!important
}
/* wr355 · Abrir sempre visível; sem URL só desactivado (não esconder) */
.territorial-connector-actions a.system-action.is-disabled,
.territorial-connector-actions a.system-action[aria-disabled="true"]{
  opacity:.42;cursor:not-allowed;pointer-events:none;background:#fff;color:#171714
}
/* wr359 · seleção validada → Guardar cinzento (indicador persistente) */
.territorial-connector-actions .system-action.is-saved,
.territorial-connector-actions .primary-system-action.is-saved{
  background:#9a9a94!important;border-color:#9a9a94!important;color:#fff!important
}
.territorial-connector-actions .system-action.is-saved:hover,
.territorial-connector-actions .primary-system-action.is-saved:hover{
  background:#85857f!important;border-color:#85857f!important;color:#fff!important
}
#territorialConnectorsMsg.msg{color:var(--muted)}
#territorialConnectorsMsg.msg.is-error{color:var(--red)}
#territorialConnectorsMsg.msg.is-ok{color:#2f6b3a}
#territorialConnectorsMsg.msg.is-info{color:#555}
@media (max-width:900px){.territorial-connectors-grid{grid-template-columns:1fr}}
/* wr347 · Funil Informações Preliminares · hierarquia Recolher → Avaliar → Completar */
.sa-canon-rules{margin:18px 0 0;border:1px solid var(--line);background:#f7f7f3}
.sa-canon-rules-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line)}
.sa-canon-rules-head span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#171714;font-weight:700}
.sa-canon-rules-head small{font-size:9px;color:#777}
.sa-canon-rules-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.sa-canon-rules-list li{padding:12px 14px;border-right:1px solid var(--line);display:grid;gap:6px}
.sa-canon-rules-list li:last-child{border-right:0}
.sa-canon-rules-list b{font-size:10px;line-height:1.35;color:#171714}
.sa-canon-rules-list span{font-size:9px;line-height:1.45;color:#666}
.sa-funnel-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0 0;border:1px solid var(--line);background:#fff}
.sa-funnel-step{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center;padding:14px 16px;border:0;border-right:1px solid var(--line);background:#fff;text-align:left;cursor:pointer;font:inherit;color:#555}
.sa-funnel-step:last-child{border-right:0}
.sa-funnel-step i{grid-row:1 / span 2;font-style:normal;font-size:11px;letter-spacing:.08em;color:#999}
.sa-funnel-step span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#171714}
.sa-funnel-step small{grid-column:2;font-size:9px;color:#888;line-height:1.35}
.sa-funnel-step:hover{background:#f3f3ef}
.sa-funnel-step.is-active{background:#171714;color:#fff}
.sa-funnel-step.is-active i,.sa-funnel-step.is-active span,.sa-funnel-step.is-active small{color:#fff}
.sa-funnel-step.is-done:not(.is-active){background:#f7f7f3}
.sa-funnel-step.is-done:not(.is-active) i{color:#171714}

/* wr507 · progresso = estado (não segundo menu); funnel permanece a navegação */
.sa-progress-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border:1px solid var(--line);border-top:0;background:#fafaf8}
.sa-progress-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:10px 14px;border-right:1px solid var(--line)}
.sa-progress-cell:last-child{border-right:0}
.sa-progress-cell span{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-progress-cell b{font-size:11px;color:#171714;font-weight:600}
.sa-progress-cell.is-ready{background:#f3f8f4}
.sa-progress-cell.is-ready b{color:#2f6b3a}
.sa-progress-cell.is-open{background:#fbf7ee}
.sa-progress-cell.is-open b{color:#8a6a20}
.sa-canon-details{margin:14px 0 0}
.sa-canon-details .sa-canon-rules{margin:0;border:0;border-top:0;background:#fff}
.sa-canon-details .sa-canon-rules-list{grid-template-columns:repeat(4,minmax(0,1fr))}
.sa-stage-gate-next{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;padding-top:12px;border-top:1px solid #e4e4de}
.sa-stage-gate-next>span{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-stage-gate-next>b{flex:1 1 160px;font-size:12px;font-weight:600;color:#171714;line-height:1.4}
.sa-stage-gate-next .system-action{margin-left:auto}
/* wr554 · cruzamento DGT no ponto · wr555 overlay parcela */
.sa-dgt-spatial-cross{margin:0 0 14px;padding:10px 12px;border:1px solid #d8d8d2;background:#f7f8f5}
.sa-dgt-spatial-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sa-dgt-spatial-head>span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.sa-dgt-spatial-head>b{font-size:11px;color:#2f4a3a}
.sa-dgt-spatial-status{margin:6px 0 8px;font-size:12px;line-height:1.4;color:#444}
.sa-dgt-spatial-list{margin:0 0 8px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
.sa-dgt-spatial-list li{padding:7px 8px;border:1px solid #ecece7;background:#fff}
.sa-dgt-spatial-list b{display:block;font-size:11px;color:#171714}
.sa-dgt-spatial-list span{display:block;margin-top:2px;font-size:10px;color:#666}
.sa-dgt-spatial-list li.is-found{border-color:#2f6b3a;box-shadow:inset 2px 0 0 #2f6b3a}
.sa-dgt-spatial-list li.is-clear{border-color:#b8c4b0}
.sa-dgt-spatial-list li.is-pending{opacity:.85}
.sa-dgt-spatial-list li.is-other{border-color:#cfcfc9}
.sa-dgt-spatial-head>b.is-parcel{color:#2f6b3a}
.sa-dgt-spatial-honesty{margin:0;font-size:11px;line-height:1.4;color:#777}
/* wr602 · envolvente OSM tipológica (Recolher · read-only) */
.sa-osm-envelope{margin:0 0 18px;padding:12px 14px;border:1px solid #d8d8d2;background:#f7f8f5}
.sa-osm-envelope-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.sa-osm-envelope-head>span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.sa-osm-envelope-head>b{font-size:11px;color:#3a4658}
.sa-osm-envelope-head>b.is-ready{color:#2f6b3a}
.sa-osm-envelope-head>b.is-blocked,.sa-osm-envelope-head>b.is-error{color:#8a5b32}
.sa-osm-envelope-status{margin:6px 0 10px;font-size:12px;line-height:1.4;color:#444}
.sa-osm-envelope-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.sa-osm-radius{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#555}
.sa-osm-radius select{min-width:88px;padding:6px 8px;border:1px solid #d0d0ca;background:#fff;font:inherit}
.sa-osm-envelope-map{margin:0 0 10px;border:1px solid #e3e3dd;background:#fafaf7;min-height:160px}
.sa-osm-envelope-map svg{display:block;width:100%;height:auto;max-height:280px}
.sa-osm-envelope-kpis{margin:0 0 8px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px}
.sa-osm-envelope-kpis li{padding:7px 8px;border:1px solid #ecece7;background:#fff}
.sa-osm-envelope-kpis b{display:block;font-size:12px;color:#171714}
.sa-osm-envelope-kpis span{display:block;margin-top:2px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#777}
.sa-osm-envelope-honesty{margin:0;font-size:11px;line-height:1.4;color:#777}
/* wr619 · ponte OSM ↔ Walk (read-only · tipológico · sem georref inventada) */
.walk-osm-bridge{display:grid;gap:8px;padding:12px;border-top:1px solid #e3e3dd;background:#f7f8f5}
.walk-osm-bridge>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.walk-osm-bridge>header>div{display:grid;gap:2px}
.walk-osm-bridge>header span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#888;font-weight:700}
.walk-osm-bridge>header b{font-size:12px;color:#171714}
.walk-osm-bridge>header em{font-style:normal;font-size:10px;font-weight:700;color:#6f665d;padding:2px 6px;border:1px solid #e0e0da;background:#fff}
.walk-osm-bridge[data-gate="ready"]>header em{color:#2f6b3a;border-color:#c5d9c8}
.walk-osm-bridge[data-gate="stale"]>header em,.walk-osm-bridge[data-gate="error"]>header em,.walk-osm-bridge[data-gate="blocked"]>header em{color:#8a5b32;border-color:#e2d4c4}
.walk-osm-bridge-detail{margin:0;font-size:11px;line-height:1.4;color:#555}
.walk-osm-bridge-map{border:1px solid #e3e3dd;background:#fafaf7;min-height:100px}
.walk-osm-bridge-map[hidden]{display:none!important}
.walk-osm-bridge-map svg{display:block;width:100%;height:auto;max-height:160px}
.walk-osm-bridge-kpis{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.walk-osm-bridge-kpis[hidden]{display:none!important}
.walk-osm-bridge-kpis li{padding:6px 7px;border:1px solid #ecece7;background:#fff}
.walk-osm-bridge-kpis b{display:block;font-size:11px;color:#171714}
.walk-osm-bridge-kpis span{display:block;margin-top:2px;font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:#777}
.walk-osm-bridge-actions{display:flex;flex-wrap:wrap;gap:6px}
.walk-osm-bridge-actions button{min-height:30px;padding:6px 10px;border:1px solid #cfcfc9;background:#fff;color:#333;font:inherit;font-size:11px;cursor:pointer}
.walk-osm-bridge-actions button:hover{border-color:#171714}
.walk-osm-bridge-honesty{margin:0;font-size:10px;line-height:1.35;color:#777}
.walk-osm-agora{display:grid;gap:2px;padding:8px 12px;border-bottom:1px solid rgba(60,42,28,.13);background:rgba(247,248,245,.9)}
.walk-osm-agora span{font-size:8px;font-weight:780;letter-spacing:.04em;color:#3a4658}
.walk-osm-agora small{font-size:6.5px;line-height:1.35;color:#736a62}
.walk-osm-agora[data-gate="ready"] span{color:#2f6b3a}
.walk-osm-agora[data-gate="stale"] span,.walk-osm-agora[data-gate="error"] span{color:#8a5b32}
/* wr559 · handoff Avaliar → Completar */
.sa-avaliar-handoff{margin:0 0 14px;padding:10px 12px;border:1px solid #d8d8d2;background:#f7f8f5}
.sa-avaliar-handoff-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sa-avaliar-handoff-head>span{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.sa-avaliar-handoff-head>b{font-size:11px;color:#2f4a3a}
.sa-avaliar-handoff-status{margin:6px 0 8px;font-size:12px;line-height:1.4;color:#444}
.sa-avaliar-handoff-list{margin:0 0 8px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
.sa-avaliar-handoff-list li{padding:7px 8px;border:1px solid #ecece7;background:#fff}
.sa-avaliar-handoff-list b{display:block;font-size:11px;color:#171714}
.sa-avaliar-handoff-list span{display:block;margin-top:2px;font-size:10px;color:#666}
.sa-avaliar-handoff-honesty{margin:0;font-size:11px;line-height:1.4;color:#777}
.sa-collect-order{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:#fff}
.sa-collect-order li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-right:1px solid var(--line);color:#888}
.sa-collect-order li:last-child{border-right:0}
.sa-collect-order li span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #cfcfc9;background:#fff;font-size:10px;letter-spacing:.04em;color:#888;flex-shrink:0}
.sa-collect-order li b{font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:#888}
.sa-collect-order li.is-current{background:#171714;color:#fff}
.sa-collect-order li.is-current span{border-color:#fff;background:#171714;color:#fff}
.sa-collect-order li.is-current b{color:#fff}
.sa-collect-order li.is-done{background:#f3f8f4;color:#2f6b3a}
.sa-collect-order li.is-done span{border-color:#2f6b3a;color:#2f6b3a}
.sa-collect-order li.is-done b{color:#2f6b3a}
.sa-collect-order li.is-todo{background:#fafaf8}
.sa-collect-path{display:flex;flex-direction:column;gap:0}

/* wr508 · regras-chave + fecho Completar */
.sa-key-rules{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-key-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.sa-key-rule-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 10px;align-items:start;padding:12px 12px;border:1px solid #dedede;background:#fafaf8}
.sa-key-rule-card.is-ok{box-shadow:inset 3px 0 0 #2f6b3a;border-color:#2f6b3a}
.sa-key-rule-card.is-candidate{box-shadow:inset 3px 0 0 #5a7a9a;border-color:#5a7a9a}
.sa-key-rule-card.is-missing{box-shadow:inset 3px 0 0 #c4b28a;border-color:#c4b28a}
.sa-key-rule-card b{display:block;font-size:12px;color:#171714}
.sa-key-rule-card small{display:block;margin-top:4px;font-size:11px;color:#666;line-height:1.35}
.sa-key-rule-card em{font-style:normal;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#666;padding-top:2px}
.sa-key-rule-card.is-ok em{color:#2f6b3a}
.sa-key-rule-card.is-candidate em{color:#3d5a73}
.sa-key-rule-card.is-missing em{color:#8a6a20}
.sa-key-rule-card .system-mini-action{grid-column:1 / -1;justify-self:start;margin-top:4px}
.sa-key-mark{font-size:12px;color:#888;padding-top:2px}
.sa-key-rules-status{margin:0;font-size:12px;line-height:1.45;color:#555}
.sa-complete-hero{border-color:#171714;background:#f7f7f3}
.sa-complete-hero .section-title span{letter-spacing:.08em}
.sa-complete-close{margin:18px 0 0;padding:14px 12px;border:1px solid #171714;background:#171714;color:#fff}
.sa-complete-close-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 8px}
.sa-complete-close-head>span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#bdbdb7}
.sa-complete-close-mark{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border:1px solid #5a5a54;background:#2a2a26;color:#ddd}
.sa-complete-close-mark.is-ready{border-color:#6fbf7a;color:#b8e0be;background:#1e3322}
.sa-complete-close-mark.is-partial{border-color:#c4b28a;color:#e8d9b0;background:#332a1a}
.sa-complete-close-mark.is-open{border-color:#6a6a64;color:#bbb}
.sa-complete-close-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#d8d8d2}
.sa-complete-close-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #3a3a36;border-right:0}
.sa-complete-close-kpis>div{padding:10px 12px;border-right:1px solid #3a3a36;background:#2a2a26}
.sa-complete-close-kpis span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#9a9a94}
.sa-complete-close-kpis b{display:block;margin-top:6px;font-size:16px;color:#fff}
@media (max-width:900px){
  .sa-key-rules-grid{grid-template-columns:1fr}
  .sa-complete-close-kpis{grid-template-columns:1fr}
  .sa-complete-close-kpis>div{border-bottom:1px solid #3a3a36}
  .sa-complete-close-kpis>div:last-child{border-bottom:0}
}

.sa-stage#saStageCollect .sa-collect-path .territorial-dossier-panel{margin:0;border:1px solid var(--line);border-bottom:0;background:#fff;padding:16px 14px}
.sa-stage#saStageCollect .sa-collect-path .sa-parcel-canon{margin:0 0 18px;border:1px solid var(--line);background:#fff;padding:16px 14px}
.sa-stage#saStageCollect .sa-secondary{margin-top:0}
@media (max-width:900px){
  .sa-canon-details .sa-canon-rules-list{grid-template-columns:1fr 1fr}
  .sa-collect-order{grid-template-columns:1fr}
  .sa-collect-order li{border-right:0;border-bottom:1px solid var(--line)}
  .sa-collect-order li:last-child{border-bottom:0}
  .sa-progress-strip{grid-template-columns:1fr}
  .sa-progress-cell{border-right:0;border-bottom:1px solid var(--line)}
  .sa-progress-cell:last-child{border-bottom:0}
}

.sa-stage{margin-top:22px;padding-top:6px;border-top:1px solid var(--line)}
.sa-stage-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin:0 0 14px}
.sa-stage-kicker{margin:0 0 6px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#888}
.sa-stage-head h2{margin:0 0 8px;font-size:18px;letter-spacing:.02em;font-weight:600;color:#171714}
.sa-stage-lead{margin:0;max-width:620px;font-size:12px;line-height:1.55;color:#666}
.sa-stage-cta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.sa-stage-cta .primary-system-action{min-width:240px;min-height:42px}
/* wr362 · lote canónico (cadastro DGT) */
.sa-parcel-canon{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-parcel-canon-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#555}
.sa-parcel-canon-list{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.sa-parcel-canon-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;align-items:start;padding:10px 12px;border:1px solid #dedede;background:#fafaf8;cursor:pointer}
.sa-parcel-canon-item.is-selected{border-color:#171714;background:#f7f7f3}
.sa-parcel-canon-item.is-confirmed{border-color:#2f6b3a;box-shadow:inset 3px 0 0 #2f6b3a}
.sa-parcel-canon-item b{display:block;font-size:13px;color:#171714}
.sa-parcel-canon-item small{display:block;margin-top:4px;font-size:11px;color:#666;line-height:1.4}
.sa-parcel-canon-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sa-parcel-canon-actions .system-action{min-height:34px}
.sa-local-tools{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-local-tools-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#555}
.sa-local-tools-lanes{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:6px}
.sa-local-tools-lanes li{padding:8px 10px;border:1px solid #ecece7;background:#fafaf7}
.sa-local-tools-lanes b{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#777}
.sa-local-tools-lanes span{display:block;margin-top:3px;font-size:11px;line-height:1.4;color:#444}
.sa-local-tools-point{margin:0 0 10px;font-size:12px;line-height:1.4;color:#2f4a3a}
.sa-local-tools-point[data-has-point="0"]{color:#888}
.sa-catalog-muni-inner{padding:0 0 12px}
.sa-catalog-muni-note{margin:0 0 10px;font-size:12px;line-height:1.45;color:#666}
.sa-catalog-muni-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.sa-catalog-muni-list li{padding:10px 12px;border:1px solid #dedede;background:#fafaf8}
.sa-catalog-muni-list li.is-match{border-color:#2f6b3a;box-shadow:inset 3px 0 0 #2f6b3a}
.sa-catalog-muni-list b{display:block;font-size:13px;color:#171714}
.sa-catalog-muni-list span{display:block;margin-top:3px;font-size:12px;color:#444}
.sa-catalog-muni-list small{display:block;margin-top:4px;font-size:11px;color:#777;line-height:1.4}
.sa-source-return{margin:14px 0 0;padding:14px 12px;border:1px solid var(--line);background:#f7f7f3}
.sa-source-return[hidden]{display:none!important}
.sa-source-return-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 8px}
.sa-source-return-head>span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#666}
.sa-source-return-head>b{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border:1px solid #5a7a9a;color:#3d5a73;background:#fff}
.sa-source-return-status{margin:0 0 10px;font-size:12px;line-height:1.45;color:#555}
.sa-source-return-gaps{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.sa-source-return-gaps li{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;font-size:12px;color:#444}
.sa-source-return-gaps li b{display:block;font-size:13px;color:#171714}
.sa-source-return-gaps li small{display:block;margin-top:2px;font-size:11px;color:#777}
.sa-source-return-gaps li.is-missing{color:#8a6a20}
.sa-source-return-gaps li.is-candidate{color:#3d5a73}
.sa-source-return-gaps li.is-ok{color:#2f6b3a}
.sa-source-return-actions{display:flex;flex-wrap:wrap;gap:8px}
.sa-journey-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0 0;border:1px solid var(--line);background:#fff}
.sa-journey-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px 14px;border:0;border-right:1px solid var(--line);background:#fff;text-align:left;cursor:pointer;font:inherit;color:#555}
.sa-journey-cell:last-child{border-right:0}
.sa-journey-cell span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-journey-cell b{font-size:12px;color:#171714;font-weight:600}
.sa-journey-cell.is-ready{background:#f3f8f4}
.sa-journey-cell.is-ready b{color:#2f6b3a}
.sa-journey-cell.is-open{background:#fbf7ee}
.sa-journey-cell.is-open b{color:#8a6a20}
.sa-journey-cell:hover{background:#f3f3ef}
.analysis-footer .system-action-primary.is-soft,
#saContinueToSystemFromCompleteBtn.is-soft{opacity:.72}
.sa-stage-nav .primary-system-action{min-height:38px}
.sa-stage-nav .primary-system-action.is-soft{opacity:.72}
.sa-stage-gate{margin:18px 0 0;padding:14px 12px;border:1px solid var(--line);background:#f7f7f3}
.sa-stage-gate-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 8px}
.sa-stage-gate-head>span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#666}
.sa-gate-mark{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border:1px solid #cfcfc9;background:#fff;color:#666}
.sa-gate-mark.is-ready{border-color:#2f6b3a;color:#2f6b3a;background:#f3f8f4}
.sa-gate-mark.is-open{border-color:#c4b28a;color:#8a6a20;background:#fbf7ee}
.sa-stage-gate-status{margin:0 0 10px;font-size:12px;line-height:1.45;color:#555}
.sa-stage-gate-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.sa-stage-gate-list li{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#444}
.sa-stage-gate-list li.is-ok{color:#2f6b3a}
.sa-stage-gate-list li.is-missing{color:#8a6a20}
.sa-eval-parcel-status{margin:0 0 10px;padding:10px 12px;border:1px solid #dedede;background:#fafaf8;font-size:12px;line-height:1.45;color:#555}
.sa-eval-parcel-status.is-ready{border-color:#2f6b3a;box-shadow:inset 3px 0 0 #2f6b3a}
.sa-eval-parcel-status.is-open{border-color:#5a7a9a;box-shadow:inset 3px 0 0 #5a7a9a}
.sa-eval-parcel-status.is-missing{border-color:#c4b28a;box-shadow:inset 3px 0 0 #c4b28a}
.sa-eval-matrix{margin:14px 0 0;padding:14px 12px;border:1px solid var(--line);background:#fff}
.sa-eval-matrix-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-right:0;margin:0 0 12px}
.sa-eval-matrix-kpis>div{padding:10px 12px;border-right:1px solid var(--line);background:#fafaf8}
.sa-eval-matrix-kpis span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-eval-matrix-kpis b{display:block;margin-top:6px;font-size:16px;color:#171714}
.sa-eval-matrix-kpis>div:nth-child(1) b{color:#2f6b3a}
.sa-eval-matrix-kpis>div:nth-child(2) b{color:#3d5a73}
.sa-eval-matrix-kpis>div:nth-child(3) b{color:#8a6a20}
.sa-eval-matrix-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#555}
.sa-eval-matrix-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}
.sa-eval-matrix-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 10px;align-items:start;padding:8px 10px;border:1px solid #dedede;background:#fafaf8}
.sa-eval-matrix-list li.is-ok{box-shadow:inset 3px 0 0 #2f6b3a}
.sa-eval-matrix-list li.is-candidate{box-shadow:inset 3px 0 0 #5a7a9a}
.sa-eval-matrix-list li.is-missing{box-shadow:inset 3px 0 0 #c4b28a}
.sa-eval-matrix-list b{display:block;font-size:12px;color:#171714}
.sa-eval-matrix-list small{display:block;margin-top:2px;font-size:11px;color:#666;line-height:1.35}
.sa-eval-matrix-list em{font-style:normal;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#666;padding-top:2px}
.sa-eval-matrix-list li.is-ok em{color:#2f6b3a}
.sa-eval-matrix-list li.is-candidate em{color:#3d5a73}
.sa-eval-matrix-list li.is-missing em{color:#8a6a20}
.sa-eval-matrix-actions{display:flex;flex-wrap:wrap;gap:8px}
.sa-stage#saStageCollect .territorial-dossier-panel,
.sa-stage#saStageCollect .sa-parcel-canon{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-stage#saStageCollect .territorial-dossier-panel{border-top:1px solid var(--line)}
.sa-stage#saStageEvaluate .favorability-index-panel,
.sa-stage#saStageEvaluate .site-viability-panel{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff;border-top:0}
.sa-stage#saStageComplete .planning-rules-panel{border-top:0;padding-top:0;margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-stage#saStageComplete .planning-extractor{display:block;margin-top:10px}
.sa-stage#saStageComplete .planning-extractor>section{border:1px solid var(--line);padding:14px;background:#fff}
.sa-envelope-pilot-item .system-mini-action{margin-top:8px}
.sa-matrix-actions{display:inline-flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sa-matrix-actions .system-mini-action{margin-top:0}
.system-mini-action.is-confirm{border-color:#2f6b3a!important;color:#2f6b3a!important}
.system-mini-action.is-confirm:hover,.system-mini-action.is-confirm:focus{background:#2f6b3a!important;color:#fff!important;border-color:#2f6b3a!important}
.planning-rule-row .rule-candidate{color:#3d5a73;letter-spacing:.04em;text-transform:uppercase;font-size:10px}
.sa-envelope-pilot{margin:0 0 18px;padding:16px 14px;border:1px solid var(--line);background:#fff}
.sa-envelope-pilot-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#555}
.sa-envelope-pilot-list{display:flex;flex-direction:column;gap:8px}
.sa-envelope-pilot-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;align-items:start;padding:10px 12px;border:1px solid #dedede;background:#fafaf8}
.sa-envelope-pilot-item.is-ok{border-color:#2f6b3a;box-shadow:inset 3px 0 0 #2f6b3a}
.sa-envelope-pilot-item.is-candidate{border-color:#5a7a9a;box-shadow:inset 3px 0 0 #5a7a9a}
.sa-envelope-pilot-item.is-missing{border-color:#c4b28a;box-shadow:inset 3px 0 0 #c4b28a}
.sa-envelope-pilot-item b{display:block;font-size:13px;color:#171714}
.sa-envelope-pilot-item small{display:block;margin-top:4px;font-size:11px;color:#666;line-height:1.4}
.sa-envelope-pilot-item .sa-env-mark{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#666;padding-top:2px}
.sa-envelope-pilot-item.is-ok .sa-env-mark{color:#2f6b3a}
.sa-envelope-pilot-item.is-candidate .sa-env-mark{color:#3d5a73}
.sa-envelope-pilot-item.is-missing .sa-env-mark{color:#8a6a20}
.sa-muni-bridge{margin:14px 0 0;padding:14px 12px;border:1px solid var(--line);background:#fff}
.sa-muni-bridge-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-right:0;margin:0 0 12px}
.sa-muni-bridge-kpis>div{padding:10px 12px;border-right:1px solid var(--line);background:#fafaf8}
.sa-muni-bridge-kpis span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-muni-bridge-kpis b{display:block;margin-top:6px;font-size:16px;color:#171714}
.sa-muni-bridge-kpis>div:nth-child(1) b{color:#2f6b3a}
.sa-muni-bridge-kpis>div:nth-child(2) b{color:#3d5a73}
.sa-muni-bridge-kpis>div:nth-child(3) b{color:#8a6a20}
.sa-muni-bridge-status{margin:0 0 12px;font-size:12px;line-height:1.45;color:#555}
.sa-muni-bridge-list{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.sa-muni-bridge-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 12px;align-items:start;padding:10px 12px;border:1px solid #dedede;background:#fafaf8}
.sa-muni-bridge-item.is-ready{box-shadow:inset 3px 0 0 #2f6b3a}
.sa-muni-bridge-item.is-open{box-shadow:inset 3px 0 0 #c4b28a}
.sa-muni-bridge-item.is-feed-human.is-open{box-shadow:inset 3px 0 0 #5a7a9a}
.sa-muni-bridge-item b{display:block;font-size:13px;color:#171714}
.sa-muni-bridge-item small{display:block;margin-top:4px;font-size:11px;color:#666;line-height:1.4}
.sa-muni-bridge-item .system-mini-action{margin-top:8px}
.sa-muni-bridge-item .sa-mb-side{display:grid;gap:4px;justify-items:end;text-align:right}
.sa-muni-bridge-item .sa-mb-side em{font-style:normal;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.sa-muni-bridge-item.is-feed-os .sa-mb-side em{color:#2f6b3a}
.sa-muni-bridge-item.is-feed-human .sa-mb-side em{color:#3d5a73}
.sa-muni-bridge-item .sa-mb-mark{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding-top:2px;color:#666}
.sa-muni-bridge-item.is-ready .sa-mb-mark{color:#2f6b3a}
.sa-muni-bridge-item.is-open .sa-mb-mark{color:#8a6a20}
.sa-muni-bridge-item.is-feed-human.is-open .sa-mb-mark{color:#3d5a73}
.sa-muni-bridge-actions{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:720px){
}
.sa-dossier-body{border-top:0;margin-top:0;padding-top:0}
.sa-secondary{margin-top:12px;border:1px solid var(--line);background:#fff}
.sa-secondary>summary{list-style:none;cursor:pointer;padding:12px 14px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#171714;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid transparent}
.sa-secondary>summary::-webkit-details-marker{display:none}
.sa-secondary[open]>summary{border-bottom-color:var(--line);background:#f7f7f3}
.sa-secondary-hint{font-size:8px;letter-spacing:.06em;color:#888;text-transform:uppercase}
.sa-export-inner{padding:12px 14px 14px;display:flex;flex-direction:column;gap:14px}
.sa-export-inner .confidence-panel,.sa-export-inner .consultation-panel{margin:0;border:0;padding:0;background:transparent}
.sa-stage{transition:opacity .18s ease,filter .18s ease}
.sa-stage:not(.is-focus){opacity:.55}
.sa-stage:not(.is-focus):hover{opacity:.85}
.sa-stage.is-focus{opacity:1;outline:1px solid var(--line);outline-offset:8px;background:#fff}
@media (max-width:720px){
  .sa-stage:not(.is-focus){opacity:1}
  .sa-stage.is-focus{outline:0;outline-offset:0}
}
.sa-inventory-inner{border-top:0;padding:14px}
.sa-inventory-inner>.section-title{margin-top:0}
/* wr570 · S4 · URLs canónicos em Completar · Fontes */
#saConnectorsDetails.territorial-connectors-panel,
#saConnectorsDetails.sa-project-urls{margin:14px 0 0;padding:14px 12px;border:1px solid var(--line);background:#fff}
.sa-connectors-handoff{margin:12px 0 0;padding:12px;border:1px solid #dedede;background:#fafaf8;display:grid;gap:10px}
.sa-connectors-handoff p{margin:0;font-size:12px;line-height:1.45;color:#555}
.sa-connectors-handoff b{font-weight:600;color:#171714}
.sa-corpus-advanced-actions{margin-top:8px}
@media(max-width:950px){
  .sa-canon-rules-list{grid-template-columns:1fr 1fr}
  .sa-canon-rules-list li:nth-child(2){border-right:0}
  .sa-canon-rules-list li:nth-child(1),.sa-canon-rules-list li:nth-child(2){border-bottom:1px solid var(--line)}
  .sa-funnel-nav{grid-template-columns:1fr}
  .sa-funnel-step{border-right:0;border-bottom:1px solid var(--line)}
  .sa-funnel-step:last-child{border-bottom:0}
  .sa-stage-head{flex-direction:column}
  .sa-stage-cta{align-items:stretch;width:100%}
}
@media(max-width:600px){.sa-canon-rules-list{grid-template-columns:1fr}.sa-canon-rules-list li{border-right:0;border-bottom:1px solid var(--line)}.sa-canon-rules-list li:last-child{border-bottom:0}}



/* wr423 · Fornecimento · custos (Centro de Informação) */
.supply-cost-toolbar{display:flex;flex-direction:column;gap:8px;margin:8px 0 10px}
.supply-cost-toolbar label{display:flex;flex-direction:column;gap:4px;font-size:8px;color:#888}
.supply-cost-toolbar select{font:inherit;font-size:10px;padding:6px 8px;border:1px solid #ddd;background:#fafaf7;color:#111}
.supply-cost-toggle-indirect{align-self:flex-start}
.supply-cost-list{display:flex;flex-direction:column;gap:0}
.supply-cost-row em{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:72px}
.supply-cost-row .supply-value{font-style:normal;font-weight:600;color:#111;font-size:10px}
.supply-cost-row .supply-estado{font-style:normal;font-size:8px;color:#888}
.supply-cost-row.tone-P .supply-estado{color:#2a6a3a}
.supply-cost-row.tone-E .supply-estado{color:#8a6a20}
.supply-cost-row.tone-C .supply-estado{color:#8a4040}
.supply-delta{display:block;margin-top:2px}
.supply-delta.down{color:#2a6a3a}
.supply-delta.up{color:#8a4040}
.supply-delta.flat{color:#888}
.supply-source-meta{display:block;margin-top:8px;font-size:8px;color:#999}
.supply-indirect{margin-top:10px}

/* wr424 · Fornecimento · custos · proposta + validação */
.supply-cost-row.is-open{background:#f7f7f4}
.supply-select-btn{margin-top:4px;border:1px solid #ddd;background:#fff;font:inherit;font-size:8px;padding:3px 6px;cursor:pointer;color:#444}
.supply-select-btn:hover{color:#111;border-color:#bbb}
.supply-cost-form{margin:0 0 12px;padding:10px 0 4px;border-top:1px solid #eee}
.supply-cost-form label{display:flex;flex-direction:column;gap:3px;font-size:8px;color:#888;margin:6px 0}
.supply-cost-form input,.supply-cost-form select{font:inherit;font-size:10px;padding:6px 8px;border:1px solid #ddd;background:#fafaf7;color:#111}
.supply-criteria{border:1px solid #e5e5e0;padding:8px;margin:8px 0;display:flex;flex-direction:column;gap:4px}
.supply-criteria legend{font-size:8px;color:#666;padding:0 4px}
.supply-criteria label{flex-direction:row;align-items:flex-start;gap:6px;font-size:9px;color:#333;margin:0}
.supply-form-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.supply-reject{background:#faf5f5!important}
.supply-badge-pending{background:#fff4d6;color:#7a5a10}
.supply-badge-ok{background:#e8f5ea;color:#2a6a3a}

/* wr425 · piloto BOM supply */
.supply-pilot-card{margin:8px 0 12px}
.supply-pilot-card .space-core-summary{margin:8px 0}

/* wr426 · Passo 4 · flyover material fornecimento (só quando chamado) */
.supply-material-flyover{position:absolute;z-index:42;left:16px;bottom:16px;width:min(340px,calc(100% - 32px));max-height:min(72%,calc(100% - 32px));overflow:auto;display:grid;gap:0;border:1px solid rgba(25,38,34,.28);background:rgba(249,249,244,.98);box-shadow:0 10px 28px rgba(25,38,34,.12);scrollbar-width:thin}
.supply-material-flyover[hidden]{display:none!important}
.supply-material-flyover .smf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(25,38,34,.14)}
.supply-material-flyover .smf-head span{display:block;color:#73736d;font-size:8px;font-weight:650;letter-spacing:.1em;text-transform:uppercase}
.supply-material-flyover .smf-head b{display:block;margin-top:3px;font-size:13px;line-height:1.25}
.supply-material-flyover .smf-head small{display:block;margin-top:4px;color:#716f68;font-size:8px;line-height:1.4}
.supply-material-flyover .smf-close{flex:0 0 auto;border:0;background:transparent;color:#716f68;font-size:11px;cursor:pointer;padding:4px 6px}
.supply-material-flyover .smf-modes{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(25,38,34,.12);border-bottom:1px solid rgba(25,38,34,.12)}
.supply-material-flyover .smf-modes button{border:0;background:rgba(249,249,244,.98);padding:9px 10px;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;color:#716f68}
.supply-material-flyover .smf-modes button.is-active{color:#1f4d45;box-shadow:inset 0 -2px 0 #1f4d45}
.supply-material-flyover .smf-list{display:grid;gap:0;padding:4px 0}
.supply-material-flyover .smf-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;border:0;border-top:1px solid rgba(25,38,34,.08);background:transparent;padding:9px 14px;text-align:left;cursor:pointer}
.supply-material-flyover .smf-option:hover{background:rgba(31,77,69,.04)}
.supply-material-flyover .smf-option.is-current{background:rgba(31,77,69,.07);box-shadow:inset 3px 0 0 #1f4d45}
.supply-material-flyover .smf-option.is-preferred small.smf-pref{color:#1f4d45;font-weight:700}
.supply-material-flyover .smf-option b{display:block;font-size:10px;line-height:1.3}
.supply-material-flyover .smf-option small{display:block;margin-top:2px;color:#716f68;font-size:7px;line-height:1.35}
.supply-material-flyover .smf-option em{font-style:normal;font-size:9px;font-weight:700;white-space:nowrap}
.supply-material-flyover .smf-form{display:grid;gap:8px;padding:12px 14px}
.supply-material-flyover .smf-form label{display:grid;gap:4px;font-size:8px;color:#716f68;text-transform:uppercase;letter-spacing:.05em}
.supply-material-flyover .smf-form input,.supply-material-flyover .smf-form select,.supply-material-flyover .smf-form textarea{border:1px solid rgba(25,38,34,.2);background:#fff;padding:7px 8px;font:inherit;font-size:11px}
.supply-material-flyover .smf-form textarea{min-height:56px;resize:vertical}
.supply-material-flyover .smf-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 14px}
.supply-material-flyover .smf-actions button{border:1px solid #1f4d45;background:#1f4d45;color:#fff;padding:8px 10px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.supply-material-flyover .smf-actions button.smf-secondary{background:transparent;color:#1f4d45}
.supply-material-flyover .smf-note{margin:0;padding:0 14px 12px;color:#716f68;font-size:8px;line-height:1.45}
.stage-card-section.stage-supply-material .smf-current{margin:0;color:#716f68;font-size:8px;line-height:1.4}

/* wr427 · gate anomalia delta */
.supply-badge-anomaly{border-color:#a43f36;color:#a43f36}
.supply-cost-row.is-anomaly{box-shadow:inset 3px 0 0 #a43f36}
.supply-anomaly-banner{margin:8px 0}
.supply-anomaly-form{border-left:3px solid #a43f36}

/* wr428 · custo fabril v0 */
.supply-factory-card{margin:8px 0 12px}
.supply-factory-card .space-core-summary{margin:8px 0}

/* wr433 · proposta de custo · projecto v0 (roll-up) */
.supply-rollup-card{margin:0 0 14px;border-left:3px solid #1f4d45}
.supply-rollup-card .space-core-summary{margin:8px 0}
.supply-rollup-gaps{margin:8px 0;padding:8px 10px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98)}
.supply-rollup-gaps b{display:block;font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#716f68}
.supply-rollup-gaps ul{margin:6px 0 0;padding-left:16px}
.supply-rollup-gaps li{font-size:9px;line-height:1.4;color:#2a2a26;margin:0 0 4px}
.supply-rollup-gaps em{font-style:normal;font-weight:700;color:#1f4d45;text-transform:uppercase;font-size:8px;letter-spacing:.04em}
.supply-rollup-exclusions{margin:8px 0;font-size:9px;color:#716f68}
.supply-rollup-exclusions summary{cursor:pointer;font-weight:650;letter-spacing:.04em;text-transform:uppercase;font-size:8px}
.supply-rollup-exclusions ul{margin:6px 0 0;padding-left:16px}

/* wr434 · custo herdado ordem Factory */
.factory-order-cost-strip{display:grid;gap:6px;max-height:240px;overflow:auto;scrollbar-width:thin}
.factory-order-cost-head{display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(25,38,34,.14);background:rgba(249,249,244,.98)}
.factory-order-cost-head b{font-size:11px}
.factory-order-cost-head small,.factory-order-cost-note{color:#716f68;font-size:8px;line-height:1.4}
.factory-order-cost-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.factory-order-cost-grid article{display:grid;gap:2px;padding:8px 10px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98)}
.factory-order-cost-grid span{color:#716f68;font-size:7px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.factory-order-cost-grid b{font-size:11px;line-height:1.25}
.factory-order-cost-grid small{color:#716f68;font-size:7px}
@media (max-width:900px){.factory-order-cost-grid{grid-template-columns:1fr}}

/* wr446 · quadro legível QGE na UCC */
.stage-board-schedule{margin-top:2px}
.stage-board-circuits{display:grid;gap:4px;margin:6px 0}
.stage-board-circuit{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 8px;padding:7px 9px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98);border-left:3px solid #1f4d45}
.stage-board-circuit.status-empty,.stage-board-circuit.status-partial{border-left-color:#aa6d16}
.stage-board-circuit.status-no-board{border-left-color:#8b4f43}
.stage-board-circuit>span{grid-column:1;grid-row:1/span 2;align-self:center;font-size:10px;font-weight:700;color:#1f4d45;font-variant-numeric:tabular-nums}
.stage-board-circuit>b{grid-column:2;font-size:10px;line-height:1.25}
.stage-board-circuit>small{grid-column:2;color:#716f68;font-size:7px;line-height:1.35}

/* wr435 · fio económico v0 na UCC */
.stage-economic-thread{margin-top:2px}
.stage-econ-elos{display:grid;gap:4px;margin:6px 0}
.stage-econ-elo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:7px 9px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98);border-left:3px solid #aa6d16;width:100%;text-align:left;font:inherit;color:inherit;cursor:default}
.stage-econ-elo.is-jump{cursor:pointer}
.stage-econ-elo.is-jump:hover{background:rgba(31,77,69,.06)}
.stage-econ-elo.is-jump:focus-visible{outline:2px solid #1f4d45;outline-offset:1px}
.stage-econ-elo.status-documented{border-left-color:#2b5748}
.stage-econ-elo.status-partial{border-left-color:#aa6d16}
.stage-econ-elo.status-not-demonstrated{border-left-color:#8b4f43}
.stage-econ-elo>span{grid-column:1;color:#716f68;font-size:7px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.stage-econ-elo>b{grid-column:1;font-size:10px;line-height:1.25}
.stage-econ-elo>small{grid-column:1;color:#716f68;font-size:7px;line-height:1.35}
.stage-econ-elo>em{grid-column:2;grid-row:1/span 3;align-self:center;font-style:normal;font-size:8px;font-weight:700}

/* wr437 · custo do kit no Site Dock (herdado Factory) */
.site-kit-cost-strip{display:grid;gap:6px;max-height:420px;overflow:auto;scrollbar-width:thin}
.site-kit-cost-head{display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(25,38,34,.14);background:rgba(249,249,244,.98)}
.site-kit-cost-head b{font-size:11px}
.site-kit-cost-head small,.site-kit-cost-note{color:#716f68;font-size:8px;line-height:1.4}
.site-kit-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.site-kit-cost-grid.site-cost-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.site-kit-cost-grid.site-cost-grid-7{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.site-kit-cost-grid.site-cost-grid-5,.site-kit-cost-grid.site-cost-grid-7{grid-template-columns:repeat(2,minmax(0,1fr))}}
.site-labor-form{display:grid;gap:6px;padding:8px 10px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98)}
.site-labor-form label{display:grid;gap:2px;font-size:8px;color:#716f68;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.site-labor-form input[type=text],.site-labor-form input:not([type]){font-size:11px;padding:5px 7px;border:1px solid rgba(25,38,34,.18);background:#fff}
.site-labor-form fieldset{border:1px solid rgba(25,38,34,.12);padding:6px 8px;margin:0}
.site-labor-form legend{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:0 4px}
.site-labor-form fieldset label{display:flex;align-items:flex-start;gap:6px;font-size:9px;font-weight:500;text-transform:none;letter-spacing:0;color:#1f2a26;margin:3px 0}
.site-labor-form .supply-form-actions{display:flex;flex-wrap:wrap;gap:4px}
.site-labor-form button{font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border:1px solid rgba(25,38,34,.2);background:rgba(249,249,244,.98);cursor:pointer;color:#1f4d45}
.site-kit-cost-grid article{display:grid;gap:2px;padding:8px 10px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98)}
.site-kit-cost-grid span{color:#716f68;font-size:7px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.site-kit-cost-grid b{font-size:11px;line-height:1.25}
.site-kit-cost-grid small{color:#716f68;font-size:7px}
@media (max-width:900px){.site-kit-cost-grid{grid-template-columns:1fr}}
.site-kit-cost-actions{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.site-kit-cost-actions button{font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border:1px solid rgba(25,38,34,.2);background:rgba(249,249,244,.98);cursor:pointer;color:#1f4d45}
.site-kit-cost-actions button:hover{background:rgba(31,77,69,.06)}
.site-kit-cost-actions button:disabled{opacity:.45;cursor:not-allowed}
.site-dock-grid>section>header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}

/* wr430 · CAM readiness v0 (fabrico · não camarária) */
.factory-cam-readiness-strip{display:grid;gap:6px;max-height:280px;overflow:auto;scrollbar-width:thin}
.factory-cam-head{display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(25,38,34,.14);background:rgba(249,249,244,.98)}
.factory-cam-head b{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.factory-cam-head small,.factory-cam-note{color:#716f68;font-size:8px;line-height:1.4}
.factory-cam-deferred-label{margin-top:4px;padding:4px 2px;color:#716f68;font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.factory-cam-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 10px;border:1px solid rgba(25,38,34,.12);background:rgba(249,249,244,.98)}
.factory-cam-item span{color:#716f68;font-size:7px;font-weight:700;letter-spacing:.05em}
.factory-cam-item b{font-size:10px;line-height:1.25}
.factory-cam-item small{display:block;margin-top:2px;color:#716f68;font-size:7px;line-height:1.35}
.factory-cam-item em{font-style:normal;font-size:8px;font-weight:700}
.factory-cam-item.status-not-demonstrated{opacity:.92;border-left:3px solid #8b4f43}
.factory-cam-item.status-resolved{border-left:3px solid #2b5748}
.factory-cam-item.status-pending,.factory-cam-item.status-unknown{border-left:3px solid #aa6d16}
.factory-dock-grid>section>header{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.factory-dock-grid>section>header button{margin-left:auto}

/* wr432 · evidência CNC externa */
.factory-cam-item.status-external-evidence{border-left:3px solid #1f4d45}
.factory-cam-evidence-form{display:grid;gap:6px;padding:8px 10px;border:1px solid rgba(25,38,34,.14);background:rgba(249,249,244,.98)}
.factory-cam-evidence-form label{display:grid;gap:3px;font-size:7px;color:#716f68;text-transform:uppercase;letter-spacing:.05em}
.factory-cam-evidence-form input,.factory-cam-evidence-form select{border:1px solid rgba(25,38,34,.2);background:#fff;padding:6px 7px;font:inherit;font-size:11px;text-transform:none;letter-spacing:0;color:#171714}
.factory-cam-evidence-form button{border:1px solid #1f4d45;background:#1f4d45;color:#fff;padding:8px 10px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}

/* wr452 · Gate A→B + chrome Modo Industrialização (layouts sim v7) */
.industrial-gate{position:absolute;inset:0;z-index:50;background:var(--soft,#efefe9);display:flex;align-items:center;justify-content:center;padding:40px 24px}
.industrial-gate[hidden]{display:none!important}
.industrial-gate-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.industrial-gate-block{text-align:left;max-width:340px;width:max-content;background:transparent;border:0;box-shadow:none;padding:0}
.industrial-gate-title{margin:0;font-size:22px;font-weight:650;line-height:1.25;color:var(--ink)}
.industrial-gate-honesty{margin:8px 0 0;font-size:12px;line-height:1.45;color:var(--muted);max-width:340px}
.industrial-gate-honesty[data-tone="ready"]{color:var(--green,#5f7f62)}
.industrial-gate-honesty[data-tone="pilot"]{color:var(--amber,#ad742f)}
.industrial-gate-honesty[hidden]{display:none!important}
.industrial-gate-detail{margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--muted);max-width:340px}
.industrial-gate-detail[data-territory-status="partial"],
.industrial-gate-detail[data-territory-status="absent"]{color:var(--amber,#ad742f)}
.industrial-gate-detail[data-territory-status="complete"]{color:var(--green,#5f7f62)}
.industrial-gate-detail[data-dossier-issued="false"]{color:var(--amber,#ad742f)}
.industrial-gate-detail[hidden]{display:none!important}
.industrial-gate-opts{margin-top:14px;display:grid;gap:2px}
.industrial-gate-opt{display:block;width:100%;border:0;background:transparent;padding:6px 0;font-size:15px;font-weight:550;text-align:left;color:var(--ink);cursor:pointer}
.industrial-gate-opt[aria-selected="true"],.industrial-gate-opt:hover{color:#8a8a82}
.industrial-mode-label{margin:6px 0 0!important;font-size:12px!important;color:var(--muted)!important;text-decoration:none!important}
.industrial-mode-label.is-available{color:var(--green,#5f7f62)!important;cursor:pointer;text-decoration:underline!important;text-underline-offset:2px}
.industrial-mode-label.is-available:hover,.industrial-mode-label.is-available:focus{color:var(--ink)!important;outline:none}
.industrial-mode-label.is-active{color:var(--ink)!important;font-weight:650!important}
.industrial-return-project{display:block;margin-top:10px;padding:0;border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:550;text-align:left;cursor:pointer}
.industrial-return-project:hover{color:var(--ink)}
.industrial-mode-label[hidden],.industrial-return-project[hidden]{display:none!important}
.industrial-chain-nav{display:flex;flex-direction:column;border-bottom:1px solid var(--line);background:#fff}
.industrial-chain-nav[hidden]{display:none!important}
.industrial-chain-nav button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);padding:14px 16px;font-size:11px;font-weight:650;cursor:pointer}
.industrial-chain-nav button small{display:block;margin-bottom:3px;font-size:8px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.industrial-chain-nav button.on{background:var(--ink);color:#fff}
.industrial-chain-nav button:disabled{opacity:.35;cursor:default}
.industrial-work-pane{position:absolute;inset:0;z-index:48;background:var(--soft,#efefe9);padding:28px 32px;overflow:auto}
.industrial-work-pane[hidden]{display:none!important}
.industrial-work-kicker{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.industrial-work-pane h2{margin:0 0 6px;font-size:20px;font-weight:650}
.industrial-work-lead{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.45;max-width:72ch}
.industrial-work-note{margin:0;padding:10px 12px;border:1px solid var(--line);background:#fff;font-size:10px;color:var(--muted);line-height:1.45}
.workspace-screen.industrialization-mode .design-tool-zone,
.workspace-screen.industrial-gate-open .design-tool-zone{display:none!important}
/* wr462 · Chrome A fora do Stage: HUD Stage + biblioteca não competem com o painel B */
.workspace-screen.industrialization-mode #stageHudDock,
.workspace-screen.industrial-gate-open #stageHudDock{display:none!important;pointer-events:none!important}
.workspace-screen.industrialization-mode:not(.industrial-ops-open) #modelActionDock,
.workspace-screen.industrialization-mode:not(.industrial-ops-open) #moduleStatusStrip,
.workspace-screen.industrialization-mode:not(.industrial-ops-open) .project-summary-strip,
.workspace-screen.industrial-gate-open #modelActionDock,
.workspace-screen.industrial-gate-open #moduleStatusStrip,
.workspace-screen.industrial-gate-open .project-summary-strip{display:none!important}

/* wr453 · Cadeia B · Dossier (lista + preview só leitura) */
/* wr600 · só a lista faz scroll; preview sticky para leitura por campo */
/* wr601 · preview SVG por inteiro (sem crop); stage dimensiona ao desenho */
.industrial-work-body{margin-top:4px}
.industrial-dossier-card{border:1px solid var(--line);background:#fff;padding:14px;margin-bottom:12px}
.industrial-dossier-card>span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.industrial-dossier-card>b{display:block;margin-top:4px;font-size:14px;font-weight:650}
.industrial-dossier-card>p{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.45}
.industrial-dossier-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(240px,.95fr);gap:12px;align-items:start}
.industrial-doc-list{border:1px solid var(--line);background:#fff;max-height:calc(100vh - 240px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.industrial-doc-list .industrial-doc-lh{position:sticky;top:0;z-index:2;padding:10px 12px;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:#fff}
.industrial-doc-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 12px;text-align:left;cursor:pointer;color:inherit;font:inherit}
.industrial-doc-item:last-child{border-bottom:0}
.industrial-doc-item.on{background:var(--ink);color:#fff}
.industrial-doc-item.on small{color:rgba(255,255,255,.65)}
.industrial-doc-thumb{width:56px;height:40px;border:1px solid var(--line);background:#f3f3ef;position:relative}
.industrial-doc-item.on .industrial-doc-thumb{border-color:rgba(255,255,255,.35)}
.industrial-doc-thumb i{position:absolute;left:8px;top:10px;right:8px;bottom:10px;border:1px solid #3e3e3a;background:#cfcfc8;font-style:normal}
.industrial-doc-item b{display:block;font-size:11px;font-weight:650}
.industrial-doc-item small{display:block;margin-top:2px;font-size:8px;color:var(--muted)}
.industrial-doc-item .industrial-doc-tag{font-size:7px;letter-spacing:.06em;text-transform:uppercase;border:1px solid currentColor;padding:2px 4px}
.industrial-doc-preview{position:sticky;top:12px;align-self:start;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 160px);overflow:hidden}
.industrial-doc-preview .industrial-doc-ph{flex:0 0 auto;padding:10px 12px;border-bottom:1px solid var(--line)}
.industrial-doc-preview .industrial-doc-ph span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.industrial-doc-preview .industrial-doc-ph b{display:block;margin-top:3px;font-size:13px}
.industrial-doc-preview .industrial-doc-ph small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.industrial-doc-stage{flex:1 1 auto;min-height:0;margin:12px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(23,23,20,.04) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(rgba(23,23,20,.04) 1px,transparent 1px) 0 0/24px 24px,#fafaf7;overflow:auto;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center;padding:10px}
.industrial-doc-stage svg{width:100%;height:auto;max-width:100%;max-height:none;display:block;flex:0 0 auto}
.industrial-doc-stage .industrial-doc-written{padding:12px;font-size:11px;line-height:1.45;color:var(--ink);align-self:stretch;width:100%;overflow:visible}
.industrial-doc-stage .industrial-doc-written p{margin:0 0 8px}
.industrial-doc-stage .industrial-doc-empty{padding:16px;font-size:11px;color:var(--muted);text-align:center}
.industrial-doc-meta{flex:0 0 auto;padding:0 12px 12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.industrial-doc-meta div{padding:8px;border:1px solid var(--line);background:var(--paper,#f7f7f3)}
.industrial-doc-meta span{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.industrial-doc-meta b{display:block;margin-top:3px;font-size:10px}
.industrial-dossier-empty{padding:14px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--muted);line-height:1.45}
@media(max-width:1100px){
  .industrial-dossier-split{grid-template-columns:1fr}
  .industrial-doc-preview{position:static;max-height:none;overflow:visible}
  .industrial-doc-list{max-height:min(52vh,420px)}
  .industrial-doc-stage{max-height:min(48vh,420px)}
}

/* wr454 · Cadeia B · Plano Build (identidade + gate estrutural leitura) */
.industrial-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 12px}
.industrial-info-grid>div{background:#fff;padding:10px 12px}
.industrial-info-grid span{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.industrial-info-grid b{display:block;margin-top:4px;font-size:11px;line-height:1.35;word-break:break-word;font-weight:650}
.industrial-gate-struct{border:1px solid var(--green,#5f7f62);border-left-width:4px;background:#fff;padding:12px;margin:0 0 12px;color:var(--green,#5f7f62)}
.industrial-gate-struct.is-blocked{border-color:var(--amber,#ad742f);color:var(--amber,#ad742f)}
.industrial-gate-struct span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase}
.industrial-gate-struct b{display:block;margin-top:4px;font-size:13px;color:var(--ink)}
.industrial-gate-struct small{display:block;margin-top:4px;font-size:10px;color:var(--muted);line-height:1.4}
.industrial-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 14px}
.industrial-kpi>div{background:#fff;padding:12px}
.industrial-kpi span{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.industrial-kpi b{display:block;margin-top:4px;font-size:14px;font-weight:650}
.industrial-kpi b.is-ready{color:var(--green,#5f7f62)}
.industrial-kpi b.is-blocked{color:var(--amber,#ad742f)}
.industrial-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:11px 12px;border:1px solid var(--line);background:#fff;margin-bottom:6px}
.industrial-plan-row.ok{border-left:3px solid var(--green,#5f7f62)}
.industrial-plan-row.warn{border-left:3px solid var(--amber,#ad742f)}
.industrial-plan-row b{display:block;font-size:12px}
.industrial-plan-row small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.industrial-plan-row button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 12px;font-size:10px;font-weight:600;cursor:pointer}
.industrial-plan-row button:disabled{opacity:.4;cursor:default}
@media(max-width:900px){
  .industrial-info-grid,.industrial-kpi{grid-template-columns:1fr}
  .industrial-plan-row{grid-template-columns:1fr}
}

/* wr455 · Cadeia B · BOM (quantidades · sem €) */
.industrial-bom-table{width:100%;border-collapse:collapse;background:#fff;font-size:11px;margin:0 0 12px}
.industrial-bom-table th,.industrial-bom-table td{border:1px solid var(--line);padding:9px;text-align:left;vertical-align:top}
.industrial-bom-table th{background:#f2f2ee;font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:650}
.industrial-bom-table td b{font-size:11px}
.industrial-bom-wrap{max-height:min(52vh,420px);overflow:auto;border:1px solid var(--line);margin-bottom:12px}
.industrial-bom-wrap .industrial-bom-table{margin:0;border:0}
.industrial-bom-wrap .industrial-bom-table th{position:sticky;top:0;z-index:1}
.industrial-pill{display:inline-block;padding:2px 5px;border:1px solid var(--ink);font-size:7px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.industrial-pill.open{border-color:#1f4d45;color:#1f4d45}
.industrial-pill.lock{border-color:var(--muted);color:var(--muted)}
.industrial-bom-table tr.is-open{cursor:pointer}
.industrial-bom-table tr.is-open:hover{background:#f7f7f3}
.industrial-bom-table tr.is-lock{opacity:.72}

/* wr456 · Cadeia B · Fornecimento (Σ biblioteca · sem margem) */
.industrial-finance-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 14px}
.industrial-finance-banner>div{background:#fff;padding:12px}
.industrial-finance-banner span{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.industrial-finance-banner b{display:block;margin-top:4px;font-size:15px;font-weight:650}
.industrial-finance-banner em{display:block;margin-top:3px;font-style:normal;font-size:9px;color:var(--muted)}
.industrial-lib-costs{border:1px solid var(--line);background:#fff;margin:0 0 14px}
.industrial-lib-lh{padding:10px 12px;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.industrial-lib-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line)}
.industrial-lib-row:last-child{border-bottom:0}
.industrial-lib-row b{display:block;font-size:12px}
.industrial-lib-row small{display:block;margin-top:2px;font-size:9px;color:var(--muted)}
.industrial-lib-row .amt{font-size:12px;font-weight:650;white-space:nowrap}
.industrial-lib-row .st{font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-width:4.5em;text-align:right}
.industrial-lib-row.muted{opacity:.75;background:#fafaf7}
.industrial-lib-row.total{background:#f2f2ee}
.industrial-lib-row.total .st{color:#1f4d45}
.industrial-supply-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(240px,.95fr);gap:12px;align-items:start;margin:0 0 14px}
.industrial-smf{border:1px solid var(--line);background:#fff;padding:0;display:flex;flex-direction:column;min-height:200px}
.industrial-smf>header{padding:10px 12px;border-bottom:1px solid var(--line)}
.industrial-smf>header span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.industrial-smf>header b{display:block;margin-top:3px;font-size:13px}
.industrial-smf>header small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.industrial-smf-list{display:flex;flex-direction:column;gap:0;max-height:280px;overflow:auto}
.industrial-smf-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 12px;text-align:left;cursor:pointer;font:inherit;color:inherit}
.industrial-smf-option:hover{background:#f7f7f3}
.industrial-smf-option.is-current{background:var(--ink);color:#fff}
.industrial-smf-option.is-current small{color:rgba(255,255,255,.65)}
.industrial-smf-option.is-preferred:not(.is-current){border-left:3px solid #1f4d45}
.industrial-smf-option b{display:block;font-size:11px}
.industrial-smf-option small{display:block;margin-top:2px;font-size:8px;color:var(--muted)}
.industrial-smf-option em{font-style:normal;font-size:11px;font-weight:650;white-space:nowrap}
.industrial-smf-note{margin:0;padding:10px 12px;font-size:9px;color:var(--muted);line-height:1.4}
.industrial-smf>button{margin:0 12px 12px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 12px;font-size:10px;font-weight:600;cursor:pointer}

/* wr457 · Cadeia B · Factory / Site (custo ≠ margem) */
.industrial-cpq{border:1px solid var(--line);background:#fff;padding:12px;margin:0 0 14px}
.industrial-cpq>span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.industrial-cpq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.industrial-cpq-grid>div{background:#fafaf7;padding:10px 12px}
.industrial-cpq-grid span{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.industrial-cpq-grid b{display:block;margin-top:4px;font-size:13px;font-weight:650}
.industrial-cpq>small{display:block;margin-top:8px;font-size:9px;color:var(--muted);line-height:1.4}

/* wr458 · A↔B stale banner (aviso · sem bloqueio) */
.industrial-stale-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;margin:0 0 14px;border:1px solid var(--amber,#ad742f);border-left-width:4px;background:#fff}
.industrial-stale-banner span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber,#ad742f)}
.industrial-stale-banner b{display:block;margin-top:3px;font-size:13px;font-weight:650;color:var(--ink)}
.industrial-stale-banner small{display:block;margin-top:4px;font-size:10px;color:var(--muted);line-height:1.4}
.industrial-stale-actions{display:flex;flex-wrap:wrap;gap:6px}
.industrial-stale-actions button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 12px;font-size:10px;font-weight:600;cursor:pointer}
.industrial-stale-actions button.secondary{background:#fff;color:var(--ink)}

/* wr459 · Factory/Site a partir de B sem sair do Modo Industrialização */
/* wr460 · Gate Territory nível 1 · sinal no título/detail · sem bloqueio */
/* wr461 · Territory L2 opt-in · gateRequiresTerritoryComplete (default false) */
/* wr462 · Esconder Stage HUD + biblioteca de módulos no Modo B (exceto docks Factory/Site) */
.industrial-ops-strip{position:absolute;top:0;left:0;right:0;z-index:49;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96)}
.industrial-ops-strip[hidden]{display:none!important}
.industrial-ops-strip span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.industrial-ops-strip b{display:block;margin-top:2px;font-size:12px;font-weight:650}
.industrial-ops-strip small{display:block;margin-top:2px;font-size:9px;color:var(--muted)}
.industrial-ops-strip button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 12px;font-size:10px;font-weight:600;cursor:pointer}
.workspace-screen.industrialization-mode.industrial-ops-open .industrial-work-pane{display:none!important}
@media(max-width:900px){
  .industrial-finance-banner,.industrial-supply-split,.industrial-cpq-grid,.industrial-stale-banner,.industrial-ops-strip{grid-template-columns:1fr}
  .industrial-lib-row{grid-template-columns:minmax(0,1fr) auto}
  .industrial-lib-row .st{grid-column:2;text-align:right}
}

/* wr474 · Régua */
.tool#measureTool.active{color:#111}
.plan-measure-node{fill:#166534;stroke:#f7f7f3;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}

/* wr588 · Orientação eixo Documentação → matriz → emissão (piloto usabilidade) */
.docs-axis-guide{margin:12px 0 14px;padding:12px 14px;border:1px solid rgba(122,87,49,.35);border-radius:10px;background:rgba(255,252,247,.95)}
.docs-axis-guide .space-editor-head{margin-bottom:6px}
.docs-axis-steps{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;border:1px solid #e4e4de;background:#fff}
.docs-axis-step{display:grid;gap:2px;padding:10px 12px;border-bottom:1px solid #e4e4de}
.docs-axis-step:last-child{border-bottom:0}
.docs-axis-step small{opacity:.78;font-size:10px;line-height:1.4;color:#666}
.docs-axis-step b{font-size:12px;font-weight:600;color:#171714}
.docs-axis-step.status-done b::before{content:"✓ ";color:#2f5d4a}
.docs-axis-step.status-ready b::before{content:"→ ";color:#526f68}
.docs-axis-step.status-blocked b::before{content:"✕ ";color:#8a4b2f}
.docs-axis-step.status-hold b::before{content:"· ";color:#666}
.docs-axis-step.is-current{background:#f7f7f3;border-left:3px solid #7a5731;padding-left:9px}
.docs-axis-step.is-actionable{cursor:pointer}
.docs-axis-step.is-actionable:hover,.docs-axis-step.is-actionable:focus{background:#f8f3ec;outline:0}
.docs-axis-next{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.docs-axis-next>span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#888}
.docs-axis-next>b{font-size:12px;font-weight:650;color:#171714;flex:1 1 160px}
.docs-axis-missing{margin:10px 0 0;padding:8px 12px;border:1px solid #e8d9c8;background:#fffaf4;font-size:11px;line-height:1.45;color:#5c4a38}
.docs-axis-missing li{margin:2px 0}
.regulatory-form .field-req,.document-issue-form .field-req{display:inline-block;margin-left:6px;padding:1px 5px;border:1px solid #7a5731;color:#7a5731;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.regulatory-form .field-opt,.document-issue-form .field-opt{display:inline-block;margin-left:6px;padding:1px 5px;border:1px solid #cfcfc9;color:#8a8a84;font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.regulatory-form .field-hint,.document-issue-form .field-hint{display:block;margin-top:4px;font-size:10px;line-height:1.35;color:#888;font-weight:400;letter-spacing:0;text-transform:none}


/* wr495/wr515 · RR-018 percurso real (faixa accionável) */
.real-path-strip{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.28);border-radius:10px;background:rgba(255,255,255,.88)}
.real-path-modo-b-banner{margin:10px 0 0;padding:10px 12px;border:1px solid rgba(95,127,98,.35);border-radius:8px;background:rgba(95,127,98,.08);display:grid;gap:2px}
.real-path-modo-b-banner span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.real-path-modo-b-banner b{font-size:12px;font-weight:650;color:var(--ink)}
.real-path-modo-b-banner small{font-size:11px;line-height:1.4;color:var(--muted)}
/* wr544 · pós-emissão no dossier (Documentação → Gate) · não é faixa de header */
.document-issued-handoff{margin:12px 0 0;padding:12px 14px;border:1px solid rgba(95,127,98,.4);border-radius:8px;background:rgba(95,127,98,.07);display:grid;gap:8px}
.document-issued-handoff .space-editor-head{margin:0;padding:0;border:0}
.document-issued-handoff .document-actions{margin:0;display:flex;flex-wrap:wrap;gap:8px}
.document-issued-handoff.real-path-focus,.document-issue-form.real-path-focus{outline:2px solid rgba(47,93,74,.55);outline-offset:2px}
.real-path-mode-fogo-beta{color:#8a4b2f}
.real-path-mode-real-project{color:#2f5d4a}
.real-path-steps{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0;border:1px solid #e4e4de;background:#fff}
.real-path-step{display:grid;gap:2px;padding:10px 12px;border-bottom:1px solid #e4e4de}
.real-path-step:last-child{border-bottom:0}
.real-path-step small{opacity:.78;font-size:10px;line-height:1.4;color:#666}
.real-path-step b{font-size:12px;font-weight:600;color:#171714}
.real-path-step.status-done b::before{content:"✓ ";color:#2f5d4a}
.real-path-step.status-ready b::before{content:"→ ";color:#526f68}
.real-path-step.status-blocked b::before{content:"✕ ";color:#8a4b2f}
.real-path-step.status-hold b::before{content:"· ";color:#666}
.real-path-step.is-current{background:#f7f7f3;border-left:3px solid #526f68;padding-left:9px}
.real-path-step.is-actionable{cursor:pointer}
.real-path-step.is-actionable:hover,.real-path-step.is-actionable:focus{background:#f3f8f4;outline:0}
.real-path-next{margin-top:12px}
.real-path-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.real-path-actions .system-action{min-height:34px}
.real-path-demo-blocked{font-size:10px;line-height:1.4;color:#8a4b2f}
.real-path-e2e-done{color:#2f5d4a;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.real-path-strip[data-e2e="1"]{border-color:rgba(47,93,74,.45)}
.real-path-focus{outline:2px solid #526f68;outline-offset:3px;transition:outline-color .3s}

/* wr516 · Percurso real · chip no chrome (atalho fora do CI) */
.real-path-chrome-chip{position:absolute;top:0;left:0;right:0;z-index:48;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:rgba(247,247,243,.96)}
.real-path-chrome-chip[hidden]{display:none!important}
.real-path-chrome-chip span{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.real-path-chrome-chip b{display:block;margin-top:2px;font-size:12px;font-weight:650;color:#171714;line-height:1.35}
.real-path-chrome-chip small{display:block;margin-top:2px;font-size:9px;color:var(--muted);line-height:1.4}
.real-path-chrome-chip .system-action{min-height:34px;white-space:nowrap}
.real-path-chrome-chip[data-mode="fogo-beta"] b{color:#8a4b2f}
.real-path-chrome-chip[data-mode="real-project"] b{color:#2f5d4a}
.real-path-chrome-chip[data-e2e="1"]{border-bottom-color:rgba(47,93,74,.35)}
.real-path-chrome-chip[data-status="blocked"] .system-action{opacity:.85}
.workspace-screen.industrial-ops-open .real-path-chrome-chip{top:52px}
/* wr537 · chip Percurso Real não tapa overlays de canto (TWIN SYSTEMS / SITE / FACTORY / MEP) */
.workspace-screen.real-path-chip-open .twin-systems-status-overlay,
.workspace-screen.real-path-chip-open .twin-status-overlay,
.workspace-screen.real-path-chip-open .site-status-overlay,
.workspace-screen.real-path-chip-open .factory-status-overlay,
.workspace-screen.real-path-chip-open .mep-xray-mount .mep-xray-strip{
  top:72px;
}
.workspace-screen.industrial-ops-open.real-path-chip-open .twin-systems-status-overlay,
.workspace-screen.industrial-ops-open.real-path-chip-open .twin-status-overlay,
.workspace-screen.industrial-ops-open.real-path-chip-open .site-status-overlay,
.workspace-screen.industrial-ops-open.real-path-chip-open .factory-status-overlay,
.workspace-screen.industrial-ops-open.real-path-chip-open .mep-xray-mount .mep-xray-strip{
  top:124px;
}
@media(max-width:900px){
  .real-path-chrome-chip{grid-template-columns:1fr}
  .real-path-chrome-chip .system-action{width:100%}
  .workspace-screen.real-path-chip-open .twin-systems-status-overlay,
  .workspace-screen.real-path-chip-open .twin-status-overlay,
  .workspace-screen.real-path-chip-open .site-status-overlay,
  .workspace-screen.real-path-chip-open .factory-status-overlay,
  .workspace-screen.real-path-chip-open .mep-xray-mount .mep-xray-strip{
    top:96px;
  }
}


/* wr497 · RR-018 passo 3 · C1 Assembly agregação */
.cam-assembly-strip{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);border-radius:10px;background:rgba(247,247,243,.92)}
.cam-assembly-inputs{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.cam-assembly-input{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.cam-assembly-input small{grid-column:1/-1;opacity:.78}
.cam-assembly-input.status-ready em,.cam-assembly-input.status-issued em{color:#2f5d4a}
.cam-assembly-input.status-partial em{color:#6b5a2e}
.cam-assembly-input.status-open em,.cam-assembly-input.status-missing em{color:#8a4b2f}
.cam-assembly-input.lane-tipologico b::before{content:"T · "}
.cam-assembly-input.lane-territorial b::before{content:"U · "}
.cam-assembly-input.lane-structural b::before{content:"E · "}
.cam-assembly-input.lane-cam b::before{content:"C · "}

/* wr498 · RR-018 passo 4 · C4 Legal-assist */
.municipal-legal-assist-board{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);border-radius:10px;background:rgba(247,247,243,.92)}
.cam-legal-lanes{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.cam-legal-lane{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.cam-legal-lane small{grid-column:1/-1;opacity:.78}
.cam-legal-lane.status-ready em{color:#2f5d4a}
.cam-legal-lane.status-open em{color:#8a4b2f}

/* wr521 · C5 gate · emissão para submissão (visível, ainda bloqueada) */
.municipal-c5-gate-board{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);border-radius:10px;background:rgba(247,247,243,.92)}
.cam-c5-requirements{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.cam-c5-req{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.cam-c5-req small{grid-column:1/-1;opacity:.78}
.cam-c5-req.status-ready em{color:#2f5d4a}
.cam-c5-req.status-open em{color:#8a4b2f}
.municipal-c5-gate-board .real-path-canon-row{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 8px;list-style:none;padding:0;font-size:11px;color:#555}
.municipal-c5-gate-board .real-path-canon-row li{margin:0}

.municipal-attachment-row.legal-assist{border-left:3px solid rgba(82,111,104,.35);padding-left:8px}


/* wr509 · Avaliar resumo + retoma */
.sa-eval-matrix-compact .sa-eval-matrix-keys{margin:0 0 10px}
.sa-eval-matrix-compact .sa-eval-matrix-more{margin:0 0 12px}
.sa-eval-matrix-compact .sa-eval-matrix-list li{grid-template-columns:auto minmax(0,1fr) auto}
.ws-site-decision .text-btn{letter-spacing:.04em}


/* wr510 · modo guiado */
.sa-guide-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0;padding:12px 14px;border:1px solid var(--line);border-top:0;background:#f7f7f3}
.sa-guide-toggle{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#171714;cursor:pointer;user-select:none}
.sa-guide-toggle input{width:14px;height:14px;accent-color:#171714}
.sa-guide-copy{flex:1 1 200px;display:flex;flex-direction:column;gap:4px;min-width:0}
.sa-guide-copy>span{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-guide-copy>b{font-size:13px;font-weight:600;color:#171714;line-height:1.35}
.sa-guide-bar .system-action{min-height:36px}
/* wr603 · memória guiada: já feito / falta (read-only do state) */
.sa-guide-memory{display:grid;grid-template-columns:1.15fr .85fr;gap:0;margin:0 0 8px;border:1px solid var(--line);border-top:0;background:#fff}
.sa-guide-memory-col{padding:10px 12px;min-width:0}
.sa-guide-memory-col+.sa-guide-memory-col{border-left:1px solid var(--line);background:#fafaf7}
.sa-guide-memory-col>span{display:block;margin:0 0 6px;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.sa-guide-memory-col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.sa-guide-memory-col li{font-size:11px;line-height:1.4;color:#333;padding:2px 0 2px 14px;position:relative}
.sa-guide-memory-done li::before{content:'●';position:absolute;left:0;color:#2f6b3a;font-size:9px;top:4px}
.sa-guide-memory-gap li::before{content:'○';position:absolute;left:0;color:#8a5b32;font-size:9px;top:4px}
.sa-guide-memory-col li.is-empty{color:#888;padding-left:0}
.sa-guide-memory-col li.is-empty::before{content:none}
.site-analysis-card:not(.sa-guided) .sa-guide-memory{opacity:.92}
@media(max-width:900px){
  .sa-guide-memory{grid-template-columns:1fr}
  .sa-guide-memory-col+.sa-guide-memory-col{border-left:0;border-top:1px solid var(--line)}
}
.site-analysis-card.sa-guided .sa-stage:not(.is-focus){display:none}
.site-analysis-card.sa-guided .sa-stage.is-focus{outline:0;outline-offset:0;opacity:1}
.site-analysis-card:not(.sa-guided) .sa-guide-bar .primary-system-action{opacity:.85}
/* wr571 · S7 · modo guiado: uma CTA de percurso (#saGuideNextBtn). Gate/stage-nav/footer demoted — handlers intactos. */
.site-analysis-card.sa-guided .sa-stage-gate-next.sa-next-mirrored .system-action{display:none}
.site-analysis-card.sa-guided .sa-stage-nav>.primary-system-action{display:none}
.site-analysis-card.sa-guided #continueToSystemBtn{display:none}
.site-analysis-card.sa-guided .sa-guide-bar.is-sole-cta #saGuideNextBtn{border-color:#171714}
.site-analysis-card.sa-guided .sa-stage-gate-next.sa-next-mirrored>span::after{content:' · na barra acima'}
@media (max-width:720px){
  .sa-guide-bar{flex-direction:column;align-items:stretch}
  .sa-guide-bar .system-action{width:100%}
}


/* wr511 · síntese colapsável + avanço */
.sa-summary-details{margin:14px 0 0}
.sa-summary-details .analysis-summary-grid{margin:0;border:0;padding:12px 14px}
.site-analysis-card.sa-guided .sa-summary-details:not([open]){margin-bottom:0}
.sa-guide-bar #saGuideAdvanceBtn{border-color:#171714;color:#171714}
.sa-guide-bar #saGuideAdvanceBtn:hover{background:#171714;color:#fff}


/* wr512 · evidência pendente em foco */
.evidence-row.is-pending-focus{background:#f7f7f3;box-shadow:inset 3px 0 0 #171714;padding-left:12px;padding-right:12px}
.evidence-row.is-pending-focus .evidence-actions .system-mini-action[data-evidence-decision="accepted"]{border-color:#171714;color:#171714}


/* wr513 · guia pós-fonte prioritário */
.sa-source-return.is-active{border-color:#171714;background:#f7f7f3;box-shadow:inset 3px 0 0 #171714}
.sa-source-return-priority{margin:0 0 10px;font-size:11px;line-height:1.45;color:#555}
.sa-source-return-gaps li.is-priority b{color:#171714}
.sa-source-return-gaps li.is-priority{background:#fff}
/* wr560 · residuais DGT no guia pós-fonte */
.sa-source-return-dgt-label{margin:0 0 6px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#666}
.sa-source-return-dgt{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.sa-source-return-dgt li{padding:8px 10px;border:1px solid #ecece7;background:#fff}
.sa-source-return-dgt li b{display:block;font-size:12px;color:#171714}
.sa-source-return-dgt li small{display:block;margin-top:3px;font-size:11px;line-height:1.4;color:#666}
.sa-source-return-dgt li.is-hit{border-color:#c4b28a;box-shadow:inset 3px 0 0 #c4b28a}
.sa-source-return-dgt li.is-pdm{border-color:#5a7a9a;box-shadow:inset 3px 0 0 #5a7a9a}
.sa-source-return-dgt li.is-clear{border-color:#b8c4b0}
.sa-source-return-dgt li.is-urgent b{color:#171714}


/* wr517 · Percurso real · modo guiado + fecho honesto */
.real-path-guide-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:10px 0 0;padding:10px 0 0;border-top:1px solid #e4e4de}
.real-path-strip.rp-guided .real-path-step:not(.is-current):not(.status-done){display:none}
.real-path-strip.rp-guided .real-path-step.status-done:not(.is-current){opacity:.62}
.real-path-strip:not(.rp-guided) .real-path-guide-bar .system-action{opacity:.85}
.real-path-close{margin-top:12px;padding:12px 14px;border:1px solid #e4e4de;background:#f7f7f3}
.real-path-close-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;align-items:baseline;margin:0 0 8px}
.real-path-close-head>span{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#888}
.real-path-close-head>b{font-size:12px;font-weight:600;color:#171714;line-height:1.35}
.real-path-close>p{margin:0 0 10px;font-size:11px;line-height:1.45;color:#555}
.real-path-close.tone-complete{border-color:rgba(47,93,74,.35);background:#f3f8f4}
.real-path-close.tone-complete .real-path-close-head>b{color:#2f5d4a}
.real-path-close.tone-fogo{border-color:rgba(138,75,47,.35);background:#fbf6f3}
.real-path-close.tone-fogo .real-path-close-head>b{color:#8a4b2f}
.real-path-canon-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.real-path-canon-row li{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#666;padding:4px 7px;border:1px solid #d8d8d2;background:#fff}
.real-path-canon-row li:nth-child(even){border:0;background:transparent;padding:0;color:#999}
@media(max-width:720px){
  .real-path-guide-bar{flex-direction:column;align-items:stretch}
}


/* wr518 · Fogo mínimo · demo piloto (próxima acção + RR-018) */
.fogo-demo-strip{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);background:rgba(247,247,243,.92)}
.fogo-demo-next{margin-top:12px}
.fogo-rr018-board{margin:12px 0;padding:12px 14px;border:1px solid #e4e4de;background:#fff}
.fogo-rr018-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:0;border:1px solid #e4e4de}
.fogo-rr018-row{display:grid;gap:2px;padding:10px 12px;border-bottom:1px solid #e4e4de}
.fogo-rr018-row:last-child{border-bottom:0}
.fogo-rr018-row b{font-size:12px;font-weight:600;color:#171714}
.fogo-rr018-row small{font-size:10px;line-height:1.4;color:#666}
.fogo-rr018-row.is-blocked b::before{content:"✕ ";color:#8a4b2f}
.fogo-rr018-row.is-open b::before{content:"✓ ";color:#2f5d4a}
.fogo-rr018-row.is-blocked{background:#fbf6f3}


/* wr520 · Fogo demo · modo guiado + fecho ciclo */
.fogo-guide-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:12px 0 0;padding:10px 0 0;border-top:1px solid #e4e4de}
.dwelling-pilot.fogo-guided .dwelling-thread-row:not(.is-active){display:none}
.dwelling-pilot:not(.fogo-guided) .fogo-guide-bar .system-action{opacity:.85}
.fogo-demo-close{margin-top:14px;padding:12px 14px;border:1px solid #e4e4de;background:#f7f7f3}
.fogo-demo-close>p{margin:0 0 10px;font-size:11px;line-height:1.45;color:#555}
.fogo-demo-close .real-path-canon-row{margin-bottom:8px}
.fogo-demo-close .real-path-canon-row:last-child{margin-bottom:0}
@media(max-width:720px){
  .fogo-guide-bar{flex-direction:column;align-items:stretch}
}

/* wr522 · C5 declaração humana */
.c5-confirm-row{display:flex;gap:8px;align-items:flex-start;margin:10px 0;font-size:12px;line-height:1.4;color:#444}
.c5-confirm-row input{margin-top:2px;flex:0 0 auto}
.municipal-c5-issue-form{margin-top:12px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08)}

/* wr523 · C5 ciclo · fecho honesto */
.c5-cycle-close{margin-top:14px;padding:12px 14px;border:1px solid #e4e4de;background:#f7f7f3}
.c5-cycle-close>p{margin:0 0 10px;font-size:11px;line-height:1.45;color:#555}
.c5-cycle-close .real-path-canon-row{margin-bottom:8px}
.c5-cycle-close .real-path-canon-row:last-child{margin-bottom:0}
.c5-cycle-close.tone-complete{border-color:rgba(47,93,74,.35);background:#f3f8f4}
.c5-cycle-close.tone-complete .real-path-close-head>b{color:#2f5d4a}

/* wr524 · Filed gate · registo de submissão (visível, ainda bloqueado) */
.municipal-filed-gate-board{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);border-radius:10px;background:rgba(247,247,243,.92)}
.cam-filed-requirements{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.cam-filed-req{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.cam-filed-req small{grid-column:1/-1;opacity:.78}
.cam-filed-req.status-ready em{color:#2f5d4a}
.cam-filed-req.status-open em{color:#8a4b2f}
.municipal-filed-gate-board .real-path-canon-row{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 8px;list-style:none;padding:0;font-size:11px;color:#555}

/* wr525 · Filed declaração humana */
.municipal-filed-form{margin-top:12px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08)}

/* wr526 · Filed ciclo · fecho honesto */
.filed-cycle-close{margin-top:14px;padding:12px 14px;border:1px solid #e4e4de;background:#f7f7f3}
.filed-cycle-close>p{margin:0 0 10px;font-size:11px;line-height:1.45;color:#555}
.filed-cycle-close .real-path-canon-row{margin-bottom:8px}
.filed-cycle-close .real-path-canon-row:last-child{margin-bottom:0}
.filed-cycle-close.tone-complete{border-color:rgba(47,93,74,.35);background:#f3f8f4}
.filed-cycle-close.tone-complete .real-path-close-head>b{color:#2f5d4a}

/* wr527 · Beta industrial · critérios (visível, rótulo pendente) */
.maturity-criteria-board{margin:12px 0;padding:12px 14px;border:1px solid rgba(82,111,104,.22);border-radius:10px;background:rgba(247,247,243,.92)}
.maturity-criteria-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.maturity-criteria-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}
.maturity-criteria-row small{grid-column:1/-1;opacity:.78}
.maturity-criteria-row.status-ready em{color:#2f5d4a}
.maturity-criteria-row.status-open em{color:#8a4b2f}
.maturity-criteria-row.status-out em{color:#6b5a2e}
.maturity-criteria-board .real-path-canon-row{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 8px;list-style:none;padding:0;font-size:11px;color:#555}

/* wr566 · confronto tipológico índices (Avaliar) */
.sa-spatial-confrontation{margin:14px 0 0;padding:14px 12px;border:1px solid var(--line);background:#fff}
.sa-spatial-confrontation-status{margin:0 0 10px;font-size:11px;line-height:1.45;color:#444}
.sa-spatial-confrontation-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sa-spatial-confrontation-list li{padding:8px 10px;border:1px solid #ecece6;background:#fafaf8}
.sa-spatial-confrontation-list li.is-ok{box-shadow:inset 3px 0 0 #2f6b3a}
.sa-spatial-confrontation-list li.is-exceed{box-shadow:inset 3px 0 0 #a33}
.sa-spatial-confrontation-list li.is-missing{box-shadow:inset 3px 0 0 #c4b28a}
.sa-spatial-confrontation-list b{display:block;font-size:11px;font-weight:600}
.sa-spatial-confrontation-list span{display:block;margin-top:3px;font-size:10px;color:#666;line-height:1.4}
.sa-spatial-confrontation-honesty{margin:10px 0 0;font-size:10px;color:#777;line-height:1.4}

/* wr581 · guia corpus PDM · frases numa linha (2×2 no painel estreito) */
.planning-corpus-guide{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.planning-corpus-guide li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;align-items:center;padding:8px 8px;border:1px solid var(--line);background:#fafaf8;min-width:0}
.planning-corpus-guide li>span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid #d8d8d2;font-size:11px;font-weight:650;background:#fff}
.planning-corpus-guide b{display:block;font-size:11px;font-weight:600}
.planning-corpus-guide small{display:block;margin-top:2px;font-size:10px;line-height:1.25;color:#777;white-space:nowrap}
.planning-corpus-guide li.is-current{box-shadow:inset 3px 0 0 #171714;background:#fff}
.planning-corpus-guide li.is-done>span{background:#171714;color:#fff;border-color:#171714}
.planning-corpus-guide li.is-done:not(.is-current){opacity:.85}
/* wr569 · empty-state confronto Stage */
.sa-spatial-confrontation-next{margin:0 0 8px;padding:8px 10px;border:1px solid #dedede;background:#f7f7f3;font-size:11px;line-height:1.45;color:#444}
.sa-spatial-confrontation-next[hidden]{display:none!important}
@media(max-width:720px){.planning-corpus-guide{grid-template-columns:1fr}}

/* wr605 · Stage foco desenho: chrome de percurso fora do caminho (motores intactos) */
.workspace-screen.stage-focus-mode #workspaceNextStep,
.workspace-screen.stage-focus-mode.workspace-next-step-open #workspaceNextStep{display:none!important}
/* wr621 · handoff Gate A→B sobrevive ao silêncio Stage (só quando industrialReady / gate aberto) */
.workspace-screen.stage-focus-mode.workspace-next-step-industrial-handoff #workspaceNextStep,
.workspace-screen.stage-focus-mode.workspace-next-step-open.workspace-next-step-industrial-handoff #workspaceNextStep{
  display:grid!important
}
.workspace-screen.stage-focus-mode.workspace-next-step-open{
  grid-template-rows:clamp(52px,7dvh,68px) minmax(0,1fr)!important;
}
.workspace-screen.stage-focus-mode #realPathChromeChip,
.workspace-screen.stage-focus-mode.real-path-chip-open #realPathChromeChip{display:none!important}
.workspace-screen.stage-focus-mode .information-center-advice{display:none!important}
.workspace-screen.stage-focus-mode #wsFogoThread{display:none!important}
.workspace-screen.stage-focus-mode .ws-site-decision{opacity:.72}
.workspace-screen.stage-focus-mode #siteOkDrawBridge{display:none!important}
.workspace-screen.stage-focus-mode #dossierWayBridge{display:none!important}
.workspace-screen.stage-focus-mode.site-ok-bridge-open,
.workspace-screen.stage-focus-mode.dossier-way-bridge-open{
  grid-template-rows:clamp(52px,7dvh,68px) minmax(0,1fr)!important;
}
/* IC pode expandir-se sob pedido; advice permanece silenciada no Stage */

/* wr606 · nav 01–08 = MAPA de domínios (≠ pipeline / ≠ percurso RR-018) */
.workflow-nav.workflow-nav-map{
  gap:2px;
  align-items:center;
}
.workflow-nav.workflow-nav-map .workflow-nav-eyebrow{
  flex:0 0 auto;
  margin:0 6px 0 0;
  padding:3px 6px;
  border:1px solid #e2e2dc;
  background:#fafaf7;
  font-size:7px;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#8a8a84;
  line-height:1;
  white-space:nowrap;
}
.workflow-nav.workflow-nav-map .stage:not(:last-child):after{
  /* sem traço-pipeline entre domínios */
  display:none!important;
}
.workflow-nav.workflow-nav-map .stage i{
  border-radius:2px; /* marcador de domínio · não círculo de passo */
}
.workflow-nav.workflow-nav-map .stage.is-complete i,
.workflow-nav.workflow-nav-map .stage.is-visited:not(.active):not(.os-active) i{
  background:transparent!important;
  border-color:#b8b8b2!important;
  color:#6f6f69!important;
}
.workflow-nav.workflow-nav-map .stage.is-complete,
.workflow-nav.workflow-nav-map .stage.is-visited:not(.active):not(.os-active){
  color:#6f6f69!important;
}
/* Percurso (faixa) vs mapa: contraste tipográfico leve */
.workspace-next-step-copy>span{
  letter-spacing:.1em;
}
.workspace-screen.workspace-next-step-open .workflow-nav-map .workflow-nav-eyebrow{
  border-color:#d8d8d2;
  color:#6f6f69;
}
@media(max-width:900px){
  .workflow-nav.workflow-nav-map .workflow-nav-eyebrow{display:none}
}
