.coordinate-indicator{position:absolute;left:12px;bottom:12px;z-index:12;width:72px;height:72px;border:1px solid var(--border-light);border-radius:var(--radius-control, 4px);background:color-mix(in srgb,var(--surface-card) 88%,transparent);box-shadow:var(--shadow-panel);pointer-events:none;-webkit-user-select:none;user-select:none}.coordinate-indicator svg{display:block;width:100%;height:100%}.coordinate-indicator-axis{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.coordinate-indicator-x{stroke:var(--ejot-red)}.coordinate-indicator-y{stroke:var(--text-primary)}.coordinate-indicator-z{stroke:var(--text-muted)}.coordinate-indicator-origin{fill:var(--text-primary)}.coordinate-indicator-label{font-family:Roboto Condensed,Arial,sans-serif;font-size:11px;font-weight:800;dominant-baseline:middle;text-anchor:middle}.coordinate-indicator-x-label{fill:var(--ejot-red)}.coordinate-indicator-y-label{fill:var(--text-primary)}.coordinate-indicator-z-label{fill:var(--text-muted)}@media (max-width: 600px),(pointer: coarse){.coordinate-indicator{left:8px;bottom:8px;width:62px;height:62px}}.project-plan-overview{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;background:var(--surface-card)}.project-plan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light)}.project-plan-roof-buttons,.project-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.project-plan-roof-buttons{min-width:0;flex:1 1 auto}.project-plan-stage{position:relative;display:flex;flex:1 1 auto;min-height:360px;overflow:hidden;background:var(--viewer-scene-bg)}.project-plan-svg{width:100%;height:100%;min-height:360px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.project-plan-svg:active{cursor:grabbing}.project-plan-roof>path{cursor:pointer}.project-plan-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-light);color:var(--text-secondary);font-size:var(--ws-small-size, 11px)}@media (max-width: 700px),(pointer: coarse){.project-plan-toolbar{align-items:stretch;flex-direction:column}.project-plan-actions{justify-content:flex-start}}.project-plan-stage{position:relative}.project-viewer-3d{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.project-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);background:var(--surface-card)}.project-viewer-roof-buttons{display:flex;min-width:0;flex:1 1 auto;flex-wrap:wrap;gap:var(--space-2)}.project-viewer-context-note{border-top:1px solid var(--border-light)}@media (max-width: 700px),(pointer: coarse){.project-viewer-toolbar{align-items:stretch;flex-direction:column}}.roof-geometry-editor.plan-editor{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;background:var(--surface-primary, #fff)}.geometry-tool-palette{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px;overflow-x:auto;overflow-y:visible;border-bottom:1px solid var(--border-light, #ddd);background:var(--surface-secondary, #f7f7f7);scrollbar-width:thin}.geometry-tool-group{display:grid;grid-template-rows:auto 1fr;gap:5px;flex:0 0 auto;padding-right:8px;border-right:1px solid var(--border-light, #ddd)}.geometry-tool-group:last-child{padding-right:0;border-right:0}.geometry-tool-group-title{color:var(--text-muted, #666);font:700 10px/1.1 Roboto Flex,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.geometry-tool-group-buttons{display:flex;align-items:center;gap:4px}.geometry-tool-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:5px 8px;border:1px solid var(--border-light, #d8d8d8);border-radius:4px;background:var(--surface-primary, #fff);color:var(--text-primary, #151515);font:600 11px/1.15 Roboto Flex,Arial,sans-serif;white-space:nowrap;cursor:pointer}.geometry-tool-button:hover:not(:disabled){border-color:var(--border-strong, #888);background:var(--surface-hover, #f0f0f0)}.geometry-tool-button.is-active{border-color:var(--ejot-red, #ce1230);background:color-mix(in srgb,var(--ejot-red, #ce1230) 9%,var(--surface-primary, #fff));color:var(--ejot-red, #ce1230)}.geometry-tool-button:focus-visible{outline:2px solid var(--ejot-red, #ce1230);outline-offset:1px}.geometry-tool-button:disabled{opacity:.42;cursor:default}.geometry-tool-button svg{flex:0 0 auto}.geometry-editor-workspace{position:relative;display:flex;flex:1 1 auto;min-width:0;min-height:0}.geometry-coordinates{position:relative;z-index:2;display:flex;flex-direction:column;flex:0 0 288px;width:288px;min-width:0;border-right:1px solid var(--border-light, #ddd);background:var(--surface-primary, #fff);transition:width .16s ease,flex-basis .16s ease}.geometry-coordinates.is-collapsed{flex-basis:38px;width:38px}.geometry-coordinate-header{display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:6px 8px 6px 10px;border-bottom:1px solid var(--border-light, #ddd)}.geometry-coordinate-title{font:700 11px/1.2 Roboto Flex,Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase}.geometry-coordinate-toggle{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-secondary, #444);cursor:pointer}.geometry-coordinate-toggle:hover{border-color:var(--border-light, #ddd);background:var(--surface-hover, #f3f3f3)}.geometry-coordinates.is-collapsed .geometry-coordinate-header{height:100%;min-height:150px;flex-direction:column;justify-content:flex-start;gap:10px;padding:8px 6px}.geometry-coordinates.is-collapsed .geometry-coordinate-title{writing-mode:vertical-rl;transform:rotate(180deg);margin-top:4px}.geometry-coordinate-body{min-height:0;overflow:auto;padding:6px}.geometry-coordinates.is-collapsed .geometry-coordinate-body{display:none}.geometry-coordinate-columns,.geometry-coordinate-row{display:grid;grid-template-columns:minmax(54px,1fr) 82px 82px 18px;gap:5px;align-items:center}.geometry-coordinate-columns{padding:2px 5px 5px;color:var(--text-muted, #666);font:600 9px/1.2 Roboto Flex,Arial,sans-serif}.geometry-coordinate-group{margin-bottom:7px;border:1px solid var(--border-light, #ddd);border-radius:4px;overflow:hidden}.geometry-coordinate-group summary{display:flex;align-items:center;gap:6px;min-height:30px;padding:5px 7px;background:var(--surface-secondary, #f7f7f7);color:var(--text-primary, #111);font:650 11px/1.2 Roboto Flex,Arial,sans-serif;cursor:pointer;-webkit-user-select:none;user-select:none}.geometry-coordinate-group summary::-webkit-details-marker{display:none}.geometry-coordinate-group summary:before{content:"▾";width:10px;color:var(--text-muted, #666)}.geometry-coordinate-group:not([open]) summary:before{content:"▸"}.geometry-coordinate-row{padding:4px 5px;border-top:1px solid var(--border-light, #eee);cursor:pointer}.geometry-coordinate-row:hover,.geometry-coordinate-row.is-selected{background:color-mix(in srgb,var(--ejot-red, #ce1230) 6%,transparent)}.geometry-coordinate-row.is-selected{box-shadow:inset 2px 0 var(--ejot-red, #ce1230)}.geometry-coordinate-label{overflow:hidden;color:var(--text-primary, #111);font:650 10px/1.2 Roboto Flex,Arial,sans-serif;text-overflow:ellipsis;white-space:nowrap}.geometry-coordinate-input{width:100%;min-width:0;height:26px;padding:3px 5px;border:1px solid var(--border-light, #d6d6d6);border-radius:3px;background:var(--surface-primary, #fff);color:var(--text-primary, #111);font:500 10px/1.2 Roboto Mono,Roboto Condensed,monospace;text-align:right}.geometry-coordinate-input:focus{border-color:var(--ejot-red, #ce1230);outline:1px solid var(--ejot-red, #ce1230)}.geometry-coordinate-problem,.geometry-opening-problem{display:inline-block;width:8px;height:8px;margin:auto;border-radius:50%;background:var(--status-fail, #ce1230)}.geometry-canvas-shell{position:relative;display:flex;flex:1 1 auto;min-width:0;min-height:0;flex-direction:column}.roof-geometry-editor .plan-canvas-host{position:relative;flex:1 1 auto;min-height:260px}.roof-geometry-editor .plan-canvas{display:block;outline:none}.geometry-canvas-hint{position:absolute;left:10px;bottom:10px;z-index:1;max-width:min(520px,calc(100% - 20px));padding:5px 8px;border:1px solid var(--border-light, #ddd);border-radius:4px;background:color-mix(in srgb,var(--surface-primary, #fff) 92%,transparent);color:var(--text-secondary, #444);font:500 10px/1.3 Roboto Flex,Arial,sans-serif;pointer-events:none}.roof-geometry-editor .plan-status{flex:0 0 auto}@media (max-width: 900px){.geometry-tool-button span{display:none}.geometry-tool-button{min-width:34px;padding-inline:6px}.geometry-tool-group-title{font-size:9px}.geometry-coordinates:not(.is-collapsed){position:absolute;inset:0 auto 0 0;width:min(288px,82vw);flex-basis:min(288px,82vw);box-shadow:6px 0 18px #0000001f}.geometry-coordinates.is-collapsed{flex-basis:38px}}@media (prefers-reduced-motion: reduce){.geometry-coordinates{transition:none}}.geometry-tool-palette-row{display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px;min-width:max-content}.geometry-tool-palette-row+.geometry-tool-palette-row{padding-top:6px;border-top:1px dashed var(--border-light, #ddd)}.geometry-tool-group-title{display:flex;align-items:center;gap:4px;cursor:grab;-webkit-user-select:none;user-select:none}.geometry-tool-group-title:active{cursor:grabbing}.geometry-tool-grip{color:var(--text-muted, #666);font-size:13px;line-height:1}.geometry-tool-new-row-drop{display:grid;place-items:center;min-height:5px;margin-top:-3px;border:1px dashed transparent;border-radius:3px;color:transparent;font:600 9px/1.2 Roboto Flex,Arial,sans-serif;transition:min-height .12s ease,color .12s ease,border-color .12s ease}.geometry-tool-palette:has(.geometry-tool-group-title:active) .geometry-tool-new-row-drop,.geometry-tool-new-row-drop:hover{min-height:28px;border-color:var(--border-strong, #888);color:var(--text-muted, #666)}.geometry-grid-size{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:4px 6px;border:1px solid var(--border-light, #d8d8d8);border-radius:4px;background:var(--surface-primary, #fff);color:var(--text-secondary, #444);font:600 10px/1.1 Roboto Flex,Arial,sans-serif}.geometry-grid-size input{width:70px;min-width:0;height:24px;border:1px solid var(--border-light, #d6d6d6);border-radius:3px;background:var(--surface-primary, #fff);color:var(--text-primary, #111);font:600 10px/1 Roboto Mono,monospace;text-align:right}.geometry-grid-size input:focus{border-color:var(--ejot-red, #ce1230);outline:1px solid var(--ejot-red, #ce1230)}.geometry-dynamic-input{position:absolute;z-index:7;display:grid;grid-template-columns:auto auto;gap:3px;min-width:160px;padding:4px;border:1px solid var(--border-strong, #888);border-radius:4px;background:color-mix(in srgb,var(--surface-primary, #fff) 94%,transparent);box-shadow:var(--shadow-panel);pointer-events:none}.geometry-dynamic-input>span{padding:3px 5px;border:1px solid var(--border-light, #ddd);border-radius:3px;color:var(--text-primary, #111);font:650 10px/1.2 Roboto Mono,monospace;white-space:nowrap}.geometry-dynamic-input>span.is-active{border-color:var(--ejot-red, #ce1230);color:var(--ejot-red, #ce1230)}.geometry-dynamic-input small{grid-column:1 / -1;color:var(--text-muted, #666);font:600 8px/1.2 Roboto Flex,Arial,sans-serif}.professional-section-editor{width:100%;min-height:0}.section-profile-inputs{display:flex;flex-direction:column;min-width:0}.section-editor-visual-only{display:flex;height:100%;min-height:0}.section-editor-visual-only .professional-section-drawing{width:100%;min-width:0}.build-up-layer-editor{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.build-up-layer-row{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(80px,110px);gap:var(--space-2);align-items:center;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted)}.build-up-layer-index{display:grid;width:24px;height:24px;place-items:center;border-radius:var(--radius-pill);background:var(--ejot-red);color:var(--ejot-white);font-size:var(--ws-badge-size);font-weight:800}.build-up-layer-thickness{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1);align-items:center;color:var(--text-muted);font-size:var(--ws-unit-size)}.build-up-layer-actions{display:flex;grid-column:2 / -1;flex-wrap:wrap;gap:var(--space-2)}.build-up-layer-actions button{padding:var(--space-1) var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-secondary);font-size:var(--ws-unit-size)}.professional-section-drawing{display:flex;flex:1;min-width:0;flex-direction:column;gap:var(--space-4);padding:var(--space-5);overflow-y:auto}.professional-section-svg{width:100%;min-height:300px;max-height:55vh;border:1px solid var(--border-light);border-radius:var(--radius-panel);background:var(--surface-card)}.professional-section-svg text{fill:var(--text-primary);font-family:var(--font-condensed);font-size:12px}.section-layer{stroke:var(--border-strong);stroke-width:1px}.section-layer-0{fill:var(--zone-corner-fill)}.section-layer-1{fill:var(--zone-edge-fill)}.section-layer-2{fill:var(--zone-interior-fill)}.section-layer-3{fill:var(--surface-muted)}.section-deck-profile{fill:none;stroke:var(--text-primary);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.section-dimension-line{stroke:var(--ejot-red);stroke-width:1.5px}.section-module-caption{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted);color:var(--text-secondary)}@media (max-width: 900px){.professional-section-editor{flex-direction:column;overflow-y:auto}.professional-section-drawing{min-height:360px;overflow:visible}}.site-layout-editor{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);width:100%;height:100%;min-height:0;background:var(--surface-card)}.site-layout-sidebar{display:flex;min-height:0;flex-direction:column;gap:var(--space-4);padding:var(--space-4);border-right:1px solid var(--border-light);overflow-y:auto}.site-layout-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.site-layout-scope-note{margin:0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--ejot-red);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--ws-label-size);line-height:1.5}.site-building-list{display:flex;flex-direction:column;gap:var(--space-2)}.site-building-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-primary);text-align:left}.site-building-card:hover,.site-building-card:focus-visible{border-color:var(--border-strong)}.site-building-card.is-selected{border-color:var(--ejot-red);box-shadow:0 0 0 1px var(--ejot-red)}.site-building-title{font-weight:800}.site-building-meta{color:var(--text-muted);font-size:var(--ws-unit-size)}.site-building-properties,.site-transform-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted)}.site-building-properties label,.site-transform-grid label{display:grid;gap:var(--space-1);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:600}.site-building-properties input:not([type=checkbox]),.site-transform-grid input{width:100%;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-primary);font:inherit}.site-placement-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);color:var(--text-secondary);font-size:var(--ws-label-size)}.site-placement-summary span{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card)}.site-placement-summary strong{color:var(--text-primary);font-family:var(--font-condensed)}.site-layout-main{display:grid;grid-template-rows:minmax(260px,1fr) auto;min-width:0;min-height:0;overflow:auto}.site-layout-canvas-wrap{min-height:260px;padding:var(--space-4);background:var(--viewer-scene-bg);overflow:hidden}.site-layout-svg{display:block;width:100%;height:100%;min-height:260px;touch-action:pan-x pan-y pinch-zoom}.site-module{outline:none}.site-module polygon{vector-effect:non-scaling-stroke;fill:var(--zone-interior-fill);stroke:var(--text-secondary);stroke-width:2px;cursor:pointer}.site-module.is-selected polygon{fill:var(--governing-bg);stroke:var(--ejot-red);stroke-width:3px}.site-module:focus-visible polygon{stroke:var(--ejot-red);stroke-width:4px}.site-module-label{fill:var(--text-primary);font-family:var(--font-primary);font-size:700px;font-weight:800;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--surface-card);stroke-width:90px;stroke-linejoin:round;pointer-events:none}.site-interactions{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-light)}.site-interactions h3{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--ws-section-header-size);text-transform:uppercase;letter-spacing:.06em}@media (max-width: 900px){.site-layout-editor{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.site-layout-sidebar{max-height:44vh;border-right:none;border-bottom:1px solid var(--border-light)}.site-layout-main{grid-template-rows:minmax(240px,55vh) auto}}.site-layout-canvas-wrap{position:relative}.wind-zone-plan-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,300px);width:100%;height:100%;min-height:0}.wind-zone-plan{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;min-height:0;background:var(--surface-panel)}.wind-zone-plan-svg{width:100%;height:100%;min-height:0;flex:1 1 auto;background:var(--surface-workspace)}.wind-zone-plan-canvas{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}.wind-zone-plan-footer{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.wind-zone-plan-legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;min-height:34px;padding:7px 12px;border-top:1px solid var(--border-light);color:var(--text-secondary);font-family:Roboto Condensed,Arial,sans-serif;font-size:12px}.wind-zone-plan-legend-item{display:inline-flex;gap:6px;align-items:center}.wind-zone-plan-swatch{width:14px;height:10px;border:1px solid var(--border-strong)}.wind-zone-inspector{min-width:0;overflow:auto;padding:12px;border-left:1px solid var(--border-light);background:var(--surface-panel)}.wind-zone-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px}.wind-zone-picker-button{display:grid;gap:2px;padding:7px 8px;border:1px solid var(--border-light);border-radius:4px;background:var(--surface-workspace);color:var(--text-primary);text-align:left;cursor:pointer}.wind-zone-picker-button.selected{border-color:var(--ejot-red);box-shadow:inset 0 0 0 1px var(--ejot-red)}.wind-zone-picker-button small{color:var(--text-secondary)}.wind-zone-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.wind-zone-detail-grid{display:grid;gap:7px;margin:0}.wind-zone-detail-grid>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-bottom:5px;border-bottom:1px solid var(--border-light)}.wind-zone-detail-grid dt{color:var(--text-secondary)}.wind-zone-detail-grid dd{margin:0;color:var(--text-primary);font-family:Roboto Condensed,Arial,sans-serif;text-align:right}.wind-zone-message-list{margin:12px 0 0;padding-left:18px;color:var(--text-secondary)}@media (max-width: 980px){.wind-zone-plan-layout{grid-template-columns:1fr;grid-template-rows:minmax(320px,1fr) auto}.wind-zone-inspector{max-height:280px;border-top:1px solid var(--border-light);border-left:0}}.wind-zone-plan,.wind-zone-plan-canvas{position:relative}.visual-scope-tabs{display:flex;flex-shrink:0;align-items:stretch;gap:1px;padding:var(--space-2) var(--space-3) 0;border-bottom:1px solid var(--border-strong);background:var(--panel-header-bg);overflow-x:auto;scrollbar-width:thin}.visual-scope-tab{flex:0 0 auto;padding:var(--space-3) var(--space-5);border:1px solid transparent;border-bottom:none;border-radius:var(--radius-badge) var(--radius-badge) 0 0;background:transparent;color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.visual-scope-tab.is-project-scope{color:var(--panel-header-text)}.visual-scope-tab:hover,.visual-scope-tab:focus-visible{color:var(--text-primary)}.visual-scope-tab:focus-visible{outline:2px solid var(--ejot-red);outline-offset:-2px}.visual-scope-tab.is-active{border-color:var(--border-strong);background:var(--surface-card);color:var(--brand-text)}.visual-secondary-navigation{flex-shrink:0}.visual-secondary-navigation .tab-bar{padding-top:var(--space-1);background:var(--surface-muted)}.roof-module-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.roof-module-chip{display:inline-flex;align-items:stretch;border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);overflow:hidden}.roof-module-chip.is-active{border-color:var(--ejot-red);box-shadow:0 0 0 1px var(--ejot-red)}.roof-module-select,.roof-module-delete{border:0;background:transparent;color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700}.roof-module-select{padding:var(--space-2) var(--space-3)}.roof-module-delete{min-width:30px;padding:var(--space-2);border-left:1px solid var(--border-light);color:var(--brand-text)}.roof-module-select:hover,.roof-module-select:focus-visible,.roof-module-delete:hover:not(:disabled),.roof-module-delete:focus-visible:not(:disabled){background:var(--surface-muted);color:var(--text-primary)}.roof-module-chip.is-active .roof-module-select{color:var(--brand-text)}.roof-module-delete:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.45}.roof-module-add{flex:0 0 auto}@media (max-width: 760px){.visual-scope-tabs{flex-wrap:nowrap}.visual-scope-tab{padding-inline:var(--space-4)}}.result-report-summary{display:grid;gap:var(--space-3);padding-block:var(--space-2)}.result-report-summary-group{display:grid;gap:var(--space-1)}.result-report-summary-group h4{margin:0;font-size:.76rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--text-primary)}.result-report-summary-grid{display:grid;gap:0;margin:0}.result-report-summary-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-2);padding:.22rem 0;border-bottom:1px solid var(--border-light);align-items:baseline}.result-report-summary-row:last-child{border-bottom:0}.result-report-summary-row dt,.result-report-summary-row dd{margin:0;min-width:0;font-size:.72rem;line-height:1.3}.result-report-summary-row dt{color:var(--text-secondary)}.result-report-summary-row dd{color:var(--text-primary);font-weight:600;text-align:right;overflow-wrap:anywhere}@media (max-width: 520px){.result-report-summary-row{grid-template-columns:1fr;gap:.1rem}.result-report-summary-row dd{text-align:left}}@font-face{font-family:Roboto Flex;src:url(/fonts/RobotoFlex-Regular.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Roboto Flex;src:url(/fonts/RobotoFlex-ExtraBold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Roboto Condensed;src:url(/fonts/RobotoCondensed-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto Condensed;src:url(/fonts/RobotoCondensed-SemiBold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--ejot-red: #CE1230;--ejot-red-dark: #A50D25;--brand-text: #CE1230;--ejot-black: #000000;--ejot-white: #FFFFFF;--ejot-grey: #BBBCBD;--ejot-dark-grey: #3B3B3A;--ejot-light-grey: #E3E3E3;--ejot-blue-grey: #83939C;--ejot-overlay-blue-grey: #527488;--surface-page: #FFFFFF;--surface-app: #F7F7F7;--surface-card: #FFFFFF;--surface-muted: #F1F1F1;--border-light: #D9D9D9;--border-strong: #8A8A8A;--text-primary: #000000;--text-secondary: #444444;--text-muted: #6A6A6A;--status-pass: #00A651;--status-warning: #B26A00;--status-fail: #A5091E;--status-info: #444444;--status-blocked: #527488;--pass-bg: #E1F5EA;--warning-bg: #F7EDDE;--fail-bg: #FEE2E2;--info-bg: #F1F1F1;--blocked-bg: #EEF2F5;--governing-bg: #FFFBEB;--governing-badge-bg: #FDE68A;--governing-badge-text: #92400E;--zone-interior: #527488;--zone-edge: #D63803;--zone-corner: #CE1230;--zone-inner-border: #527488;--zone-inner-border-fill: rgba(82, 116, 136, .32);--zone-interior-fill: rgba(82, 116, 136, .32);--zone-edge-fill: rgba(214, 56, 3, .3);--zone-corner-fill: rgba(206, 18, 48, .34);--membrane-course-even: #EEF1F3;--membrane-course-odd: #DDE3E7;--membrane-lap: #BFCBD2;--panel-header-bg: rgba(234, 230, 230, .902);--panel-header-text: var(--brand-text);--viewer-scene-bg: #F8F9FA;--viewer-toolbar-bg: rgba(255, 255, 255, .85);--font-primary: "Roboto Flex", "Roboto", Arial, sans-serif;--font-condensed: "Roboto Condensed", "Arial Narrow", Arial, sans-serif;--ui-title-size: 34px;--ui-title-line: 36px;--ui-head-size: 26px;--ui-head-line: 28px;--ui-subhead-size: 18px;--ui-subhead-line: 23px;--ui-body-size: 14px;--ui-body-line: 20px;--ui-small-size: 12px;--ui-small-line: 16px;--ws-base-size: 13px;--ws-input-size: 11px;--ws-label-size: 10px;--ws-unit-size: 9px;--ws-panel-header-size: 10px;--ws-section-header-size: 11px;--ws-badge-size: 9px;--ws-utilization-size: 26px;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 14px;--space-8: 18px;--space-9: 24px;--radius-panel: 8px;--radius-control: 5px;--radius-badge: 4px;--radius-pill: 999px;--shadow-panel: 0 1px 3px rgba(0, 0, 0, .07);--shadow-header: 0 1px 6px rgba(0, 0, 0, .25);--shadow-popover: 0 4px 14px rgba(0, 0, 0, .14);--panel-gap: 10px;--workspace-padding: 10px;--header-height: 44px;--left-panel-width: 340px;--right-panel-width: 320px;--left-panel-min-width: 260px;--right-panel-min-width: 260px;--motion-fast: .15s;--motion-section: .18s;--motion-utilization: .5s}:root[data-theme=dark]{--surface-page: #1E1F22;--surface-app: #17181A;--surface-card: #232427;--surface-muted: #2B2C30;--border-light: #3A3B3F;--border-strong: #5B5D63;--text-primary: #F2F2F3;--text-secondary: #C7C8CB;--text-muted: #8D8F94;--ejot-red: #D81B32;--brand-text: #FF7A8C;--status-pass: #39D98A;--status-warning: #E0A030;--status-fail: #FF667A;--status-info: #C7C8CB;--status-blocked: #8FA6B4;--pass-bg: rgba(57, 217, 138, .14);--warning-bg: rgba(224, 160, 48, .14);--fail-bg: rgba(255, 102, 122, .12);--info-bg: rgba(199, 200, 203, .1);--blocked-bg: rgba(143, 166, 180, .14);--governing-bg: rgba(224, 160, 48, .1);--governing-badge-bg: rgba(224, 160, 48, .28);--governing-badge-text: #E0A030;--zone-interior: #527488;--zone-edge: #D63803;--zone-corner: #CE1230;--zone-inner-border: #527488;--zone-inner-border-fill: rgba(82, 116, 136, .44);--zone-interior-fill: rgba(82, 116, 136, .44);--zone-edge-fill: rgba(214, 56, 3, .38);--zone-corner-fill: rgba(206, 18, 48, .42);--membrane-course-even: #3A4248;--membrane-course-odd: #4A545B;--membrane-lap: #6B7A83;--panel-header-bg: var(--ejot-red);--panel-header-text: var(--ejot-white);--viewer-scene-bg: #1A1B1E;--viewer-toolbar-bg: rgba(30, 31, 34, .92)}@media (prefers-reduced-motion: reduce){:root{--motion-fast: 0ms;--motion-section: 0ms;--motion-utilization: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-app);color:var(--text-primary);font-family:var(--font-primary);font-size:var(--ws-base-size);line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:800}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ejot-red);outline-offset:2px}.technical-symbol sub,.technical-symbol sup{font-size:76%;line-height:0}.engineering-table{font-family:var(--font-condensed);border-collapse:collapse;width:100%}.engineering-table th{background:var(--surface-muted);color:var(--text-secondary);font-weight:600;font-size:var(--ws-label-size);text-align:left}.engineering-table td{font-size:var(--ws-input-size)}.engineering-table th,.engineering-table td{border-bottom:1px solid var(--border-light);padding:var(--space-2) var(--space-3)}.engineering-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.membrane-takeoff-table{min-width:420px}.engineering-table tfoot th,.engineering-table tfoot td{border-top:2px solid var(--border-strong);border-bottom:none;color:var(--text-primary);font-weight:800;text-transform:uppercase;letter-spacing:.03em}.app-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:var(--header-height);padding:0 var(--space-7);background:var(--ejot-red);color:var(--ejot-white);box-shadow:var(--shadow-header);z-index:20}.app-header-left,.app-header-right{display:flex;align-items:center;gap:var(--space-4)}.app-logo{display:flex;align-items:center;padding:var(--space-1) var(--space-3);background:var(--ejot-white);border-radius:var(--radius-badge);color:var(--ejot-red);font-weight:800;font-size:var(--ws-section-header-size);letter-spacing:.06em}.app-name{font-weight:700;font-size:var(--ws-base-size)}.app-version{font-family:var(--font-condensed);font-size:var(--ws-badge-size);opacity:.85}.status-chip{padding:var(--space-1) var(--space-4);border:1px solid rgba(255,255,255,.28);border-radius:var(--radius-pill);background:#00000029;font-size:var(--ws-badge-size);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.header-button{padding:var(--space-2) var(--space-5);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-badge);background:#00000024;color:var(--ejot-white);font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.05em;transition:background var(--motion-fast)}.header-button:hover{background:#00000042}.header-readiness-override{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid rgba(255,255,255,.32);border-radius:var(--radius-badge);background:#0000002e;color:var(--ejot-white);font-size:var(--ws-badge-size);font-weight:800;white-space:nowrap;cursor:pointer}.header-readiness-override input{margin:0;accent-color:var(--ejot-white)}.app-workspace{flex:1;min-height:0;padding:var(--workspace-padding);overflow:auto}.panel{background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);overflow:hidden}.panel-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light);background:var(--panel-header-bg);color:var(--panel-header-text);font-size:var(--ws-panel-header-size);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.panel-body{padding:var(--space-6)}.message{padding:var(--space-5) var(--space-6);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--info-bg);font-size:var(--ws-input-size);line-height:1.5}.message+.message{margin-top:var(--space-5)}.message-title{margin-bottom:var(--space-2);font-weight:800;font-size:var(--ws-label-size);text-transform:uppercase;letter-spacing:.06em}.message-warning{border-color:var(--status-warning);background:var(--warning-bg);color:var(--status-warning)}.message-error{border-color:var(--status-fail);background:var(--fail-bg);color:var(--status-fail)}.message-blocked{border-color:var(--status-blocked);background:var(--blocked-bg);color:var(--status-blocked)}.definition-list{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-6);margin:0;font-size:var(--ws-input-size)}.definition-list dt{color:var(--text-secondary);font-size:var(--ws-label-size)}.definition-list dd{margin:0;font-family:var(--font-condensed);font-variant-numeric:tabular-nums}.project-name{display:flex;align-items:center;gap:var(--space-2);padding-left:var(--space-4);border-left:1px solid rgba(255,255,255,.28);font-size:var(--ws-input-size);font-weight:500;opacity:.95}.dirty-marker{font-size:16px;line-height:0}.header-button-primary{background:var(--ejot-white);border-color:var(--ejot-white);color:var(--ejot-red)}.header-button-primary:hover{background:var(--surface-muted)}.header-button:disabled{opacity:.55;cursor:not-allowed}.panel-toggles{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-control);background:#00000029}.panel-toggle{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-badge);background:none;color:#fffffff0;font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.03em;transition:background var(--motion-fast)}.panel-toggle.is-active{background:var(--ejot-white);color:var(--ejot-red)}.global-notice{flex-shrink:0;padding:var(--space-4) var(--space-7);background:var(--warning-bg);border-bottom:1px solid var(--status-warning);color:var(--status-warning);font-size:var(--ws-input-size)}.workspace{flex:1;display:flex;gap:var(--panel-gap);min-height:0;padding:var(--workspace-padding);overflow:hidden}.workspace-column{display:flex;min-width:0;min-height:0}.workspace-centre{flex:1}.resize-handle{flex:0 0 6px;border-radius:var(--radius-badge);cursor:ew-resize;touch-action:none;transition:background var(--motion-fast)}.resize-handle:hover,.resize-handle:focus-visible{background:var(--ejot-red)}body.is-resizing{-webkit-user-select:none;user-select:none;cursor:ew-resize}.panel{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light);background:var(--panel-header-bg);color:var(--panel-header-text);font-size:var(--ws-panel-header-size);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.panel-content{flex:1;min-height:0;padding:var(--space-6);overflow-y:auto}.centre-panel .panel-content{display:flex;padding:0}.centre-content{overflow:hidden}.centre-scroll{flex:1;min-height:0;padding:var(--space-6);overflow-y:auto}.tab-bar{display:flex;flex-shrink:0;gap:var(--space-1);padding:var(--space-2) var(--space-3) 0;border-bottom:1px solid var(--border-light);background:var(--surface-muted);flex-wrap:wrap}.tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid transparent;border-bottom:none;border-radius:var(--radius-badge) var(--radius-badge) 0 0;background:none;color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.tab:hover{color:var(--text-primary)}.tab.is-active{border-color:var(--border-light);background:var(--surface-card);color:var(--brand-text)}.tab-badge{padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--status-warning);color:var(--ejot-white);font-size:var(--ws-badge-size);font-weight:800}.tab-badge.is-error{background:var(--status-fail)}.section-card{margin-bottom:var(--space-5);border:1px solid var(--border-light);border-radius:var(--radius-panel);overflow:hidden}.section-card-header{padding:var(--space-4) var(--space-6);background:var(--panel-header-bg);color:var(--panel-header-text);font-size:var(--ws-section-header-size);font-weight:800;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;list-style:none}.section-card-header::-webkit-details-marker{display:none}.section-card-header:before{content:"▸";display:inline-block;margin-right:var(--space-3);transition:transform var(--motion-section)}.section-card[open]>.section-card-header:before{transform:rotate(90deg)}.section-card-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-6)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.field-label{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:500}.field-unit{color:var(--text-muted);font-size:var(--ws-unit-size)}.field-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-primary);font-family:var(--font-primary);font-size:var(--ws-input-size);font-weight:500}.field-input:focus{border-color:var(--ejot-red);outline:none;box-shadow:0 0 0 2px #ce12301f}.field-input:read-only,.field-input:disabled,.field-input.is-derived{background:var(--surface-muted);color:var(--text-muted);cursor:not-allowed}.field-note{margin:0;color:var(--text-muted);font-size:var(--ws-label-size);line-height:1.5}.drawing-export{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:var(--space-2) 0}.checkbox-field{display:flex;align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:var(--ws-label-size);cursor:pointer}.checkbox-field input{width:13px;height:13px;accent-color:var(--ejot-red)}.checkbox-field input:disabled{cursor:not-allowed}.layer-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}.result-card{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8);padding:var(--space-6);border:1px solid var(--border-light);border-radius:var(--radius-panel);background:var(--surface-muted)}.result-card-label{color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.result-card-value{font-size:var(--ws-utilization-size);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.result-card-status{display:flex;align-items:center;gap:var(--space-4)}.result-card-detail{color:var(--text-secondary);font-size:var(--ws-label-size)}.result-section{margin-bottom:var(--space-8)}.result-section-title{margin-bottom:var(--space-4);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.engineering-table .unit{color:var(--text-muted);font-size:var(--ws-unit-size)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-badge);font-size:var(--ws-badge-size);font-weight:800;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.status-badge.is-pass{background:var(--pass-bg);color:var(--status-pass)}.status-badge.is-fail{background:var(--fail-bg);color:var(--status-fail)}.status-badge.is-warning{background:var(--warning-bg);color:var(--status-warning)}.status-badge.is-blocked{background:var(--blocked-bg);color:var(--status-blocked)}.utilization-bar{height:6px;border-radius:var(--radius-pill);background:var(--surface-muted);border:1px solid var(--border-light);overflow:hidden}.utilization-fill{height:100%;transition:width var(--motion-utilization)}.utilization-fill.is-pass{background:var(--status-pass)}.utilization-fill.is-fail{background:var(--status-fail)}.utilization-fill.is-warning{background:var(--status-warning)}.utilization-fill.is-blocked{background:var(--status-blocked)}.utilization-bar.is-unknown{background:repeating-linear-gradient(45deg,var(--surface-muted),var(--surface-muted) 4px,var(--border-light) 4px,var(--border-light) 8px)}.zone-row{margin-bottom:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);overflow:hidden}.zone-row.is-governing{border-left:3px solid var(--ejot-red);background:var(--governing-bg)}.zone-row-summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--ws-input-size);cursor:pointer;list-style:none}.zone-row-summary::-webkit-details-marker{display:none}.zone-label{flex:1;font-weight:700}.zone-utilization{font-family:var(--font-condensed);font-variant-numeric:tabular-nums;font-weight:700}.zone-swatch{width:12px;height:12px;border:1px solid var(--border-strong);border-radius:2px;flex-shrink:0}.zone-interior{background:var(--zone-interior-fill);border-color:var(--zone-interior)}.zone-inner-border{background:var(--zone-inner-border-fill);border-color:var(--zone-inner-border)}.zone-edge{background:var(--zone-edge-fill);border-color:var(--zone-edge)}.zone-corner{background:var(--zone-corner-fill);border-color:var(--zone-corner)}.governing-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-badge);background:var(--governing-badge-bg);color:var(--governing-badge-text);font-size:var(--ws-badge-size);font-weight:800;text-transform:uppercase}.zone-row-detail{padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--border-light)}.adjustment-reasons{margin-top:var(--space-4);padding:var(--space-4);border-left:2px solid var(--border-strong);background:var(--surface-muted);font-size:var(--ws-label-size)}.adjustment-reasons-title{margin-bottom:var(--space-2);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.adjustment-reasons ul{margin:0;padding-left:var(--space-7)}.message-list{display:flex;flex-direction:column;gap:var(--space-4);margin:0;padding:0;list-style:none}.message-body,.message-action{margin:var(--space-2) 0 0;font-size:var(--ws-label-size);line-height:1.5}.message-code{display:inline-block;margin-top:var(--space-3);font-family:var(--font-condensed);font-size:var(--ws-unit-size);opacity:.75}.demonstration-notice{margin-bottom:var(--space-6)}.development-badge{margin-left:var(--space-3);padding:0 var(--space-2);border:1px solid var(--status-warning);border-radius:var(--radius-badge);color:var(--status-warning);font-size:var(--ws-unit-size);font-weight:700;text-transform:uppercase}.empty-hint{margin:0;padding:var(--space-8) var(--space-6);color:var(--text-muted);font-size:var(--ws-input-size);line-height:1.6;text-align:center}.assumption-list{margin:0;padding-left:var(--space-7);font-size:var(--ws-label-size)}.assumption-list p{margin:var(--space-1) 0 var(--space-4);color:var(--text-secondary)}.placeholder-view{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);padding:var(--space-9);background:var(--viewer-scene-bg);text-align:center}.placeholder-title{font-size:var(--ui-subhead-size);color:var(--text-secondary)}.placeholder-body{max-width:52ch;margin:0;color:var(--text-muted);font-size:var(--ws-input-size);line-height:1.6}.result-card-secondary{color:var(--text-secondary);font-size:var(--ws-label-size);line-height:1.5}.plan-editor{display:flex;flex:1;flex-direction:column;min-height:0;outline:none}.plan-toolbar{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-light);background:var(--surface-muted)}.toolbar-group{display:flex;align-items:center;gap:var(--space-1);padding-right:var(--space-4);border-right:1px solid var(--border-light)}.toolbar-group:last-child{border-right:none;padding-right:0}.toolbar-button{padding:var(--space-2) var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.viewer-toolbar .toolbar-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 var(--space-4);line-height:1;flex-shrink:0}.toolbar-button:hover:not(:disabled){color:var(--text-primary)}.toolbar-button.is-active{border-color:var(--ejot-red);background:var(--ejot-red);color:var(--ejot-white)}.toolbar-button:disabled{opacity:.45;cursor:not-allowed}.toolbar-form{gap:var(--space-3)}.toolbar-label{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700}.toolbar-input{width:52px;padding:var(--space-1) var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);color:var(--text-primary);font-family:var(--font-condensed);font-size:var(--ws-input-size);text-align:right}.plan-canvas-host{position:relative;flex:1;min-height:0;background:var(--viewer-scene-bg);overflow:hidden}.plan-canvas{display:block;touch-action:none;cursor:crosshair}.plan-status{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-7);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-light);background:var(--surface-muted);color:var(--text-secondary);font-family:var(--font-condensed);font-size:var(--ws-input-size);font-variant-numeric:tabular-nums}.plan-status-item{white-space:nowrap}.plan-messages{flex-shrink:0;max-height:34%;padding:var(--space-5);border-top:1px solid var(--border-light);overflow-y:auto}.section-editor{display:flex;flex:1;min-height:0}.section-editor-form{flex:0 0 300px;padding:var(--space-6);border-right:1px solid var(--border-light);overflow-y:auto}.section-editor-drawing{display:flex;flex:1;flex-direction:column;min-width:0;padding:var(--space-6);background:var(--viewer-scene-bg);overflow:auto}.section-svg{flex:1;min-height:260px;width:100%}.section-insulation{fill:var(--zone-interior-fill);stroke:var(--border-strong);stroke-width:1.5}.section-membrane{fill:var(--ejot-red);stroke:var(--ejot-red);stroke-width:1}.section-deck{fill:none;stroke:var(--text-primary);stroke-width:3;stroke-linejoin:round}.section-fastener rect{fill:var(--zone-corner);stroke:var(--text-primary);stroke-width:1}.section-dimensions line{stroke:var(--ejot-red);stroke-width:1.2}.section-dimensions text{fill:var(--ejot-red);font-family:var(--font-condensed);font-size:16px}.section-messages{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-6) 0 0;padding:0;list-style:none}.viewer-3d{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.viewer-toolbar{display:flex;align-items:center;flex-wrap:wrap;flex-shrink:0;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-light);background:var(--viewer-toolbar-bg)}.viewer-toolbar-controls{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.viewer-layer-menu{position:relative;flex-shrink:0}.viewer-layer-menu>summary{list-style:none;cursor:pointer}.viewer-layer-menu>summary::-webkit-details-marker{display:none}.viewer-layer-menu[open]>summary{border-color:var(--ejot-red);color:var(--text-primary)}.viewer-layer-menu-body{position:absolute;z-index:12;top:calc(100% + var(--space-2));left:0;display:flex;flex-direction:column;gap:var(--space-2);min-width:190px;max-height:320px;overflow-y:auto;padding:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-panel);background:var(--surface-card);box-shadow:var(--shadow-panel)}.viewer-layer-option{display:flex;align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:var(--ws-input-size);white-space:nowrap;cursor:pointer}.viewer-layer-option input{margin:0;accent-color:var(--ejot-red);cursor:pointer}.viewer-toolbar-toggle{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;cursor:pointer}.viewer-toolbar-toggle input{width:13px;height:13px;margin:0;accent-color:var(--ejot-red);cursor:pointer}.viewer-host{flex:1;min-height:0;background:var(--viewer-scene-bg)}.viewer-host canvas{display:block;width:100%;height:100%}.viewer-overlay{position:absolute;top:44px;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-9);background:var(--viewer-scene-bg);color:var(--text-muted);font-size:var(--ws-input-size);text-align:center}.viewer-overlay p{max-width:46ch;margin:0;line-height:1.6}.viewer-note{position:absolute;right:var(--space-5);bottom:var(--space-5);max-width:40ch;padding:var(--space-4) var(--space-5);border:1px solid var(--status-blocked);border-radius:var(--radius-control);background:var(--blocked-bg);color:var(--status-blocked);font-size:var(--ws-label-size);line-height:1.5}.field-note-blocking{padding:var(--space-3);border-left:3px solid var(--status-warning);background:var(--warning-bg);color:var(--text-primary)}.product-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.product-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);font-size:var(--ws-label-size)}.product-name{color:var(--text-primary)}.product-marker{padding:1px var(--space-2);border:1px solid var(--status-warning);border-radius:var(--radius-badge);color:var(--status-warning);font-size:10px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:#00000073}.dialog{display:flex;flex-direction:column;width:min(560px,100%);max-height:100%;border:1px solid var(--border-light);border-radius:var(--radius-panel);background:var(--surface-card);box-shadow:0 12px 40px #00000040}.dialog:focus-visible{outline:2px solid var(--ejot-red);outline-offset:2px}.dialog-header,.dialog-footer{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4)}.dialog-header{justify-content:space-between;border-bottom:1px solid var(--border-light)}.dialog-footer{justify-content:flex-end;border-top:1px solid var(--border-light)}.dialog-title{margin:0;color:var(--brand-text);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.dialog-body{display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto;padding:var(--space-4)}.dialog-group{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control)}.dialog-group legend{padding:0 var(--space-2);color:var(--text-secondary);font-size:var(--ws-label-size);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.dialog-result{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-left:3px solid var(--status-pass);background:var(--surface-muted)}.dialog-hash{margin:0;overflow-wrap:anywhere;color:var(--text-muted);font-family:var(--font-mono, monospace);font-size:10px;-webkit-user-select:all;user-select:all}a.header-button{display:inline-flex;align-items:center;text-decoration:none}.field-heading{position:relative;display:flex;align-items:center;gap:var(--space-2)}.field-heading>.field-label{flex:1;min-width:0}.info-control{position:relative;flex:0 0 auto}.info-button{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface-card);color:var(--text-secondary);cursor:pointer;font-family:var(--font-primary);font-size:11px;font-weight:800;font-style:normal;line-height:1;list-style:none;-webkit-user-select:none;user-select:none}.info-button::-webkit-details-marker{display:none}.info-button:hover,.info-button:focus-visible,.info-control[open]>.info-button{border-color:var(--ejot-red);color:var(--brand-text);outline:none}.info-button:focus-visible{box-shadow:0 0 0 2px #ce123029}.info-popover{position:absolute;z-index:30;top:calc(100% + var(--space-2));right:0;width:min(320px,calc(100vw - 48px));padding:var(--space-4) var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-card);box-shadow:var(--shadow-panel);color:var(--text-secondary);font-size:var(--ws-label-size);line-height:1.5}.info-popover p{margin:0}.info-popover p+p,.info-popover ul,.info-popover ol{margin-top:var(--space-3)}.info-popover ul,.info-popover ol{margin-bottom:0;padding-left:var(--space-6)}@media (max-width: 760px){.info-popover{position:fixed;top:auto;right:var(--space-5);bottom:var(--space-5);left:var(--space-5);width:auto;max-height:45vh;overflow:auto}}.header-button:focus-visible,.panel-toggle:focus-visible,.resize-handle:focus-visible{outline:2px solid var(--ejot-white);outline-offset:2px}.global-notice-blocked{border-bottom-color:var(--status-blocked);background:var(--blocked-bg);color:var(--status-blocked)}.resize-handle:focus-visible{box-shadow:0 0 0 2px var(--surface-card)}@media (max-width: 1180px){.app-header{height:auto;min-height:var(--header-height);padding-block:var(--space-2)}.app-header-left,.app-header-right{flex-wrap:wrap}}@media (min-resolution: 1.25dppx){.resize-handle{flex-basis:7px}}.result-card.is-pass{border-color:var(--status-pass);background:var(--pass-bg)}.result-card.is-pass .result-card-value{color:var(--status-pass)}.result-card.is-fail{border-color:var(--status-fail);background:var(--fail-bg)}.result-card.is-fail .result-card-value{color:var(--status-fail)}.result-card.is-blocked{border-color:var(--status-blocked);background:var(--blocked-bg)}.result-disclosure{margin-bottom:var(--space-5);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card);overflow:hidden}.result-disclosure-summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--panel-header-bg);color:var(--panel-header-text);font-size:var(--ws-section-header-size);font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;list-style:none}.result-disclosure-summary::-webkit-details-marker{display:none}.result-disclosure-summary:before{content:"▸";transition:transform var(--motion-section)}.result-disclosure[open]>.result-disclosure-summary:before{transform:rotate(90deg)}.result-disclosure-body{padding:var(--space-5)}.result-disclosure-body>.result-section{margin-bottom:0}.engineering-table-scroll{width:100%;overflow-x:auto;scrollbar-gutter:stable}.zone-summary-table{min-width:620px}.zone-summary-table tr.is-governing{background:var(--governing-bg)}.zone-detail-list{margin-top:var(--space-5)}.heading-with-icon{display:inline-flex;align-items:center;min-width:0;gap:var(--space-3)}.section-heading-icon{width:18px;height:18px;flex:0 0 18px;color:var(--ejot-red)}.panel-header .section-heading-icon{width:17px;height:17px;flex-basis:17px}.workspace-column{height:100%;max-height:100%;overflow:hidden}.workspace-column>.panel{height:100%;max-height:100%;overflow:hidden}.panel-scroll{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.panel-scroll>.panel-content,.panel-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-y pinch-zoom}.workspace{overflow:auto;overscroll-behavior:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}.plan-canvas,.wind-zone-plan-svg,.site-layout-svg,.viewer-host canvas{touch-action:none!important}@media (max-width: 900px),(pointer: coarse){.workspace{overflow:auto;overscroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom}.workspace-column{flex:0 0 auto}.workspace-centre{flex:0 0 max(520px,86vw);width:max(520px,86vw)}.resize-handle{display:none}.panel-scroll>.panel-content,.panel-content{overscroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom}}.viewer-stage{position:relative;display:flex;flex:1 1 auto;width:100%;min-width:0;min-height:360px}.viewer-stage>.viewer-host{flex:1 1 auto;width:100%;min-width:0;min-height:360px}.view-cube{position:absolute;top:var(--space-4);right:var(--space-4);z-index:8;width:112px;height:104px;border:1px solid var(--border-light);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--surface-card) 88%,transparent);box-shadow:var(--shadow-panel);perspective:260px;pointer-events:auto;-webkit-user-select:none;user-select:none}.view-cube-body{position:absolute;top:17px;left:30px;width:52px;height:52px;transform:rotateX(-28deg) rotateY(36deg);transform-style:preserve-3d;pointer-events:none}.view-cube-face{position:absolute;display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--border-strong);background:var(--surface-muted);color:var(--text-secondary);font-family:var(--font-condensed);font-size:9px;font-weight:800;letter-spacing:.04em;backface-visibility:hidden}.view-cube-face-top{transform:rotateX(90deg) translateZ(26px)}.view-cube-face-front{transform:translateZ(26px)}.view-cube-face-right{transform:rotateY(90deg) translateZ(26px)}.view-cube-hit,.view-cube-nav{position:absolute;z-index:2;margin:0;padding:0;border:0;background:transparent;color:var(--text-secondary);touch-action:manipulation}.view-cube-hit:hover,.view-cube-hit:focus-visible,.view-cube-nav:hover,.view-cube-nav:focus-visible{background:color-mix(in srgb,var(--ejot-red) 14%,transparent)}.view-cube-hit-top{top:4px;left:31px;width:52px;height:27px;clip-path:polygon(50% 0,100% 46%,50% 100%,0 54%)}.view-cube-hit-front{top:30px;left:27px;width:39px;height:41px;clip-path:polygon(0 0,100% 22%,100% 100%,0 78%)}.view-cube-hit-right{top:29px;right:23px;width:35px;height:42px;clip-path:polygon(0 22%,100% 0,100% 78%,0 100%)}.view-cube-nav{display:grid;place-items:center;min-width:26px;min-height:22px;border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);font-family:var(--font-condensed);font-size:9px;font-weight:800}.view-cube-nav-left{left:5px;bottom:5px}.view-cube-nav-rear{right:5px;bottom:5px}.view-cube-nav-iso{left:41px;bottom:5px;min-width:31px;color:var(--ejot-red)}@media (max-width: 600px){.view-cube{top:var(--space-3);right:var(--space-3);transform:scale(.9);transform-origin:top right}}.zone-layout-editor{display:flex;flex-direction:column;min-height:min-content;gap:var(--space-4);padding-bottom:max(var(--space-9),18vh)}.zone-layout-intro{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--ws-small-size, 11px)}.zone-layout-editor>.section-card{flex:0 0 auto}.plan-toolbar{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-4) var(--space-5);padding:var(--space-4)}.plan-toolbar>.toolbar-group{position:relative;display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-5) var(--space-3) var(--space-2) var(--space-5);border-left:1px solid var(--border-strong)}.plan-toolbar>.toolbar-group:before{position:absolute;top:0;left:var(--space-5);color:var(--text-muted);font-size:var(--ws-unit-size);font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.plan-toolbar>.toolbar-group:nth-child(1):before{content:"Mode"}.plan-toolbar>.toolbar-group:nth-child(2):before{content:"Snapping"}.plan-toolbar>.toolbar-group:nth-child(3):before{content:"View / History"}.plan-toolbar>.toolbar-group:nth-child(4):before{content:"Shape"}.plan-toolbar>.toolbar-group:nth-child(5):before{content:"Openings"}.plan-toolbar>.toolbar-group:nth-child(6):before{content:"Transform"}.plan-toolbar>.toolbar-group:nth-child(7):before{content:"Vertex"}.plan-toolbar .toolbar-form{align-items:center}.app-shell,.workspace,.workspace-column,.workspace-column>.panel,.panel-scroll,.panel-content,.centre-content,.centre-scroll,.viewer-3d,.viewer-stage,.viewer-host{min-width:0;max-width:100%}.tab-bar,.viewer-toolbar,.plan-toolbar,.engineering-table-scroll{max-width:100%}.viewer-toolbar{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.viewer-stage,.viewer-host,.viewer-host canvas{touch-action:none!important}.viewer-navigation-controls{position:absolute;left:var(--space-4);bottom:var(--space-4);z-index:9;display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:calc(100% - 150px);padding:var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-panel);background:color-mix(in srgb,var(--surface-card) 90%,transparent);box-shadow:var(--shadow-panel);pointer-events:auto;touch-action:manipulation}.viewer-nav-button{min-width:38px;min-height:36px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);color:var(--text-secondary);font-family:var(--font-condensed);font-size:var(--ws-label-size);font-weight:800;white-space:nowrap;touch-action:manipulation}.viewer-nav-button:hover,.viewer-nav-button:focus-visible{color:var(--text-primary)}.viewer-nav-button.is-active{border-color:var(--ejot-red);background:var(--ejot-red);color:var(--ejot-white)}.viewer-nav-button.is-primary{color:var(--brand-text)}.viewer-touch-hint{display:flex;align-items:center;color:var(--text-muted);font-size:var(--ws-unit-size);white-space:nowrap}.view-cube-v2{width:126px;height:132px;padding:8px;perspective:320px;overflow:visible;touch-action:manipulation}.view-cube-v2 .view-cube-scene{position:absolute;top:11px;left:31px;width:64px;height:64px;perspective:320px;pointer-events:none}.view-cube-v2 .view-cube-body{position:absolute;top:0;right:0;bottom:0;left:0;width:64px;height:64px;transform-style:preserve-3d;will-change:transform;pointer-events:none}.view-cube-v2 .view-cube-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;width:64px;height:64px;margin:0;padding:0;border:1px solid var(--border-strong);border-radius:3px;background:color-mix(in srgb,var(--surface-card) 94%,var(--surface-muted));color:var(--text-secondary);font-family:var(--font-condensed);font-size:9px;font-weight:800;letter-spacing:.04em;backface-visibility:visible;pointer-events:auto;touch-action:manipulation}.view-cube-v2 button.view-cube-face:hover,.view-cube-v2 button.view-cube-face:focus-visible{border-color:var(--ejot-red);background:color-mix(in srgb,var(--ejot-red) 14%,var(--surface-card));color:var(--ejot-red);outline:none}.view-cube-v2 .view-cube-face-front{transform:rotateY(0) translateZ(32px)}.view-cube-v2 .view-cube-face-rear{transform:rotateY(180deg) translateZ(32px)}.view-cube-v2 .view-cube-face-right{transform:rotateY(90deg) translateZ(32px)}.view-cube-v2 .view-cube-face-left{transform:rotateY(-90deg) translateZ(32px)}.view-cube-v2 .view-cube-face-top{transform:rotateX(90deg) translateZ(32px)}.view-cube-v2 .view-cube-face-bottom{transform:rotateX(-90deg) translateZ(32px)}.view-cube-v2 .view-cube-iso{position:absolute;left:50%;bottom:7px;min-width:48px;min-height:34px;transform:translate(-50%);border:1px solid var(--border-light);border-radius:var(--radius-badge);background:var(--surface-card);color:var(--ejot-red);font-family:var(--font-condensed);font-size:10px;font-weight:800;touch-action:manipulation}.view-cube-v2 .view-cube-iso:hover,.view-cube-v2 .view-cube-iso:focus-visible{border-color:var(--ejot-red);outline:none}@media (max-width: 900px),(pointer: coarse){html,body,#root,.app-shell{width:100%;max-width:100%;touch-action:pan-x pan-y pinch-zoom}.workspace{width:100%;max-width:100%;min-width:0;overflow:auto;overscroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}.workspace-column{min-width:0!important;max-width:100%!important;overflow:hidden}.workspace-centre{flex:1 1 0!important;width:auto!important;min-width:0!important}.workspace-column>.panel{width:100%;min-width:0;max-width:100%}.resize-handle{display:block;flex:0 0 10px;min-width:10px;touch-action:none}.resize-handle:after{content:"";display:block;width:2px;height:100%;margin:0 auto;border-radius:var(--radius-pill);background:var(--border-strong)}.resize-handle:hover:after,.resize-handle:focus-visible:after,body.is-resizing .resize-handle:after{background:var(--ejot-red)}.panel-scroll>.panel-content,.panel-content,.centre-scroll,.section-editor-form,.section-editor-drawing,.site-layout-sidebar,.site-layout-main{overscroll-behavior:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}.tab-bar,.viewer-toolbar,.plan-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.tab,.toolbar-group,.toolbar-button{flex:0 0 auto}.app-header{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}.plan-canvas,.wind-zone-plan-svg,.site-layout-svg{touch-action:none!important}.viewer-stage,.viewer-host,.viewer-host canvas{touch-action:none!important}.viewer-stage,.viewer-stage>.viewer-host{min-height:min(62dvh,560px)}.viewer-navigation-controls{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);max-width:none;gap:var(--space-1)}.viewer-nav-button{min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3)}.viewer-touch-hint{flex-basis:100%}.view-cube-v2{top:var(--space-3);right:var(--space-3);width:118px;height:126px;transform:none}.view-cube-v2 .view-cube-scene{left:27px}.view-cube-v2 button.view-cube-face,.view-cube-v2 .view-cube-iso{min-width:44px;min-height:44px}}@media (max-width: 520px){.viewer-navigation-controls{padding:var(--space-1)}.viewer-nav-button{min-width:42px;min-height:42px;font-size:var(--ws-unit-size)}.viewer-touch-hint{display:none}.view-cube-v2{width:112px;height:120px}.view-cube-v2 .view-cube-scene{left:24px;transform:scale(.88);transform-origin:top center}}.input-tab-bar{flex-shrink:0;min-width:0;overflow:hidden}.input-tab-bar .tab-bar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.input-tab-bar .tab{flex:0 0 auto}.input-panel-content{min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}.nearby-building-list{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.nearby-building-card{padding:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted)}.nearby-building-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.catalogue-resistance-status,.catalogue-inline-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--border-light);border-radius:6px;background:var(--surface-muted);font-size:var(--ws-input-size)}.catalogue-resistance-status-label,.catalogue-inline-status span{color:var(--text-muted);font-size:var(--ws-label-size)}.catalogue-user-defined-toggle{margin-top:var(--space-4)}.ejot-product-select{position:relative}.ejot-product-trigger{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:var(--space-5);width:100%;min-height:68px;padding:var(--space-3);border:1px solid var(--border-light);border-radius:6px;background:var(--surface-card);color:var(--text-primary);text-align:left;cursor:pointer}.ejot-product-trigger:focus-visible{border-color:var(--ejot-red)}.ejot-product-thumb{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted);overflow:hidden}.ejot-product-trigger>.ejot-product-thumb{width:56px;height:56px}.ejot-product-thumb img{display:block;max-width:100%;max-height:100%;object-fit:contain}.ejot-product-thumb.is-missing{padding:3px;color:var(--text-muted);text-align:center;font-size:7px;line-height:1.15}.ejot-product-copy{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ejot-product-copy strong{font-size:var(--ws-input-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ejot-product-copy span{color:var(--text-muted);font-size:var(--ws-unit-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ejot-product-chevron{color:var(--text-muted);font-size:16px;transform:rotate(90deg)}.ejot-product-menu{position:absolute;z-index:50;top:100%;left:0;right:0;max-height:300px;margin:3px 0 0;padding:3px;overflow-y:auto;list-style:none;border:1px solid var(--border-light);border-radius:6px;background:var(--surface-card);box-shadow:var(--shadow-popover)}.ejot-product-option{display:flex;align-items:center;gap:9px;width:100%;padding:7px var(--space-4);border:0;border-radius:var(--radius-control);background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.ejot-product-option:hover{background:var(--surface-muted)}.ejot-product-option.is-selected{background:color-mix(in srgb,var(--ejot-red) 6%,transparent)}.ejot-product-option.is-selected .ejot-product-copy strong{color:var(--ejot-red)}.roof-module-tabs{display:flex;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-5)}.roof-module-tabs .tab-bar{flex:1 1 auto;min-width:0}.roof-module-add{flex:0 0 auto;margin-bottom:var(--space-1);white-space:nowrap}.layer-groups{display:flex;flex-direction:column;gap:var(--space-5)}.layer-group{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.layer-group:last-child{padding-bottom:0;border-bottom:0}.layer-group-title{margin:0;color:var(--text-secondary);font-size:var(--ws-unit-size);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.membrane-laying-plan,.membrane-laying-plan>.wind-zone-plan{flex:1 1 auto;min-width:0;min-height:0}.membrane-plan-readiness{flex:1 1 auto}.result-quantity-summary{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-card)}.result-quantity-summary .result-section-title{margin-top:0}.result-product-lines{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-light)}.result-product-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 var(--space-3);align-items:baseline;font-size:var(--ws-unit-size)}.result-product-line strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-product-line span:first-of-type:not(:last-child){grid-column:1 / -1;color:var(--text-muted)}.result-product-line span:last-child{grid-column:2;grid-row:1;font-variant-numeric:tabular-nums}.result-card-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-1) var(--space-3);align-items:center;margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4)}.result-card-compact .result-card-label,.result-card-compact .result-card-value,.result-card-compact .result-card-status,.result-card-compact .result-card-secondary{margin:0}.result-card-compact .result-card-value{grid-column:1;font-size:clamp(1.15rem,2vw,1.55rem)}.result-card-compact .result-card-status{grid-column:2;grid-row:1 / span 2}.result-card-compact .result-card-secondary,.result-card-compact .utilization-bar{grid-column:1 / -1}.result-fast-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0 0 var(--space-4)}.result-fast-fact{min-width:0;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-control);background:var(--surface-muted)}.result-fast-fact dt{margin:0 0 var(--space-1);color:var(--text-muted);font-size:var(--ws-unit-size);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.result-fast-fact dd{margin:0;color:var(--text-primary);font-family:var(--font-condensed);font-size:var(--ws-input-size);font-weight:800;font-variant-numeric:tabular-nums}.result-visual-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.zone-summary-table .zone-class-summary-row>*{border-top:1px solid var(--border-strong);background:var(--surface-muted);font-weight:800}.zone-summary-table .zone-class-child-row>*{background:var(--surface-card)}.zone-summary-table .zone-class-child-row th{padding-left:calc(var(--space-4) + var(--space-3));font-weight:600}.zone-summary-table .zone-summary-total-row>*{border-top:2px solid var(--border-strong);background:var(--surface-card)}.zone-summary-zone-button{width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:left;cursor:pointer}.zone-summary-zone-button:hover,.zone-summary-zone-button:focus-visible{color:var(--brand-text);text-decoration:underline;outline:none}.zone-class-toggle{display:inline-flex;gap:var(--space-2);align-items:center}.zone-details-disclosure{margin-top:var(--space-3);border-top:1px solid var(--border-light)}.zone-details-disclosure>summary{padding:var(--space-3) 0;color:var(--text-secondary);font-weight:800;cursor:pointer}.zone-detail-list{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-2)}@media (max-width: 900px){.roof-module-tabs{align-items:stretch;flex-direction:column}.roof-module-add{align-self:flex-start}.result-fast-facts{grid-template-columns:1fr}}
