*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:#fff;font-family:Inter,system-ui,sans-serif}.prediction-panel{z-index:140;color:#263341;overscroll-behavior:contain;background:#fffffff7;border:1px solid #d9e1ea;border-radius:8px;flex-direction:column;width:min(340px,100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100vh - 72px);font-size:12px;display:flex;position:absolute;top:12px;right:12px;overflow:hidden auto;box-shadow:0 8px 22px #1e2a3a21}.prediction-panel-title{z-index:1;letter-spacing:0;background:#f8fafc;border-bottom:1px solid #e3e8ef;flex:none;align-items:center;height:38px;padding:0 12px;font-size:13px;font-weight:700;display:flex;position:sticky;top:0}.prediction-panel-head,.prediction-row{grid-template-columns:16px minmax(0,1fr) 72px 48px;align-items:center;column-gap:7px;display:grid}.prediction-panel-head{color:#687586;text-transform:uppercase;border-bottom:1px solid #e8edf3;height:32px;padding:0 12px;font-size:10px;font-weight:700}.prediction-panel-head span:first-child{grid-column:1/span 2}.prediction-list{flex-direction:column;flex:none;display:flex}.prediction-panel>.performance-location-panel{flex:none}.performance-metrics-section{background:#fff;flex-direction:column;flex:none;min-height:0;display:flex;overflow:visible}.performance-section-label{color:#536170;letter-spacing:0;text-transform:uppercase;padding:10px 12px 0;font-size:10px;font-weight:700}.performance-metrics{background:#fff;flex:none;align-content:start;gap:8px;min-height:0;padding:8px 12px 10px;display:grid;overflow:visible}.performance-visualize-section{background:#fff;border-top:1px solid #e8edf3;flex:none}.performance-visualize-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 12px 10px;display:grid}.performance-visualize-button{color:#324255;min-width:0;height:30px;font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;padding:0 10px;font-weight:700;overflow:hidden}.performance-visualize-button:hover{background:#f3f7fc;border-color:#a7bdd7}.performance-visualize-button:focus-visible{outline:none;box-shadow:0 0 0 2px #1a73e82e}.performance-visualize-button.selected,.performance-visualize-button.selected:hover{color:#fff;background:#000;border-color:#000}.performance-visualize-scale{padding:0 12px 12px;overflow:visible}.performance-visualize-track-wrap{height:9px;position:relative}.performance-visualize-scale .performance-visualize-track{background:var(--heatmap-gradient);height:9px;display:block}.performance-visualize-marker{top:50%;left:clamp(4px, var(--marker-position), calc(100% - 4px));z-index:1;width:8px;height:8px;box-shadow:none;cursor:pointer;background:#000;border:0;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.performance-visualize-marker:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px #1a73e838}.performance-visualize-floating-label{z-index:245;box-sizing:border-box;color:#263341;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #cfd8e3;border-radius:5px;gap:2px;width:max-content;min-width:96px;max-width:190px;padding:3px 6px;font-size:10.5px;font-weight:750;line-height:1.2;display:grid;position:fixed;overflow:hidden;transform:translate(-50%,-100%);box-shadow:0 8px 18px #121d2b29}.performance-visualize-floating-label.below{transform:translate(-50%)}.performance-visualize-marker-name,.performance-visualize-marker-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-visualize-marker-value{color:#687586;font-size:9.5px;font-weight:700}.performance-visualize-scale .performance-visualize-labels{padding-top:1px}.performance-card{color:#253140;width:100%;min-width:0;height:fit-content;min-height:0;font:inherit;text-align:left;background:#fbfcfe;border:1px solid #d9e1ea;border-radius:7px;flex-direction:column;gap:0;padding:0;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.performance-card-toggle{border-radius:inherit;width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:9px 10px}.performance-card:hover,.performance-card.open{background:#f6f9fd;border-color:#a7bdd7}.performance-card.passes{background:#fff;border-color:#d9e1ea}.performance-card.passes:hover,.performance-card.passes.open{background:#f6f9fd;border-color:#a7bdd7}.performance-card.fails{background:#fff;border-color:#d9e1ea}.performance-card.fails:hover,.performance-card.fails.open{background:#f6f9fd;border-color:#a7bdd7}.performance-card-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #1a73e838}.performance-card-summary{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 8px;min-width:0;display:grid}.performance-card-label{color:#536170;letter-spacing:0;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;min-width:0;font-size:10px;font-weight:800;overflow:hidden}.performance-card-value{color:#172233;font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:1/2/span 2;align-self:center;font-size:20px;font-weight:800;line-height:1}.performance-glazing-summary-values{color:#172233;flex-direction:column;justify-content:space-between;align-items:flex-end;min-width:0;min-height:42px;font-size:11px;font-weight:700;line-height:1.1;display:flex}.performance-glazing-summary-value{align-items:baseline;gap:5px;font-weight:700;display:inline-flex}.performance-glazing-summary-value.passes{color:#0f5c36}.performance-glazing-summary-value.fails{color:#b3261e}.performance-glazing-summary-value.fails.ignored{color:#a15f00}.performance-card-conditional-value{color:inherit}.performance-card-conditional-value.passes{color:#0f5c36}.performance-card-conditional-value.fails{color:#b3261e}.performance-card-conditional-value.fails.ignored{color:#a15f00}.performance-card-subtext{color:#687586;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:650;overflow:hidden}.performance-card-details{color:#324255;border-top:1px solid #e3e8ef;gap:7px;min-width:0;margin:0 10px 9px;padding-top:8px;line-height:1.35;display:grid}.performance-detail-heading{color:#536170;letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:800}.performance-empty-detail{color:#687586;font-size:11px;line-height:1.4}.performance-calculation-list{gap:5px;max-height:none;padding-right:2px;display:grid;overflow:visible}.performance-cost-list{max-height:none}.performance-section-calculation{gap:3px;min-width:0;display:grid}.performance-calculation-row,.performance-breakdown-row,.performance-material-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;display:grid}.performance-calculation-label{color:#4b5a6a;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-material-list{border-left:2px solid #d9e1ea;gap:2px;min-width:0;padding-left:8px;display:grid}.performance-material-row{color:#687586;font-size:10.5px}.performance-material-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-calculation-value,.performance-breakdown-row span:last-child,.performance-material-value{color:#172233;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:750}.performance-material-value{color:#536170;font-weight:700}.performance-cost-department{gap:5px}.performance-cost-department-row{border:1px solid #d9e1ea}.performance-cost-assembly-list,.performance-cost-material-list{gap:4px}.performance-cost-material-list .performance-material-row{align-items:start}.performance-cost-material-list .performance-material-value{overflow-wrap:anywhere;text-align:right;white-space:normal;max-width:154px}.performance-comparison-value{justify-content:flex-end;align-items:center;gap:8px;min-width:0;font-weight:500;display:inline-flex}.performance-standard-value{color:#536170;font-weight:500}.performance-comparison-separator{color:#7a8796;font-weight:500}.performance-actual-value{color:#172233;font-weight:750}.performance-breakdown{gap:5px;min-width:0;display:grid}.performance-breakdown-row{background:#eef3f8;border-radius:5px;min-height:22px;padding:0 7px}button.performance-breakdown-row{width:100%;color:inherit;font:inherit;text-align:left;border:0}.glazing-breakdown .performance-breakdown-row,.wwr-breakdown .performance-breakdown-row{background:#fff;border:1px solid #d9e1ea}.performance-card-details .glazing-breakdown,.performance-card-details .wwr-breakdown{padding-bottom:8px}.glazing-breakdown .performance-breakdown-row.threshold-row,.wwr-breakdown .performance-breakdown-row.threshold-row{grid-template-columns:minmax(0,.7fr) minmax(0,1fr);align-items:start;row-gap:6px;height:auto;min-height:52px;padding:6px 7px 7px}.performance-breakdown-row.passes{color:#0f5c36;background:#e7f6ee;border-color:#74b991}.performance-breakdown-row.passes .performance-standard-value,.performance-breakdown-row.passes .performance-comparison-separator,.performance-breakdown-row.passes .performance-actual-value{color:#0f5c36}.performance-breakdown-row.fails{color:#b3261e;background:#fdecea;border-color:#e59a94}.performance-breakdown-row.fails .performance-standard-value,.performance-breakdown-row.fails .performance-comparison-separator,.performance-breakdown-row.fails .performance-actual-value{color:#b3261e}.performance-breakdown-row.fails.ignored{color:#8a5600;background:#fff4dc;border-color:#efc16d}.performance-breakdown-row.fails.ignored .performance-standard-value,.performance-breakdown-row.fails.ignored .performance-comparison-separator,.performance-breakdown-row.fails.ignored .performance-actual-value{color:#8a5600}.performance-issue-row{cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s;position:relative}.performance-issue-row:hover,.performance-issue-row.menu-open{border-color:#d66b62;box-shadow:0 0 0 2px #b3261e14}.performance-issue-row.fails.ignored:hover,.performance-issue-row.fails.ignored.menu-open{border-color:#dfa949;box-shadow:0 0 0 2px #a15f001c}.performance-threshold-scale{color:#687586;font-variant-numeric:tabular-nums;white-space:normal;grid-column:1/-1;gap:3px;min-width:0;font-size:9px;font-weight:500;line-height:1;display:grid}.performance-threshold-scale span{white-space:normal;font-weight:500}.performance-threshold-track{background:#fff;border:1px solid #000;border-radius:999px;height:9px;position:relative;overflow:hidden}.performance-threshold-pass-range{top:0;bottom:0;left:var(--passing-start);width:var(--passing-width);background:repeating-linear-gradient(135deg,#0000006b 0 1px,#0000 1px 4px);position:absolute}.performance-threshold-tick{top:-2px;bottom:-2px;left:var(--threshold-position);background:#000;width:1px;position:absolute;transform:translate(-50%)}.performance-threshold-project-marker{top:50%;left:var(--actual-position);width:8px;height:8px;box-shadow:none;background:#000;border:0;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.performance-breakdown-row.passes .performance-threshold-project-marker,.performance-breakdown-row.fails .performance-threshold-project-marker{background:#000}.performance-threshold-labels{color:#687586;justify-content:space-between;display:flex}.glazing-breakdown .performance-threshold-labels span,.wwr-breakdown .performance-threshold-labels span{font-weight:500}.performance-breakdown-row.total{background:#e3ebf5}.performance-issue-menu{z-index:250;color:#263341;background:#fff;border:1px solid #cfd8e3;border-radius:8px;gap:6px;width:252px;padding:8px;font-size:12px;display:grid;position:fixed;box-shadow:0 14px 36px #121d2b38}.performance-issue-menu:after{content:"";top:clamp(8px, calc(var(--issue-menu-arrow-y,21px) - 5px), calc(100% - 18px));background:#fff;border-top:1px solid #cfd8e3;border-right:1px solid #cfd8e3;width:10px;height:10px;position:absolute;right:-6px;transform:rotate(45deg)}.performance-issue-menu-button{color:#324255;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;justify-content:flex-start;align-items:center;padding:6px 9px;font-weight:700;line-height:1.25;display:flex}.performance-issue-menu-button:hover{background:#f3f7fc;border-color:#a7bdd7}.performance-issue-menu-button:disabled{cursor:wait;opacity:.68}.performance-issue-menu-button.selected,.performance-issue-menu-button.selected:hover{color:#fff;background:#000;border-color:#000}.performance-issue-menu-button.danger{color:#9b1c1c;background:#fff7f6;border-color:#f0b7b2}.performance-issue-menu-button.danger:hover{background:#fdecea;border-color:#e59a94}.performance-issue-replace{color:#536170;background:#fbfcfe;border:1px solid #d9e1ea;border-radius:6px;gap:6px;padding:7px;font-size:11px;font-weight:700;line-height:1.3;display:grid}.performance-issue-error{color:#9b1c1c;font-size:11px;font-weight:700;line-height:1.35}.performance-issue-generated-options{gap:6px;display:grid}.performance-existing-section-choice{color:#324255;min-width:0;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;gap:3px;padding:6px 8px 7px;font-weight:700;line-height:1.25;display:grid}.performance-existing-section-choice:hover{background:#f3f7fc;border-color:#a7bdd7}.performance-existing-section-choice.selected,.performance-existing-section-choice.selected:hover{color:#fff;background:#000;border-color:#000}.performance-existing-section-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:inherit;font-weight:700;line-height:1.25;overflow:hidden}.performance-existing-section-select{color:#253140;width:100%;min-width:0;height:24px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:5px;padding-left:7px;font-weight:400;line-height:1.25}.performance-existing-section-choice.selected .performance-existing-section-select{color:#253140;background:#fff;border-color:#fff}.performance-existing-section-select option{color:#253140;background:#fff;font-weight:400}.performance-existing-section-benchmark{color:#fff;overflow-wrap:anywhere;min-width:0;font-size:11px;font-weight:700;line-height:1.3}.performance-existing-section-benchmark.misses{color:#ff5c5c}.performance-issue-option{color:#253140;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;gap:2px;padding:6px 9px;font-weight:700;line-height:1.25;display:grid;overflow:hidden}.performance-issue-option:hover{background:#f3f7fc;border-color:#a7bdd7}.performance-issue-option.selected,.performance-issue-option.selected:hover{color:#fff;background:#000;border-color:#000}.performance-issue-option-name,.performance-issue-option-metric{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-issue-option-metric{color:inherit;font-size:inherit;opacity:.72;font-weight:700}.performance-issue-option.selected .performance-issue-option-metric{color:#fff;opacity:.82}.performance-designed-replacement{color:#324255;background:#fff;border:1px solid #cfd8e3;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-width:0;min-height:34px;display:grid;overflow:hidden}.performance-designed-replacement:hover{background:#f3f7fc;border-color:#a7bdd7}.performance-designed-replacement.selected,.performance-designed-replacement.selected:hover{color:#fff;background:#000;border-color:#000}.performance-designed-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-content:center;gap:2px;padding:6px 9px;font-weight:700;line-height:1.25;display:grid}.performance-designed-title,.performance-designed-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-designed-summary{color:#536170;font-size:10.5px;font-weight:800}.performance-designed-replacement.selected .performance-designed-summary{color:#fff;opacity:.82}.performance-designed-edit{min-width:38px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-left:1px solid #cfd8e3;padding:0 8px;font-size:10.5px;font-weight:800}.performance-designed-edit:hover{background:#0000000f}.performance-designed-replacement.selected .performance-designed-edit{border-left-color:#303030}.performance-designed-replacement.selected .performance-designed-edit:hover{background:#181818}.performance-issue-accept{color:#fff;min-height:34px;font:inherit;cursor:pointer;background:#000;border:1px solid #000;border-radius:6px;margin-top:2px;padding:7px 10px;font-weight:800;line-height:1.2}.performance-issue-accept:disabled{cursor:default;opacity:.34}.performance-issue-select{color:#253140;width:100%;height:30px;font:inherit;background:#fff;border:1px solid #cfd8e3;border-radius:6px}.prediction-row{cursor:pointer;border-top:1px solid #f0f3f7;min-height:46px;padding:0 12px;transition:background .1s}.prediction-row:first-child{border-top:0}.prediction-row.empty{color:#a1adba;cursor:default;background:#fbfcfe;min-height:38px}.prediction-row:not(.empty):hover,.prediction-row.hovered{background:#eef3fd}.prediction-swatch{background:#e6ebf1;border:1px solid #2633412e;border-radius:3px;flex-shrink:0;width:12px;height:12px}.prediction-program-cell{flex-direction:column;gap:1px;min-width:0;display:flex}.prediction-program-line{align-items:center;gap:5px;min-width:0;display:flex}.prediction-program{color:#253140;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:650;overflow:hidden}.prediction-violation{color:#fff;background:#d93025;border-radius:50%;flex:0 0 15px;justify-content:center;align-items:center;width:15px;height:15px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.prediction-sqft{color:#687586;white-space:nowrap;font-size:10px;font-weight:600}.prediction-row.empty .prediction-program{color:#a1adba}.prediction-confidence,.prediction-rooms{color:#253140;font-variant-numeric:tabular-nums;background:#f5f7fa;border-radius:5px;justify-content:flex-end;align-items:center;height:24px;font-weight:650;display:flex}.prediction-confidence{padding:0 7px}.prediction-rooms{padding:0 6px}.prediction-row.empty .prediction-confidence,.prediction-row.empty .prediction-rooms{color:#a1adba;background:#f8fafc}.constraints-editor{background:#fff;border-top:1px solid #e3e8ef;flex:none;gap:8px;padding:10px 12px 12px;display:grid}.constraints-label{color:#536170;letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:700}.constraints-textarea{resize:vertical;color:#253140;width:100%;min-height:58px;max-height:128px;font:inherit;background:#fbfcfe;border:1px solid #cfd8e3;border-radius:6px;outline:none;padding:6px 9px;line-height:1.4}.constraints-textarea:focus{background:#fff;border-color:#8ab4f8;box-shadow:0 0 0 2px #1a73e824}.constraints-error{color:#b3261e;font-size:11px;line-height:1.35}.constraints-actions{justify-content:flex-end;gap:8px;display:flex}.constraints-button{min-width:72px;height:30px;font:inherit;cursor:pointer;border:1px solid #cfd8e3;border-radius:6px;padding:0 12px;font-weight:700}.constraints-secondary{color:#324255;background:#fff}.constraints-secondary:hover{background:#f3f6fa}.constraints-primary{color:#fff;background:#000;border-color:#000}.constraints-primary:hover{background:#111827;border-color:#111827}.constraints-primary:disabled{cursor:wait;opacity:.7}.constraints-dev-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.constraints-file-button{color:#9b1c1c;min-width:0;height:28px;font:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:#fff5f5;border:1px solid #f5c2c2;border-radius:6px;padding:0 6px;font-size:11px;font-weight:700;overflow:hidden}.constraints-file-button:hover{color:#7f1d1d;background:#fee2e2;border-color:#e57373}.constraints-file-button:disabled{cursor:wait;opacity:.68}.constraints-file-backdrop{z-index:260;background:#121d2b47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.constraints-file-dialog{color:#263341;background:#fff;border:1px solid #cfd8e3;border-radius:8px;flex-direction:column;width:min(760px,100vw - 48px);max-height:85vh;display:flex;overflow:hidden;box-shadow:0 18px 48px #121d2b3d}.constraints-file-header{background:#f8fafc;border-bottom:1px solid #e3e8ef;flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0 10px 0 14px;display:flex}.constraints-file-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:800;overflow:hidden}.constraints-file-close{color:#324255;width:28px;height:28px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;flex:none;font-size:15px;font-weight:800;line-height:1}.constraints-file-close:hover{background:#eef3fd}.constraints-file-content{color:#182333;white-space:pre-wrap;word-break:break-word;background:#fff;min-height:0;margin:0;padding:14px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.45;overflow:auto}@media (width<=760px){.prediction-panel{width:min(320px,100vw - 16px);max-height:calc(100vh - 88px);top:auto;bottom:72px;right:8px}.constraints-file-backdrop{padding:12px}.constraints-file-dialog{width:calc(100vw - 24px)}}.sol-overlay{pointer-events:none;z-index:10;position:absolute;inset:0}.sol-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sol-plus-wrap{pointer-events:auto;z-index:20;position:absolute;transform:translate(-50%,-50%)}.sol-plus-btn{color:#fff;cursor:pointer;background:#1a73e8;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0 0 1px;font-size:15px;line-height:1;transition:background .1s;display:flex;box-shadow:0 1px 4px #00000038}.sol-plus-btn:hover{background:#1257b8}.sol-program-arc{pointer-events:auto;z-index:120;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:2px;width:136px;padding:4px;display:flex;position:absolute;overflow:visible;box-shadow:0 6px 18px #14213029}.sol-program-icon{color:#263341;cursor:pointer;text-align:left;background:#fff;border:none;border-radius:6px;flex-direction:row;align-items:center;gap:7px;width:100%;height:26px;padding:0 8px;transition:background .12s,box-shadow .12s;display:flex;box-shadow:inset 0 0 0 1px #0000}.sol-program-icon:hover{background:var(--program-hover);box-shadow:inset 0 0 0 1px var(--program-color)}.sol-program-swatch{background:var(--program-color);width:9px;height:9px;box-shadow:none;border-radius:50%;flex:none}.sol-program-name{text-overflow:ellipsis;white-space:nowrap;max-width:76px;font-size:10px;font-weight:700;line-height:1.3;overflow:hidden}.sol-program-arc-add{color:#1a73e8;border-top:1px solid #e6edf6;margin-top:3px;font-weight:700}.sol-program-arc-add:hover{background:#eef3fd;box-shadow:inset 0 0 0 1px #1a73e8}.sol-program-add-mark{background:var(--program-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;font-weight:800;line-height:1;display:flex}.sol-dim-wrap{pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffffe0;border-radius:4px;align-items:center;gap:3px;padding:2px 5px 2px 4px;display:flex;position:absolute;transform:translate(-50%,-50%)}.sol-dim-label{color:#1a73e8;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;font-weight:600}.sol-dim-label.disabled{cursor:default;opacity:.55}.sol-dim-label:not(.disabled):hover{text-underline-offset:2px;text-decoration:underline}.sol-dim-unit{opacity:.65;margin-left:1px;font-size:9px;font-weight:400}.sol-dim-input{color:#1a73e8;background:#fff;border:1.5px solid #1a73e8;border-radius:3px;outline:none;min-width:28px;padding:1px 3px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;font-weight:600}.sol-lock{cursor:pointer;opacity:.35;background:0 0;border:none;align-items:center;padding:1px 1px 0;transition:opacity .12s;display:flex}.sol-lock:hover,.sol-lock.locked{opacity:1}.sol-center-wrap{pointer-events:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:170;background:#ffffffe6;border-radius:7px;flex-direction:column;align-items:center;gap:5px;padding:6px 10px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 8px #00000017}.sol-area-row{align-items:center;gap:3px;display:flex}.sol-dim-bb .sol-dim-label{color:#1a73e8;font-size:12px;font-weight:700}.sol-center-bb{background:#fffffff5;border:1.5px solid #1a73e8;box-shadow:0 2px 10px #1a73e82e}.sol-group-btn{cursor:pointer;opacity:.45;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;padding:3px 6px;transition:opacity .12s,background .12s;display:flex}.sol-group-btn:hover{opacity:1;background:#eef3fd;border-color:#c8d8f8}.sol-group-btn.linked{opacity:1;background:#dce8fb;border-color:#1a73e8}.sol-program-picker{pointer-events:auto;z-index:1;position:relative}.sol-program-picker.open{z-index:180}.sol-program-trigger{color:#263341;border:1px solid var(--program-color,#c8d8f8);cursor:pointer;background:#fff;border-radius:7px;outline:none;align-items:center;gap:7px;min-width:106px;height:24px;padding:0 8px;display:flex;box-shadow:0 1px 4px #14213014}.sol-program-trigger:hover,.sol-program-trigger.open{background:var(--program-hover,#eef3fd);box-shadow:inset 0 0 0 1px var(--program-color,#c8d8f8), 0 1px 4px #14213014}.sol-program-trigger.mixed{border-color:#c8d1dc}.sol-program-caret{border-top:4px solid #6d7a89;border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0;margin-left:auto}.sol-program-dropdown{z-index:181;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:2px;width:118px;padding:4px;display:flex;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #14213029}.sol-program-option,.sol-program-dept-trigger{color:#263341;cursor:pointer;text-align:left;background:#fff;border:none;border-radius:6px;align-items:center;gap:7px;width:100%;height:26px;padding:0 8px;display:flex;box-shadow:inset 0 0 0 1px #0000}.sol-program-option:hover,.sol-program-option.selected,.sol-program-dept-trigger:hover,.sol-program-dept-trigger.selected{background:var(--program-hover);box-shadow:inset 0 0 0 1px var(--program-color)}.sol-program-option.selected{box-shadow:inset 0 0 0 1px var(--program-color)}.sol-program-dept-menu{width:136px;overflow:visible}.sol-program-dept-item{position:relative}.sol-program-dept-trigger{--program-color:#c8d8f8;--program-hover:#eef3fd;font-weight:700}.sol-program-sub-caret{border-top:3px solid #0000;border-bottom:3px solid #0000;border-left:4px solid #6d7a89;width:0;height:0;margin-left:auto}.sol-program-submenu{z-index:182;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:2px;width:136px;padding:4px;display:none;position:absolute;top:0;left:calc(100% + 6px);box-shadow:0 6px 18px #14213029}.sol-program-add-option{color:#1a73e8;border-top:1px solid #e6edf6;margin-top:3px;font-weight:700}.sol-program-add-option:hover{background:#eef3fd;box-shadow:inset 0 0 0 1px #1a73e8}.sol-merge-wrap{z-index:130;pointer-events:auto;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%)}.sol-merge-btn,.sol-mirror-btn,.sol-grid-btn,.sol-align-btn{cursor:pointer;color:#1a73e8;background:#fff;border:1.5px solid #c8d8f8;border-radius:7px;justify-content:center;align-items:center;height:26px;transition:background .12s,border-color .12s,box-shadow .12s;display:flex;box-shadow:0 2px 8px #1a73e81f}.sol-merge-btn{letter-spacing:.01em;white-space:nowrap;padding:4px 10px;font-size:11px;font-weight:600}.sol-mirror-btn,.sol-grid-btn,.sol-align-btn{width:28px;padding:0}.sol-mirror-btn svg,.sol-grid-btn svg,.sol-align-btn svg{display:block}.sol-merge-btn:hover,.sol-mirror-btn:hover,.sol-grid-btn:hover,.sol-align-btn:hover{background:#eef3fd;border-color:#1a73e8;box-shadow:0 2px 10px #1a73e838}.sol-merge-btn:active,.sol-mirror-btn:active,.sol-grid-btn:active,.sol-align-btn:active{background:#dce8fb}.sol-grid-btn.open{color:#fff;background:#1a73e8;border-color:#1a73e8;box-shadow:0 2px 10px #1a73e847}.sol-grid-popover{z-index:190;color:#263341;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:9px;width:162px;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 22px #1421302e}.sol-grid-popover.above{top:auto;bottom:calc(100% + 8px)}.sol-grid-field{color:#4e5c6c;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;font-size:11px;font-weight:700;display:grid}.sol-grid-field input{color:#253140;width:100%;min-width:0;height:28px;font:inherit;border:1px solid #d6dee8;border-radius:6px;outline:none;padding:0 7px}.sol-grid-field input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sol-grid-actions{justify-content:flex-end;gap:7px;padding-top:2px;display:flex}.sol-grid-actions button{cursor:pointer;border-radius:6px;height:28px;padding:0 10px;font-size:11px;font-weight:700}.sol-grid-secondary{color:#3f4c5a;background:#fff;border:1px solid #cdd6e1}.sol-grid-secondary:hover{background:#f3f6fa}.sol-grid-primary{color:#fff;background:#1a73e8;border:1px solid #1a73e8}.sol-grid-primary:hover{background:#1257b8;border-color:#1257b8}.sol-grid-primary:disabled{cursor:default;opacity:.45}.program-dialog-backdrop{z-index:300;background:#121b2638;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.program-dialog{color:#263341;background:#fff;border:1px solid #d9e1ea;border-radius:8px;flex-direction:column;gap:14px;width:min(340px,100vw - 32px);padding:18px;display:flex;box-shadow:0 18px 50px #121b263d}.program-dialog-title{font-size:15px;font-weight:750}.program-dialog-field{color:#4e5c6c;grid-template-columns:72px 1fr;align-items:center;gap:10px;font-size:12px;font-weight:650;display:grid}.program-dialog-field input[type=text],.program-dialog-field input:not([type]){color:#253140;min-width:0;height:30px;font:inherit;border:1px solid #d6dee8;border-radius:6px;outline:none;padding:0 9px}.program-dialog-field input[type=color]{cursor:pointer;background:0 0;border:1px solid #ccd7e2;border-radius:6px;width:44px;height:30px;padding:0}.program-dialog-field input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.program-dialog-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.program-dialog-actions button{cursor:pointer;border-radius:6px;height:30px;padding:0 12px;font-size:12px;font-weight:700}.program-dialog-secondary{color:#3f4c5a;background:#fff;border:1px solid #cdd6e1}.program-dialog-secondary:hover{background:#f3f6fa}.program-dialog-primary{color:#fff;background:#000;border:1px solid #000}.program-dialog-primary:hover{background:#111827;border-color:#111827}.program-dialog-primary:disabled{cursor:default;opacity:.45}.sd-design-dialog{width:min(1080px,100vw - 32px);max-height:calc(100vh - 32px)}.sd-section-subtitle{color:#6b7b8d;margin-top:-6px;font-size:12px;font-weight:600}.sd-design-body{grid-template-columns:minmax(0,680px) minmax(280px,340px);align-items:stretch;gap:14px;min-height:0;display:grid}.sd-design-editor{flex-direction:column;gap:12px;min-width:0;display:flex}.sd-design-meta{grid-template-columns:minmax(0,1fr) 70px;align-items:end;gap:10px;display:grid}.sd-meta-field{color:#4e5c6c;flex-direction:column;gap:4px;min-width:0;font-size:11px;font-weight:700;display:flex}.sd-meta-field input{color:#253140;width:100%;height:30px;font:inherit;background:#fff;border:1px solid #d6dee8;border-radius:6px;outline:none;font-size:12px}.sd-meta-name input{padding:0 8px}.sd-meta-color input{cursor:pointer;padding:2px}.sd-meta-field input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-type-row{align-items:center;gap:10px;display:flex}.sd-type-label{color:#4e5c6c;white-space:nowrap;min-width:32px;font-size:12px;font-weight:650}.sd-picker-caret{border-top:4px solid #6d7a89;border-left:3px solid #0000;border-right:3px solid #0000;flex-shrink:0;width:0;height:0;margin-left:auto}.sd-dept-picker{flex:1;max-width:220px;position:relative}.sd-dept-picker.open{z-index:20}.sd-dept-trigger{color:#253140;width:100%;height:30px;font:inherit;cursor:pointer;text-align:left;background:#fff;border:1px solid #d6dee8;border-radius:6px;outline:none;align-items:center;gap:6px;padding:0 9px;font-size:12px;display:flex}.sd-dept-trigger:hover,.sd-dept-trigger.open{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-dept-trigger.placeholder .sd-dept-name{color:#9baab8}.sd-dept-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sd-dept-dropdown{z-index:21;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:2px;min-width:100%;max-width:240px;max-height:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 18px #14213029}.sd-dept-option{color:#263341;width:100%;height:26px;font:inherit;cursor:pointer;text-align:left;background:#fff;border:none;border-radius:6px;align-items:center;padding:0 8px;font-size:12px;display:flex;box-shadow:inset 0 0 0 1px #0000}.sd-dept-option:hover{background:#eef3fd;box-shadow:inset 0 0 0 1px #c8d8f8}.sd-dept-option.selected{color:#1a55c2;background:#eef3fd;box-shadow:inset 0 0 0 1.5px #1a73e8}.sd-dept-add-option{color:#1a73e8;width:100%;height:26px;font:inherit;cursor:pointer;text-align:left;background:#fff;border:none;border-top:1px solid #e6edf6;border-radius:0 0 6px 6px;align-items:center;gap:6px;margin-top:2px;padding:4px 8px 0;font-size:12px;font-weight:700;display:flex}.sd-dept-add-option:hover{background:#eef3fd}.sd-dept-add-mark{font-size:15px;line-height:1}.sd-new-type-wrap{border-top:1px solid #e6edf6;align-items:center;gap:4px;margin-top:2px;padding:4px 4px 2px;display:flex}.sd-new-type-input{color:#253140;min-width:0;height:26px;font:inherit;border:1px solid #d6dee8;border-radius:6px;outline:none;flex:1;padding:0 7px;font-size:12px}.sd-new-type-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-new-type-ok{color:#fff;height:26px;font:inherit;cursor:pointer;white-space:nowrap;background:#000;border:1px solid #000;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700}.sd-new-type-ok:disabled{opacity:.4;cursor:default}.sd-table{border:1px solid #dce6fb;border-radius:8px;flex-direction:column;display:flex}.sd-table-head,.sd-table-row{grid-template-columns:20px minmax(150px,1fr) 76px 62px 76px 62px 28px;align-items:center;gap:8px;padding:6px 10px;display:grid}.sd-table-head{color:#6b7b8d;text-transform:uppercase;letter-spacing:.04em;background:#f6f8fb;border-bottom:1px solid #dce6fb;border-radius:8px 8px 0 0;font-size:11px;font-weight:700}.sd-table-row{border-bottom:1px solid #f0f4f9;position:relative}.sd-table-row.dragging{opacity:.48}.sd-table-row.drop-before:before,.sd-table-row.drop-after:after{content:"";pointer-events:none;background:#1a73e8;border-radius:999px;height:2px;position:absolute;left:8px;right:8px}.sd-table-row.drop-before:before{top:-1px}.sd-table-row.drop-after:after{bottom:-1px}.sd-table-row:last-child{border-bottom:none;border-radius:0 0 8px 8px}.sd-col-drag{justify-content:center;align-items:center;display:flex}.sd-col-mat{min-width:0;position:relative;overflow:visible}.sd-col-thick,.sd-col-spacing,.sd-col-units,.sd-col-spacing-units{display:flex}.sd-col-rm{justify-content:center;align-items:center;display:flex}.sd-row-drag-handle{color:#8a9bac;cursor:grab;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:3px;width:18px;height:26px;display:flex}.sd-row-drag-handle:before,.sd-row-drag-handle:after{content:"";background:currentColor;border-radius:1px;width:2px;height:14px}.sd-row-drag-handle:hover,.sd-row-drag-handle:focus-visible{color:#1a73e8;background:#eef3fd;border-color:#c8d8f8;outline:none}.sd-row-drag-handle:active{cursor:grabbing}.sd-thick-input{color:#253140;width:100%;height:28px;font:inherit;-moz-appearance:textfield;border:1px solid #d6dee8;border-radius:6px;outline:none;padding:0 7px;font-size:12px}.sd-thick-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-thick-input:disabled,.sd-units-sel:disabled{color:#9aa8b6;cursor:default;background:#f3f6fa}.sd-thick-input::-webkit-outer-spin-button{-webkit-appearance:none}.sd-thick-input::-webkit-inner-spin-button{-webkit-appearance:none}.sd-units-wrap{width:100%;display:flex;position:relative}.sd-units-wrap:after{content:"";pointer-events:none;border-top:4px solid #6d7a89;border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.sd-units-sel{color:#253140;width:100%;height:28px;font:inherit;cursor:pointer;appearance:none;background:#fff;border:1px solid #d6dee8;border-radius:6px;outline:none;padding:0 22px 0 8px;font-size:12px}.sd-units-sel:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-rm-btn{color:#8a9bac;cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;font-size:15px;line-height:1;display:flex}.sd-rm-btn:hover{color:#c53030;background:#fee2e2}.sd-add-comp{color:#1a73e8;height:28px;font:inherit;cursor:pointer;background:#fff;border:1.5px dashed #c8d8f8;border-radius:6px;align-self:flex-start;padding:0 10px;font-size:12px;font-weight:700}.sd-add-comp:hover{background:#eef3fd;border-color:#1a73e8}.sd-mat-picker{z-index:1;position:relative}.sd-mat-picker.open{z-index:30}.sd-mat-trigger{color:#253140;width:100%;height:28px;font:inherit;cursor:pointer;text-align:left;background:#fff;border:1px solid #d6dee8;border-radius:6px;outline:none;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.sd-mat-trigger:hover,.sd-mat-trigger.open{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-mat-trigger.placeholder .sd-mat-name{color:#9baab8}.sd-mat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sd-mat-dropdown{z-index:31;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:1px;width:max-content;min-width:200px;max-width:260px;max-height:300px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 18px #14213029}.sd-mat-cat-item{flex-direction:column;display:flex;position:relative}.sd-mat-submenu{box-sizing:border-box;z-index:32;background:#fff;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;gap:1px;width:220px;max-height:300px;padding:4px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 6px 18px #14213029}.sd-picker-sub-caret{border-top:3px solid #0000;border-bottom:3px solid #0000;border-left:4px solid #6d7a89;flex-shrink:0;width:0;height:0;margin-left:auto}.sd-mat-cat-trigger{color:#263341;width:100%;height:26px;font:inherit;cursor:pointer;text-align:left;background:#fff;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:700;display:flex;box-shadow:inset 0 0 0 1px #0000}.sd-mat-cat-trigger:hover,.sd-mat-cat-trigger.selected{background:#eef3fd;box-shadow:inset 0 0 0 1px #c8d8f8}.sd-mat-option{color:#263341;width:100%;min-height:24px;font:inherit;cursor:pointer;text-align:left;word-break:break-word;background:#fff;border:none;border-radius:6px;align-items:flex-start;padding:4px 8px;font-size:11px;line-height:1.35;display:flex;box-shadow:inset 0 0 0 1px #0000}.sd-mat-option:hover{background:#eef3fd;box-shadow:inset 0 0 0 1px #c8d8f8}.sd-mat-option.selected{color:#1a55c2;background:#eef3fd;box-shadow:inset 0 0 0 1.5px #1a73e8}.sd-chat-panel{background:#fbfcfe;border:1px solid #dce6fb;border-radius:8px;flex-direction:column;min-width:0;min-height:360px;max-height:520px;display:flex;overflow:hidden}.sd-chat-head{color:#253140;border-bottom:1px solid #e4ebf4;justify-content:space-between;align-items:center;gap:10px;height:38px;padding:0 10px;font-size:12px;font-weight:750;display:flex}.sd-chat-status{color:#6b7b8d;flex-shrink:0;font-size:11px;font-weight:700}.sd-chat-status.busy{color:#1a73e8}.sd-chat-log{background:#fff;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.sd-chat-msg{flex-direction:column;gap:3px;max-width:88%;display:flex}.sd-chat-msg.user{align-self:flex-end}.sd-chat-msg.agent{align-self:flex-start}.sd-chat-msg-label{color:#718196;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:750}.sd-chat-msg.user .sd-chat-msg-label{text-align:right}.sd-chat-msg-text{color:#263341;white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fb;border:1px solid #dfe7f0;border-radius:8px;padding:7px 9px;font-size:12px;line-height:1.45}.sd-chat-msg.user .sd-chat-msg-text{color:#173e7f;background:#eef3fd;border-color:#c8d8f8}.sd-chat-msg.pending .sd-chat-msg-text{color:#6b7b8d}.sd-chat-error{color:#9b2c2c;overflow-wrap:anywhere;padding:7px 10px 0;font-size:11px;line-height:1.35}.sd-chat-compose{background:#fbfcfe;border-top:1px solid #e4ebf4;grid-template-columns:minmax(0,1fr) 58px;gap:8px;padding:8px;display:grid}.sd-chat-input{resize:vertical;color:#253140;width:100%;min-width:0;min-height:42px;max-height:90px;font:inherit;background:#fff;border:1px solid #d6dee8;border-radius:6px;outline:none;padding:7px 8px;font-size:12px;line-height:1.35}.sd-chat-input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.sd-chat-input:disabled{color:#8795a5;background:#f3f6fa}.sd-chat-send{color:#fff;height:42px;font:inherit;cursor:pointer;background:#000;border:1px solid #000;border-radius:6px;align-self:end;font-size:12px;font-weight:750}.sd-chat-send:hover{background:#111827;border-color:#111827}.sd-chat-send:disabled{cursor:default;opacity:.45}@media (width<=900px){.sd-design-body{grid-template-columns:1fr}.sd-chat-panel{min-height:280px;max-height:360px}}.sd-confirm-overlay{z-index:350;background:#121b2659}.sd-confirm-dialog{width:min(340px,100vw - 32px)}.sd-confirm-msg{color:#4e5c6c;margin:0;font-size:13px;line-height:1.5}.sd-danger{background:#c53030!important;border-color:#c53030!important}.sd-danger:hover{background:#9b2c2c!important;border-color:#9b2c2c!important}.heatmap-backdrop{z-index:1000;background:#0a14247a;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.heatmap-modal{background:#fff;border-radius:10px;flex-direction:column;min-width:300px;max-width:min(90vw,900px);max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 48px #0a143047}.heatmap-modal-header{background:#f8fafc;border-bottom:1px solid #e3e8ef;flex-shrink:0;align-items:center;height:44px;padding:0 10px 0 16px;display:flex}.heatmap-modal-title{color:#1a2332;letter-spacing:.01em;font-size:13px;font-weight:700}.heatmap-header-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.heatmap-export-btn{color:#1a73e8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #cddced;border-radius:5px;height:26px;padding:0 10px;font-size:12px;font-weight:600}.heatmap-export-btn:hover{background:#eef4fb;border-color:#1a73e8}.heatmap-close-btn{color:#536172;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:13px;line-height:1;display:flex}.heatmap-close-btn:hover{color:#1a2332;background:#eef4fb;border-color:#cddced}.heatmap-status{color:#536172;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:48px 32px;font-size:13px;display:flex}.heatmap-spinner{border:3px solid #dce6fb;border-top-color:#1a73e8;border-radius:50%;width:28px;height:28px;animation:.75s linear infinite heatmap-spin}@keyframes heatmap-spin{to{transform:rotate(360deg)}}.heatmap-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 32px;display:flex}.heatmap-empty-label{color:#536172;max-width:280px;margin:0;font-size:13px;line-height:1.5}.heatmap-empty-actions{justify-content:center;gap:8px;display:flex}.heatmap-generate-btn{color:#fff;cursor:pointer;letter-spacing:.01em;background:#1a73e8;border:none;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:600}.heatmap-generate-btn:hover{background:#1558c0}.heatmap-import-btn{color:#1a73e8;cursor:pointer;letter-spacing:.01em;background:0 0;border:1px solid #cddced;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:600}.heatmap-import-btn:hover{background:#eef4fb;border-color:#1a73e8}.heatmap-scroll-area{flex:auto;padding:12px 16px 4px;overflow:auto}.heatmap-table{border-collapse:collapse;table-layout:fixed}.heatmap-corner{width:110px;min-width:110px}.heatmap-col-th{vertical-align:bottom;text-align:center;background:0 0;border:none;width:30px;min-width:30px;max-width:30px;height:86px;padding:0;overflow:visible}.heatmap-col-label{writing-mode:vertical-rl;color:#263341;white-space:nowrap;text-overflow:ellipsis;text-align:left;max-height:82px;padding-bottom:4px;font-size:10px;font-weight:600;display:block;overflow:hidden;transform:rotate(180deg)}.heatmap-row-header{text-align:right;color:#263341;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;width:110px;min-width:110px;max-width:110px;padding:0 8px 0 0;font-size:10px;font-weight:600;overflow:hidden}.heatmap-cell{text-align:center;vertical-align:middle;font-variant-numeric:tabular-nums;cursor:default;-webkit-user-select:none;user-select:none;border:1px solid #fff9;width:30px;min-width:30px;max-width:30px;height:30px;font-size:9px;font-weight:600}.program-panel{z-index:160;color:#263341;font-size:12px;position:fixed;top:12px;left:12px}.program-panel.expanded{background:#fffffff7;border:1px solid #d9e1ea;border-radius:8px;flex-direction:column;width:min(620px,100vw - 24px);max-height:calc(100vh - 24px);display:flex;overflow:hidden;box-shadow:0 10px 28px #1e2a3a26}.program-panel.summary{background:#fffffff7;border:1px solid #d9e1ea;border-radius:8px;flex-direction:column;width:min(360px,100vw - 24px);max-height:calc(100vh - 24px);display:flex;overflow:hidden;box-shadow:0 8px 22px #1e2a3a21}.program-panel-header{background:#f8fafc;border-bottom:1px solid #e3e8ef;align-items:center;height:40px;padding:0 8px 0 12px;display:flex}.program-panel-title{letter-spacing:0;font-size:13px;font-weight:700}.program-header-btns{align-items:center;gap:2px;margin-left:auto;display:flex}.program-panel-toggle,.program-matrix-btn{color:#536172;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.program-panel-toggle:hover,.program-matrix-btn:hover{color:#1a73e8;background:#eef4fb;border-color:#cddced}.program-table{flex-direction:column;min-height:0;display:flex}.program-table-head,.program-row{grid-template-columns:30px minmax(112px,1.25fr) 70px 52px 64px 62px 62px 22px;align-items:center;column-gap:5px;display:grid}.program-table-summary .program-table-head,.program-table-summary .program-row{grid-template-columns:30px minmax(112px,1fr) 70px 62px 22px;column-gap:5px}.program-panel.facade .program-table-head,.program-panel.facade .program-row,.program-panel.facade .program-table-summary .program-table-head,.program-panel.facade .program-table-summary .program-row{grid-template-columns:30px minmax(88px,1fr) 44px 54px 60px 22px}.program-panel.facade .program-table-head span{white-space:nowrap}.program-panel.facade .program-row .program-value-cell{width:100%}.program-table-head{color:#687586;text-transform:uppercase;border-bottom:1px solid #e8edf3;height:40px;padding:5px 12px;font-size:10px;font-weight:700}.program-all-groups-toggle{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;width:18px;height:22px;display:flex}.program-all-groups-toggle:before{content:"";border-bottom:5px solid #7a8796;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0}.program-all-groups-toggle.open:before{border-top:5px solid #7a8796;border-bottom:0}.program-all-groups-toggle:hover{background:#eef4fb;border-color:#cddced}.program-all-groups-toggle:hover:before{border-bottom-color:#1a73e8}.program-all-groups-toggle.open:hover:before{border-top-color:#1a73e8}.program-table-body{min-height:0;overflow:auto}.program-group{border-bottom:1px solid #edf1f5}.program-group summary{color:#3d4a59;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fbfcfe;align-items:center;gap:7px;height:30px;padding:0 12px;font-weight:700;list-style:none;display:flex}.program-group-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.program-group-diff{flex:none;height:22px;margin-left:auto;font-size:11px}.program-group summary::-webkit-details-marker{display:none}.program-group summary:before{content:"";border-bottom:5px solid #7a8796;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0}.program-group[open] summary:before{border-top:5px solid #7a8796;border-bottom:0}.program-row{cursor:pointer;border-top:1px solid #f0f3f7;min-height:38px;padding:4px 12px}.program-row:focus-within,.program-row:hover{background:#f7fbff}.program-row.applying{background:#eef4fb;box-shadow:inset 3px 0 #1a73e8}.program-row.applying:hover{background:#e6f0fd}.program-color-input{cursor:pointer;background:0 0;border:1px solid #ccd7e2;border-radius:5px;width:24px;height:24px;padding:0}.program-name-input,.program-list-input,.program-number-input,.program-room-cell input{color:#253140;width:100%;min-width:0;height:26px;font:inherit;background:#fff;border:1px solid #d6dee8;border-radius:5px;outline:none;padding:0 7px}.program-name-input:focus,.program-list-input:focus,.program-number-input:focus,.program-room-cell input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81f}.program-list-input{padding:0 5px}.program-room-cell{color:#314052;grid-template-columns:minmax(12px,max-content) 4px 42px;align-items:center;gap:1px;font-weight:600;display:grid}.program-room-cell span:first-child,.program-room-cell input,.program-number-input{text-align:right}.program-room-cell input{padding:0 5px}.program-number-input{width:64px;padding:0 5px}.program-value-cell{font-variant-numeric:tabular-nums;color:#253140;background:#f5f7fa;border-radius:5px;justify-content:flex-end;align-items:center;width:62px;height:26px;padding:0 5px;display:flex}.program-summary-name{text-overflow:ellipsis;white-space:nowrap;color:#253140;min-width:0;font-weight:650;overflow:hidden}.program-value-cell.over{color:#0f7a59;background:#edf8f4}.program-value-cell.under{color:#b64242;background:#fff1f1}.program-delete-btn{color:#8a96a3;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;line-height:1;display:flex}.program-delete-btn:hover{color:#b64242;background:#fff1f1;border-color:#efcaca}.program-panel-footer{background:#fbfcfe;border-top:1px solid #e3e8ef;justify-content:flex-start;align-items:center;gap:8px;min-height:44px;padding:8px 12px;display:flex}.program-file-input{display:none}.program-import-btn,.program-add-btn,.program-defaults-btn{color:#324255;min-width:0;height:30px;font:inherit;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-weight:700;display:inline-flex}.program-import-btn:hover,.program-add-btn:hover{background:#f3f6fa}.program-defaults-btn{color:#9b1c1c;background:#fff5f5;border-color:#f5c2c2}.program-defaults-btn:hover{color:#7f1d1d;background:#fee2e2;border-color:#e57373}.program-defaults-btn:disabled{opacity:.55;cursor:default}.program-defaults-btn:disabled:hover{color:#9b1c1c;background:#fff5f5;border-color:#f5c2c2}@media (width<=760px){.program-panel.expanded{width:auto;top:8px;left:8px;right:8px}.program-panel.summary{top:8px;left:8px}.program-table-head,.program-row{grid-template-columns:30px minmax(104px,1fr) 70px 48px 64px 62px 62px 22px;column-gap:5px}.program-table-summary .program-table-head,.program-table-summary .program-row{grid-template-columns:30px minmax(104px,1fr) 70px 62px 22px}.program-panel.facade .program-table-head,.program-panel.facade .program-row,.program-panel.facade .program-table-summary .program-table-head,.program-panel.facade .program-table-summary .program-row{grid-template-columns:30px minmax(80px,1fr) 42px 50px 58px 22px}}.toolbar{z-index:100;background:#fff;border-radius:12px;align-items:center;gap:3px;padding:4px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000001f,0 0 0 1px #00000014}.tool-btn{color:#444;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .1s,color .1s;display:flex}.tool-btn:hover{color:#000;background:#f0f0f0}.tool-btn.active{color:#fff;background:#000}.app{width:100%;height:100%;overflow:hidden}.app-workspace{width:100%;height:100%;transition:filter .16s,transform .16s}.app-workspace.blurred{filter:blur(5px);pointer-events:none;transform:scale(1.01)}.project-launch-backdrop{z-index:500;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121b2638;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.project-launch-dialog{color:#263341;background:#fffffffa;border:1px solid #d9e1ea;border-radius:8px;gap:10px;width:min(340px,100vw - 40px);padding:18px;font-size:12px;display:grid;box-shadow:0 18px 50px #121b263d}.project-launch-logo{justify-self:center;width:112px;max-width:42%;height:auto;margin:2px 0 16px}.project-launch-primary,.project-launch-secondary,.project-mode-toggle button{min-width:0;height:30px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #cfd8e3;border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-weight:700;display:inline-flex}.project-launch-primary{color:#fff;background:#000;border:1px solid #000}.project-launch-primary:hover{background:#111827;border-color:#111827}.project-launch-secondary{color:#324255;background:#fff;border:1px solid #cfd8e3}.project-launch-secondary:hover{background:#f3f6fa}.project-launch-primary:disabled,.project-launch-secondary:disabled,.project-mode-toggle button:disabled{color:#7a8796;opacity:.55;cursor:default}.project-mode-toggle{background:#f5f7fa;border:1px solid #d9e1ea;border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.project-mode-toggle button{color:#324255;background:#fff}.project-mode-toggle button:hover{background:#f3f6fa}.project-mode-toggle button.selected{color:#1a73e8;background:#eef4fb;border-color:#1a73e8}.project-location-panel{z-index:150;color:#263341;background:#fffffff7;border:1px solid #d9e1ea;border-radius:8px;gap:6px;width:min(390px,100vw - 760px);min-width:300px;padding:8px;font-size:12px;display:grid;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #1e2a3a21}.control-point-edit-banner{z-index:260;color:#263341;background:#fffffffa;border:1px solid #cfd8e3;border-radius:8px;align-items:center;gap:8px;width:min(460px,100vw - 32px);min-height:40px;padding:6px 8px 6px 12px;font-size:12px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #1e2a3a24}.control-point-edit-banner.invalid{border-color:#d93025}.control-point-edit-status{flex:auto;min-width:0;font-weight:700}.control-point-edit-warning{color:#9f2d25;flex:auto;min-width:0;font-weight:700}.control-point-edit-actions{flex:none;align-items:center;gap:6px;display:flex}.control-point-edit-actions button{color:#324255;min-width:0;height:28px;font:inherit;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;padding:0 10px;font-weight:700}.control-point-edit-actions button:hover{background:#f3f6fa}.control-point-edit-actions button.primary{color:#fff;background:#111827;border-color:#111827}.control-point-edit-actions button.primary:hover{background:#000}.control-point-edit-actions button[aria-disabled=true]{color:#fff;background:#d93025;border-color:#d93025}@media (width<=560px){.control-point-edit-banner{flex-wrap:wrap;width:auto;left:12px;right:12px;transform:none}.control-point-edit-status,.control-point-edit-warning{flex-basis:100%}.control-point-edit-actions{justify-content:flex-end;width:100%}}.project-location-panel.performance-location-panel{z-index:auto;width:auto;min-width:0;box-shadow:none;border:0;border-bottom:1px solid #e3e8ef;border-radius:0;gap:8px;padding:10px 12px;position:static;inset:auto;transform:none}.project-location-label{font-size:11px;font-weight:700;line-height:1}.performance-location-panel .project-location-label{color:#536170;letter-spacing:0;text-transform:uppercase;font-size:10px;font-weight:700}.project-location-row{grid-template-columns:minmax(0,1fr) 64px 28px;align-items:center;gap:4px;display:grid}.project-location-input{color:#263341;width:100%;min-width:0;height:30px;font:inherit;background:#fff;border:1px solid #cfd8e3;border-radius:6px;padding:0 9px}.project-location-input:focus{border-color:#1a73e8;outline:2px solid #1a73e833}.project-location-submit,.project-location-clear{color:#324255;min-width:0;height:30px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:6px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.project-location-submit{padding:0 8px}.project-location-submit:hover:not(:disabled),.project-location-clear:hover{color:#1a73e8;background:#eef4fb;border-color:#cddced}.project-location-submit:disabled{color:#7a8796;opacity:.55;cursor:default}.project-location-result{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;min-height:22px;display:grid}.project-location-zone{color:#0f5c36;white-space:nowrap;background:#e7f6ee;border-radius:6px;align-items:center;height:22px;padding:0 7px;font-weight:800;display:inline-flex}.project-location-place{color:#536172;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-location-message{color:#6d5f13;text-overflow:ellipsis;white-space:nowrap;min-height:18px;overflow:hidden}.project-location-message.error{color:#b3261e}.dev-controls{z-index:180;flex-direction:column;align-items:flex-end;gap:8px;font-size:12px;display:flex;position:absolute;bottom:14px;right:14px}.dev-control-row{align-items:center;gap:8px;display:flex}.project-file-input{display:none}.dev-mode-toggle{color:#263341;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fffffff5;border:1px solid #cfd8e3;border-radius:8px;justify-content:space-between;align-items:center;gap:9px;min-width:128px;height:34px;padding:7px 9px 7px 11px;font-size:12px;font-weight:700;display:flex;position:relative;box-shadow:0 5px 16px #1e2a3a24}.dev-mode-toggle input{opacity:0;pointer-events:none;position:absolute}.dev-mode-label{line-height:1}.dev-mode-slider{background:#d8e0ea;border-radius:999px;width:38px;height:20px;transition:background .14s;position:relative}.dev-mode-slider:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .14s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #1e2a3a47}.dev-mode-toggle input:checked+.dev-mode-slider{background:#1a73e8}.dev-mode-toggle input:checked+.dev-mode-slider:before{transform:translate(18px)}.project-actions{position:relative}.project-actions-toggle{color:#324255;width:34px;height:34px;font:inherit;cursor:pointer;background:#fffffff5;border:1px solid #cfd8e3;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;display:inline-flex;box-shadow:0 5px 16px #1e2a3a24}.project-actions-toggle:hover,.project-actions-toggle[aria-expanded=true]{background:#f3f6fa}.project-actions-dot{background:currentColor;border-radius:50%;width:3px;height:3px}.project-actions-menu{background:#fffffffa;border:1px solid #cfd8e3;border-radius:8px;gap:4px;min-width:150px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 12px 32px #1e2a3a33}.project-actions-item{color:#324255;width:100%;height:30px;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:flex-start;align-items:center;padding:0 10px;font-weight:700;display:inline-flex}.project-actions-item:hover:not(:disabled),.project-actions-item:focus-visible{background:#f3f6fa;border-color:#d9e1ea}.project-actions-item:disabled{color:#7a8796;opacity:.55;cursor:default}@media (width<=1180px){.project-location-panel{width:min(390px,100vw - 140px);top:auto;bottom:62px;left:12px;transform:none}}@media (width<=680px){.project-location-panel{width:auto;min-width:0;bottom:64px;right:12px}.project-location-row{grid-template-columns:minmax(0,1fr) 58px 28px}}
