.greenhouse-heatmap[data-v-ed5c5094]{background:#0d1117;border:1px solid #30363d;border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#e6edf3;font-family:DM Mono,Courier New,monospace;padding:1.25rem;width:100%}.controls[data-v-ed5c5094]{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:16px;margin-bottom:.75rem}.control-group[data-v-ed5c5094],.controls[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.control-group[data-v-ed5c5094]{gap:8px}.label[data-v-ed5c5094]{color:#8b949e;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.toggle[data-v-ed5c5094]{border:1px solid #30363d;border-radius:6px;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden}.toggle button[data-v-ed5c5094]{background:transparent;border:none;color:#8b949e;cursor:pointer;font-family:inherit;font-size:12px;padding:4px 12px;-webkit-transition:background .15s,color .15s;transition:background .15s,color .15s}.toggle button.active[data-v-ed5c5094]{background:#238636;color:#fff}.toggle button[data-v-ed5c5094]:hover:not(.active){background:#21262d;color:#e6edf3}.slider[data-v-ed5c5094]{accent-color:#238636;cursor:pointer;width:80px}.slider-val[data-v-ed5c5094]{color:#8b949e;font-size:12px;min-width:30px}.status[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:11px;gap:6px;margin-left:auto}.status--live[data-v-ed5c5094]{color:#3fb950}.status--wait[data-v-ed5c5094]{color:#8b949e}.dot[data-v-ed5c5094]{-webkit-animation:pulse-ed5c5094 1.5s infinite;animation:pulse-ed5c5094 1.5s infinite;background:currentColor;border-radius:50%;height:6px;width:6px}@-webkit-keyframes pulse-ed5c5094{0%,to{opacity:1}50%{opacity:.3}}@keyframes pulse-ed5c5094{0%,to{opacity:1}50%{opacity:.3}}.edit-btn[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:transparent;border:1px solid #30363d;border-radius:6px;color:#8b949e;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:12px;gap:6px;padding:4px 12px;-webkit-transition:all .15s;transition:all .15s}.edit-btn[data-v-ed5c5094]:hover{background:#21262d;border-color:#8b949e;color:#e6edf3}.edit-btn--active[data-v-ed5c5094]{background:rgba(250,166,26,.12);border-color:rgba(250,166,26,.5);color:#faa61a}.edit-btn--active[data-v-ed5c5094]:hover{background:rgba(250,166,26,.2)}.edit-banner[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:rgba(250,166,26,.08);border:1px solid rgba(250,166,26,.25);border-radius:6px;color:#faa61a;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:11px;gap:8px;margin-bottom:.75rem;padding:6px 12px}.edit-banner code[data-v-ed5c5094]{background:hsla(0,0%,100%,.08);border-radius:3px;color:#e6edf3;font-family:inherit;padding:1px 5px}.edit-dragging[data-v-ed5c5094]{color:#e6edf3;font-weight:600}.canvas-wrapper[data-v-ed5c5094]{background:#010409;border-radius:8px;overflow:hidden;position:relative;width:100%}.map-canvas[data-v-ed5c5094]{cursor:default;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.canvas--edit[data-v-ed5c5094]{cursor:default}.canvas--dragging[data-v-ed5c5094]{cursor:-webkit-grabbing!important;cursor:grabbing!important}.coord-overlay[data-v-ed5c5094]{background:rgba(0,0,0,.72);border:1px solid rgba(250,166,26,.4);border-radius:4px;bottom:8px;color:#faa61a;font-size:11px;padding:3px 8px;pointer-events:none;position:absolute;right:10px}.tooltip[data-v-ed5c5094]{-webkit-box-orient:vertical;-webkit-box-direction:normal;background:rgba(13,17,23,.92);border:1px solid #30363d;border-radius:6px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:1px;min-width:80px;padding:6px 10px;pointer-events:none;position:absolute}.tip-val[data-v-ed5c5094]{color:#e6edf3;font-size:16px;font-weight:600;line-height:1}.tip-unit[data-v-ed5c5094]{color:#8b949e;font-size:12px;margin-left:2px}.tip-label[data-v-ed5c5094]{color:#8b949e;font-size:11px}.tip-sensor[data-v-ed5c5094]{color:#3fb950;font-size:11px}.legend[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;margin-top:10px}.legend-bar[data-v-ed5c5094]{-webkit-box-flex:1;border-radius:4px;-ms-flex:1;flex:1;max-width:200px}.leg-val[data-v-ed5c5094]{color:#8b949e;font-size:11px;min-width:36px}.leg-val.hi[data-v-ed5c5094]{text-align:right}.leg-label[data-v-ed5c5094]{color:#484f58;font-size:11px;margin-left:auto}.sensor-grid[data-v-ed5c5094]{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));margin-top:1rem}.sensor-card[data-v-ed5c5094]{background:#161b22;border:1px solid #30363d;border-radius:8px;cursor:default;padding:10px 12px;-webkit-transition:border-color .15s,-webkit-transform .1s;transition:border-color .15s,-webkit-transform .1s;transition:border-color .15s,transform .1s;transition:border-color .15s,transform .1s,-webkit-transform .1s}.sensor-card[data-v-ed5c5094]:hover:not(.card--dragging){border-color:#58a6ff;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.card--cold[data-v-ed5c5094]{border-left:3px solid #3b82f6}.card--hot[data-v-ed5c5094]{border-left:3px solid #f97316}.card--dragging[data-v-ed5c5094]{background:rgba(250,166,26,.08);border-color:#faa61a!important}.sc-header[data-v-ed5c5094]{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;justify-content:space-between;margin-bottom:4px}.sc-id[data-v-ed5c5094]{color:#8b949e;font-size:11px;font-weight:700;letter-spacing:.05em}.sc-badge[data-v-ed5c5094]{border-radius:4px;color:#000;font-size:9px;font-weight:600;letter-spacing:.04em;opacity:.9;padding:1px 5px;text-transform:uppercase}.sc-name[data-v-ed5c5094]{color:#8b949e;font-size:10px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-val[data-v-ed5c5094]{color:#e6edf3;font-size:22px;font-weight:700;line-height:1}.sc-unit[data-v-ed5c5094]{color:#8b949e;font-size:12px;margin-left:1px}.sc-coords[data-v-ed5c5094]{color:#faa61a;font-size:9px;letter-spacing:.03em;margin-top:4px}.history-picker[data-v-ed5c5094]{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:4px}.dt-select[data-v-ed5c5094]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#0d1117;border:1px solid #30363d;border-radius:5px;color:#e6edf3;cursor:pointer;font-family:inherit;font-size:11px;padding:3px 6px;-webkit-transition:border-color .15s;transition:border-color .15s}.dt-select[data-v-ed5c5094]:hover{border-color:#8b949e}.dt-select[data-v-ed5c5094]:focus{border-color:#faa61a;outline:none}.dt-select--time[data-v-ed5c5094]{border-color:rgba(250,166,26,.4);color:#faa61a}.hist-nav[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:transparent;border:1px solid #30363d;border-radius:5px;color:#8b949e;cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-size:9px;height:24px;justify-content:center;line-height:1;padding:0;-webkit-transition:all .12s;transition:all .12s;width:24px}.hist-nav[data-v-ed5c5094]:hover{background:#21262d;border-color:#faa61a;color:#e6edf3}.hist-loading[data-v-ed5c5094]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.status--hist[data-v-ed5c5094]{color:#faa61a}.fade-ctrl-enter-active[data-v-ed5c5094],.fade-ctrl-leave-active[data-v-ed5c5094]{-webkit-transition:opacity .2s,-webkit-transform .2s;transition:opacity .2s,-webkit-transform .2s;transition:opacity .2s,transform .2s;transition:opacity .2s,transform .2s,-webkit-transform .2s}.fade-ctrl-enter[data-v-ed5c5094],.fade-ctrl-leave-to[data-v-ed5c5094]{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}