.spatial-map{--map-red:var(--app-accent,#c0050a);--map-ink:#152137;--map-muted:var(--app-text-soft,#7c899d);--map-border:var(--app-border,#e2e7ee);color:var(--app-text,#172237);background:var(--app-surface,#fff);border:1px solid var(--app-border,#e2e7ee);border-radius:18px;flex-direction:column;height:100%;min-height:650px;display:flex;overflow:hidden;box-shadow:0 8px 30px #14213806}.spatial-map button,.spatial-map select,.spatial-map input{font:inherit}.spatial-map button{cursor:pointer}.spatial-map button:disabled{opacity:.45;cursor:default}.spatial-map button:focus-visible,.spatial-map input:focus-visible,.spatial-map select:focus-visible,.spatial-map summary:focus-visible{outline:2px solid var(--map-red);outline-offset:3px}.spatial-toolbar{border-bottom:1px solid var(--map-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding:17px 22px;display:flex}.spatial-title{align-items:center;gap:12px;display:flex}.spatial-title-icon{color:var(--map-red);background:#c0050a0c;border:1px solid #c0050a18;border-radius:12px;place-items:center;width:43px;height:43px;display:grid}.spatial-toolbar h2{letter-spacing:-.035em;margin:3px 0 0;font-size:19px;font-weight:650}.spatial-eyebrow{letter-spacing:.14em;color:var(--map-muted);font-size:9px;font-weight:750}.spatial-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.spatial-actions button,.spatial-inspector button,.spatial-error button{border:1px solid var(--map-border);background:var(--app-surface,#fff);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 11px;font-size:11px;transition:background .15s,border-color .15s;display:inline-flex}.spatial-actions button:hover,.spatial-inspector button:hover{background:var(--app-surface-muted,#f7f9fc);border-color:#a9b4c5}.spatial-map .spatial-primary{background:var(--map-red);color:#fff;border-color:var(--map-red)}.spatial-map .spatial-primary:hover{color:#fff;background:#a6040c;border-color:#a6040c}.spatial-map select,.spatial-map input{border:1px solid var(--map-border);background:var(--app-surface,#fff);max-width:100%;color:inherit;border-radius:7px;padding:8px;font-size:11px}.spatial-floor-select{border:1px solid var(--map-border);color:var(--map-muted);border-radius:8px;align-items:center;gap:2px;padding-left:9px;display:flex}.spatial-floor-select select{color:var(--app-text,#172237);background:0 0;border:0;padding:8px 5px}.spatial-stats{color:var(--map-muted);gap:13px;font-size:10px;display:flex}.spatial-stats span{white-space:nowrap;align-items:center;gap:5px;display:flex}.spatial-stats i,.spatial-live-dot i{background:#9ba6b7;border-radius:50%;width:5px;height:5px;display:inline-block}.spatial-stats .reporting{background:#269776}.spatial-workspace{flex:1;grid-template-columns:minmax(0,1fr) 310px;min-height:560px;display:grid}.spatial-stage{background:#101a2b;min-width:0;min-height:560px;position:relative}.spatial-canvas{touch-action:none;position:absolute;inset:0;overflow:hidden}.spatial-canvas canvas{display:block}.spatial-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.spatial-pin{text-align:left;color:#ecf3ff;pointer-events:auto;z-index:2;background:#172438f5;border:1px solid #4c607b;border-radius:10px;gap:2px;width:124px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:grid;position:absolute;box-shadow:0 5px 18px #0003}.spatial-pin:before{content:"";background:#809cc0;border-radius:2px;width:2px;position:absolute;top:13px;bottom:13px;left:-1px}.spatial-pin strong{text-overflow:ellipsis;white-space:nowrap;color:#dce5f5;font-size:10px;font-weight:550;overflow:hidden}.spatial-pin span{letter-spacing:-.04em;font-size:20px;font-weight:600}.spatial-pin small{color:#9aacc5;font-size:9px}.spatial-pin.heating:before{background:#f53145}.spatial-pin.selected{z-index:4;border-color:#e61c32;box-shadow:0 0 0 1px #e61c3280,0 6px 22px #0004}.spatial-pin.selected:before{background:#e61c32}.spatial-pin.stale{color:#8c9bb0;background:#182438f5;border-color:#34445b}.spatial-pin.stale strong{color:#aebbcf}.spatial-room-label{letter-spacing:.09em;text-transform:uppercase;color:#91a5c0;white-space:nowrap;background:#142136aa;border-radius:3px;padding:4px 6px;font-size:9px;position:absolute;transform:translate(-50%,-50%)}.spatial-labels [hidden]{display:none}.spatial-leaders{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.spatial-leaders line{stroke-width:1px;opacity:.8}.hide-labels .spatial-pin,.hide-labels .spatial-leaders{display:none}.spatial-floor-tags{pointer-events:none;justify-content:space-around;display:flex;position:absolute;top:18px;left:22px;right:50px}.spatial-floor-tags span{letter-spacing:.13em;color:#9cafc9;align-items:center;gap:8px;font-size:9px;font-weight:550;display:flex}.spatial-floor-tags b{letter-spacing:0;color:#d9e5f9;background:#25354c;border:1px solid #374c66;border-radius:5px;padding:5px 7px;font-size:10px}.spatial-stage-tools{position:absolute;top:18px;right:16px}.spatial-stage-tools button{color:#a9bad2;background:#18273e;border:1px solid #31435f;border-radius:7px;place-items:center;width:31px;height:31px;display:grid}.spatial-navigation{border:1px solid #34455e;border-radius:8px;display:grid;position:absolute;bottom:57px;right:16px;overflow:hidden;box-shadow:0 3px 15px #0003}.spatial-navigation button{color:#c6d4e9;background:#18273e;border:0;border-bottom:1px solid #34455e;place-items:center;width:33px;height:34px;display:grid}.spatial-stage-footer{pointer-events:none;color:#8397b5;background:linear-gradient(#0000,#0c1524ee);justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;font-size:9px;display:flex;position:absolute;bottom:0;left:0;right:0}.spatial-stage-footer>span{letter-spacing:.1em;align-items:center;gap:6px;font-size:8px;display:flex}.spatial-stage-footer p{margin:0;font-size:10px}.spatial-live-dot i{background:#e52b3e;box-shadow:0 0 7px #ed1e3455}.spatial-placement-banner{color:#fff;background:#b70819ed;border:1px solid #ed5666;border-radius:10px;align-items:center;gap:9px;padding:11px 13px;font-size:11px;display:flex;position:absolute;bottom:55px;left:18px;right:62px;box-shadow:0 5px 20px #0003}.spatial-placement-banner button{background:#fff1;border:1px solid #ffffff60;border-radius:5px;margin-left:auto;padding:4px 10px}.spatial-sidebar{border-left:1px solid var(--map-border);scrollbar-width:thin;scrollbar-color:#c3ccda transparent;min-height:560px;max-height:calc(100vh - 235px);padding:17px 14px;overflow:auto}.spatial-sidebar-heading{justify-content:space-between;align-items:center;gap:7px;margin-bottom:13px;display:flex}.spatial-sidebar-heading>div{gap:5px;display:grid}.spatial-sidebar-heading strong{letter-spacing:-.02em;font-size:14px;font-weight:650}.spatial-count{border:1px solid var(--map-border);width:29px;height:29px;color:var(--map-muted);border-radius:8px;place-items:center;font-size:11px;display:grid}.spatial-search{background:var(--app-surface-muted,#f7f9fc);border:1px solid var(--map-border);color:var(--map-muted);border-radius:8px;align-items:center;gap:6px;margin-bottom:12px;padding-left:9px;display:flex}.spatial-search input{background:0 0;border:0;width:100%;padding:9px 6px}.spatial-device-list{gap:6px;display:grid}.spatial-device{border:1px solid var(--map-border);background:var(--app-surface,#fff);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:9px;padding:11px 9px;transition:border-color .15s,background .15s;display:flex}.spatial-device:hover{background:var(--app-surface-muted,#f7f9fc);border-color:#aebbd0}.spatial-device.selected{box-shadow:inset 2px 0 0 var(--map-red);background:#c0050a05;border-color:#c0050a66}.spatial-device-name{flex:1;gap:4px;min-width:0;display:grid}.spatial-device-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.spatial-device-name small{color:var(--map-muted);font-size:9px}.spatial-device-value{text-align:right;gap:4px;min-width:0;display:grid}.spatial-device-value b{white-space:nowrap;letter-spacing:-.03em;font-size:13px;font-weight:650}.spatial-device-value small{color:var(--map-muted);font-size:9px}.spatial-device-icon{color:#8191aa;background:#eff2f8;border-radius:7px;flex:none;place-items:center;width:28px;height:32px;display:grid}.spatial-device-icon.heating{color:var(--map-red);background:#c0050a0b}.spatial-inventory-note{color:var(--map-muted);margin:13px 2px;font-size:9px;line-height:1.6}.spatial-inspector{border-bottom:1px solid var(--map-border);gap:12px;margin-bottom:19px;padding-bottom:18px;display:grid}.spatial-inspector-title{justify-content:space-between;align-items:center;gap:9px;display:flex}.spatial-inspector-title h3{letter-spacing:-.035em;margin:4px 0 0;font-size:16px;font-weight:650}.spatial-inspector-title>button{color:var(--map-muted);border:0;padding:6px}.spatial-product-preview{background:radial-gradient(at 50% 35%,#2f4361 0%,#172438 55%,#101a2b 100%);border:1px solid #28394f;border-radius:12px;height:185px;position:relative;overflow:hidden}.spatial-product-preview canvas{touch-action:none;cursor:grab;position:absolute;inset:0}.spatial-product-preview>span{z-index:1;letter-spacing:.15em;color:#a0b3cc;pointer-events:none;font-size:8px;position:absolute;top:12px;left:12px}.spatial-product-preview>small{color:#8199b9;pointer-events:none;font-size:8px;position:absolute;bottom:10px;right:12px}.spatial-reading{justify-content:space-between;align-items:center;gap:9px;display:flex}.spatial-reading>div{gap:3px;display:grid}.spatial-reading small{letter-spacing:.1em;color:var(--map-muted);font-size:8px}.spatial-reading strong{letter-spacing:-.055em;font-size:29px;font-weight:600}.spatial-state{color:#62758e;background:#f0f3f8;border-radius:6px;align-items:center;gap:4px;max-width:118px;padding:5px 6px;font-size:9px;display:inline-flex}.spatial-state.heating{color:var(--map-red);background:#c0050a0b}.spatial-state.stale{color:#8d98a9;background:#f3f5f8}.spatial-estimate{color:var(--map-muted);align-items:center;gap:5px;margin:0;font-size:9px;display:flex}.spatial-inspector-actions{gap:7px;display:flex}.spatial-inspector-actions button{flex:1}.spatial-detail{border-top:1px solid var(--map-border);padding-top:9px}.spatial-detail summary{cursor:pointer;padding:3px 0 6px;font-size:11px;font-weight:550}.spatial-detail summary span{float:right;color:var(--map-muted);font-size:10px}.spatial-inspector dl div{color:var(--map-muted);justify-content:space-between;gap:10px;padding:6px 0;font-size:11px;display:flex}.spatial-inspector dl dd{color:var(--app-text,#172237);font-variant-numeric:tabular-nums}.spatial-inspector label{color:var(--map-muted);gap:5px;font-size:10px;display:grid}.spatial-coordinates{grid-template-columns:1fr 1fr;gap:9px;margin:10px 0;display:grid}.spatial-inspector .spatial-remove{color:var(--map-red);background:0 0;border:0;padding:5px 0;font-size:10px}.spatial-empty{color:var(--map-muted);font-size:12px;line-height:1.7}.spatial-error{color:#982f32;background:#fff0ef;padding:12px 22px;font-size:12px}.spatial-notice{color:#5c6d84;background:#f2f5f9;justify-content:space-between;align-items:center;padding:10px 22px;font-size:11px;display:flex}.spatial-notice button{color:inherit;background:0 0;border:0}.spatial-loading{color:#a6b9d5;z-index:10;background:#101a2bf2;justify-content:center;align-items:center;gap:13px;font-size:13px;display:flex;position:absolute;inset:0}@media (max-width:1150px){.spatial-stats{display:none}.spatial-workspace{grid-template-columns:minmax(0,1fr) 280px}.spatial-toolbar{padding:15px}.spatial-stage-footer>span:last-child{display:none}}@media (max-width:900px){.spatial-map{flex-shrink:0;height:auto;min-height:0;overflow:visible}.spatial-workspace{flex-direction:column;min-height:0;display:flex}.spatial-stage{flex:none;height:480px;min-height:480px;overflow:hidden}.spatial-sidebar{border-left:0;border-top:1px solid var(--map-border);min-height:0;max-height:none;overflow:visible}.spatial-device-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.spatial-toolbar{gap:12px}.spatial-pin{width:94px;padding:6px 8px}.spatial-pin span{font-size:16px}.spatial-pin strong{font-size:9px}.spatial-pin small{display:none}.spatial-floor-tags{left:9px;right:43px}.spatial-floor-tags span{gap:5px;font-size:8px}.spatial-stage-footer>span{display:none}.spatial-inspector{max-width:460px;margin-left:auto;margin-right:auto}.spatial-product-preview{height:220px}.spatial-stage-footer{justify-content:center}}@media (prefers-reduced-motion:reduce){.spatial-map *{transition:none!important}}.spatial-modal-backdrop{z-index:45;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050d1bb3;justify-content:center;align-items:center;padding:22px;display:flex;position:fixed;inset:0}.spatial-modal{border:1px solid var(--map-border);background:var(--app-surface);width:min(720px,100%);max-height:90vh;color:var(--app-text);border-radius:16px;padding:24px;overflow:auto;box-shadow:0 24px 70px #0005}.spatial-modal h2{margin-bottom:7px;font-size:22px;font-weight:650}.spatial-modal h3{margin:20px 0 10px;font-size:15px;font-weight:600}.spatial-modal p,.spatial-modal>small{color:var(--map-muted);margin:6px 0 14px;font-size:12px;line-height:1.6;display:block}.spatial-modal label{gap:6px;margin:12px 0;font-size:12px;display:grid}.spatial-modal input,.spatial-modal select{width:100%}.spatial-modal input[type=color]{height:36px;padding:3px}.spatial-modal input[type=checkbox]{width:auto}.spatial-modal button{border:1px solid var(--map-border);background:var(--app-surface);color:inherit;border-radius:7px;padding:7px 11px;font-size:12px}.spatial-modal .spatial-primary{background:var(--map-red);color:#fff}.spatial-modal footer{background:var(--app-surface);border-top:1px solid var(--map-border);justify-content:flex-end;gap:8px;margin-top:20px;padding:18px 0 6px;display:flex;position:sticky;bottom:-24px}.spatial-editor-grid{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.spatial-signal-bindings{gap:9px;margin-top:13px;display:grid}.spatial-signal-bindings>div{background:var(--app-surface-muted);border-radius:8px;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;padding:10px;display:grid}.spatial-signal-bindings span{gap:3px;font-size:11px;display:grid}.spatial-signal-bindings small{color:var(--map-muted)}.spatial-floor-row{grid-template-columns:2fr 1fr 1fr auto;align-items:center;gap:10px;display:grid}.spatial-region-row{border-bottom:1px solid var(--map-border);grid-template-columns:2fr 1fr auto;align-items:center;gap:10px;padding:5px 0 12px;display:grid}.spatial-region-row details{grid-column:1/-1;font-size:12px}.spatial-point-row{grid-template-columns:22px 1fr 1fr auto;align-items:center;gap:8px;display:grid}.spatial-point-row label{align-items:center;display:flex}.spatial-modal .spatial-check{align-items:center;gap:7px;display:flex}.spatial-floor-tags{gap:12px;overflow:hidden}.spatial-floor-tags span{white-space:nowrap}.spatial-inspector-actions{flex-wrap:wrap}@media (max-width:600px){.spatial-modal-backdrop{padding:10px}.spatial-modal{max-height:94vh;padding:17px}.spatial-floor-row{grid-template-columns:1fr 1fr auto}.spatial-floor-row>label:first-child{grid-column:1/-1}.spatial-signal-bindings>div{grid-template-columns:1fr auto}.spatial-signal-bindings input{grid-column:1}.spatial-signal-bindings button{grid-area:1/2/3}.spatial-editor-grid{gap:4px 10px}}.spatial-pin{min-height:77px}.spatial-pin:before{background:var(--pin-accent,#809cc0)}.spatial-pin span{white-space:nowrap;text-overflow:ellipsis;line-height:24px;overflow:hidden}.spatial-pin small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:900px){.spatial-pin{min-height:46px}.spatial-pin span{line-height:20px}}.spatial-stage{background:var(--app-bg)}.spatial-pin,.spatial-pin.stale{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text);box-shadow:0 3px 12px #0f172a24}.spatial-pin strong,.spatial-pin.stale strong{color:var(--app-text)}.spatial-pin small,.spatial-pin.stale span{color:var(--app-text-muted)}.spatial-room-label{color:var(--app-text-muted);background:color-mix(in srgb,var(--app-surface)80%,transparent)}.spatial-floor-tags span{color:var(--app-text-muted)}.spatial-floor-tags b,.spatial-stage-tools button,.spatial-navigation button{background:var(--app-surface);color:var(--app-text-muted);border-color:var(--app-border)}.spatial-stage-tools button.active{color:var(--app-accent);border-color:var(--app-accent)}.spatial-navigation{border-color:var(--app-border)}.spatial-navigation button:hover{background:var(--app-surface-hover)}.spatial-stage-footer{color:var(--app-text-soft);background:linear-gradient(transparent,var(--app-bg))}.spatial-product-preview{background:radial-gradient(ellipse at 50% 35%,var(--app-surface-hover),var(--app-bg));border-color:var(--app-border)}.spatial-product-preview>span,.spatial-product-preview>small{color:var(--app-text-muted)}.spatial-sonos-details{border-bottom:1px solid var(--app-border);padding:14px 0;font-size:12px}.spatial-sonos-details h3{color:var(--app-text);font-weight:600}.spatial-sonos-details p,.spatial-sonos-details small{color:var(--app-text-muted);margin:6px 0;font-size:11px}.spatial-sonos-details h4{margin:12px 0 6px;font-size:11px}.spatial-sonos-details div{justify-content:space-between;gap:8px;padding:4px 0;display:flex}.spatial-pin small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.spatial-pin{border-radius:9px;gap:1px;width:112px;min-height:62px;padding:6px 8px}.spatial-pin span{font-size:17px}.spatial-pin small{font-size:8px}.spatial-speaker-card{min-height:66px;padding-left:30px}.spatial-speaker-card:after{content:"♫";color:var(--app-accent);font-size:18px;position:absolute;top:25px;left:7px}.spatial-speaker-card strong{grid-column:1;font-size:9px}.spatial-speaker-card span{letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.3;overflow:hidden}.spatial-speaker-card small{font-size:10px;font-weight:600}.spatial-stage-tools{z-index:7;gap:5px;display:flex}.spatial-room-label{pointer-events:auto}.spatial-room-label.heating-drop-target{background:var(--app-accent);color:#fff;box-shadow:0 0 0 6px var(--app-accent-soft)}.spatial-heating-palette{background:var(--app-surface);border:1px solid var(--app-border);z-index:7;border-radius:12px;width:230px;padding:10px;font-size:11px;position:absolute;bottom:42px;left:14px;box-shadow:0 3px 18px #0002}.heating-palette-heading,.heating-palette-heading span{justify-content:space-between;align-items:center;gap:5px;display:flex}.heating-palette-heading button{background:0 0;border:0;padding:4px}.heating-preset-tiles{gap:5px;margin:8px 0;display:flex}.heating-preset-tiles button{background:var(--app-surface-muted);border:1px solid var(--app-border);cursor:grab;border-radius:8px;flex:1;justify-items:center;gap:3px;padding:8px 4px;display:grid}.heating-preset-tiles button.active{border-color:var(--app-accent);color:var(--app-accent)}.spatial-heating-palette small{color:var(--app-text-muted);font-size:9px}.spatial-heating-palette select{width:100%;margin:6px 0}.heating-preset-settings label{justify-content:space-between;align-items:center;gap:10px;margin:7px 0;display:flex}.heating-preset-settings input{width:75px}.heating-targets{margin:14px 0;padding:0;list-style:none}.heating-targets li{border-bottom:1px solid var(--app-border);justify-content:space-between;gap:12px;padding:8px 0;font-size:12px;display:flex}.heating-targets b{color:var(--app-text-muted);font-size:11px}@media (max-width:700px){.spatial-heating-palette{width:195px;padding:8px;bottom:35px;left:8px}.spatial-pin{width:96px;min-height:55px}.spatial-speaker-card{min-height:58px}}.heating-preset-tiles button{touch-action:none;-webkit-user-select:none;user-select:none}.heating-drag-ghost{z-index:100;pointer-events:none;background:var(--app-accent);color:#fff;border-radius:9px;padding:9px 12px;font-size:12px;position:fixed;box-shadow:0 4px 18px #0003}.spatial-stage-tools{flex-direction:column;top:18px;left:14px;right:auto}.spatial-speaker-card{width:134px;min-height:70px;padding-left:46px}.spatial-speaker-card strong{font-size:9px}.spatial-song-art{object-fit:cover;border-radius:5px;width:32px;height:32px;position:absolute;top:22px;left:7px}.spatial-speaker-card.has-art:after{display:none}.spatial-inspector-art{object-fit:cover;float:left;border-radius:8px;width:64px;height:64px;margin:0 10px 8px 0}.spatial-sonos-details h4{clear:both}.spatial-floor-tags span{pointer-events:auto}.heating-domain-label{background:var(--app-accent);color:#fff;z-index:8;pointer-events:none;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:600;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #0003}.spatial-pin.heating-drop-target{border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-soft)}.spatial-pin{background:color-mix(in srgb,var(--app-surface)94%,transparent);border-color:color-mix(in srgb,var(--app-border)75%,transparent);border-radius:8px;grid-template-rows:11px 16px;gap:1px;width:100px;height:38px;min-height:38px;padding:5px 8px;box-shadow:0 2px 7px #0f172a17}.spatial-pin strong{color:var(--app-text-muted);padding-right:5px;font-size:8px;font-weight:500;line-height:11px}.spatial-pin span{letter-spacing:-.025em;font-size:14px;font-weight:650;line-height:16px}.spatial-pin small{display:none}.spatial-pin:before{background:#78978c;border-radius:50%;width:4px;height:4px;inset:7px 6px auto auto}.spatial-pin.heating:before,.spatial-pin.selected:before{background:var(--app-accent)}.spatial-pin.stale:not(.spatial-speaker-card){background:color-mix(in srgb,var(--app-surface)84%,transparent);width:90px;height:34px;min-height:34px;box-shadow:none;grid-template-rows:10px 12px}.spatial-pin.stale:not(.spatial-speaker-card) strong{color:var(--app-text-soft);font-size:8px}.spatial-pin.stale:not(.spatial-speaker-card) span{display:none}.spatial-pin.stale:not(.spatial-speaker-card) small{color:var(--app-text-soft);font-size:9px;line-height:12px;display:block}.spatial-pin.stale:before{background:var(--app-text-soft);opacity:.5}.spatial-pin.spatial-speaker-card{grid-template-rows:11px 15px;gap:2px;width:122px;height:42px;min-height:42px;padding:6px 7px 6px 41px}.spatial-speaker-card strong{color:var(--app-text-muted);font-size:8px;line-height:11px}.spatial-speaker-card span{letter-spacing:0;font-size:10px;font-weight:600;line-height:15px}.spatial-speaker-card small{display:none}.spatial-speaker-card .spatial-song-art{border-radius:5px;width:30px;height:30px;top:5px;left:5px}.spatial-speaker-card:after{font-size:19px;top:10px;left:11px}.spatial-pin:hover,.spatial-pin:focus-visible{z-index:6;border-color:var(--app-accent);box-shadow:0 3px 12px #0f172a29}.spatial-pin.selected{border-color:var(--app-accent);box-shadow:0 0 0 1px var(--app-accent)}.spatial-leaders line{opacity:.32;stroke-width:.8px}.spatial-room-label{letter-spacing:.08em;color:var(--app-text-soft);background:0 0;padding:3px;font-size:8px}.spatial-heating-palette{width:205px;padding:8px}.heating-preset-tiles{gap:4px;margin:6px 0}.heating-preset-tiles button{gap:2px;padding:5px 3px;font-size:10px}.heating-preset-tiles svg{width:14px;height:14px}.map-workspace-open{gap:4px;margin-inline:-12px}.map-workspace-open>div:first-child{padding-inline:10px}.map-workspace-open>div:first-child button{color:var(--app-text-muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:5px 10px;font-size:11px}.map-workspace-open>div:first-child button[aria-pressed=true]{color:var(--app-accent);border-bottom-color:var(--app-accent)}.spatial-map{box-shadow:none;background:0 0;border:0;border-radius:0;min-height:0;overflow:visible}.spatial-toolbar{border:0;gap:8px;padding:6px 10px 10px}.spatial-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.spatial-stats{gap:10px;font-size:9px}.spatial-actions button{background:0 0;border-color:#0000;padding:6px 8px}.spatial-actions button:hover,.spatial-actions button[aria-expanded=true]{background:var(--app-surface);border-color:var(--app-border)}.spatial-floor-select{background:0 0;border-color:#0000}.spatial-workspace{min-height:520px;display:block;position:relative}.spatial-stage{border:0;border-radius:0;height:100%;min-height:max(520px,100dvh - 172px)}.spatial-sidebar{background:var(--app-surface);border:1px solid var(--app-border);z-index:9;border-radius:12px;width:290px;min-height:0;max-height:none;position:absolute;top:12px;bottom:45px;right:8px;box-shadow:0 8px 30px #0002}.spatial-map:not(.inspector-open) .spatial-sidebar{display:none}@media (max-width:700px){.map-workspace-open{margin-inline:-8px}.spatial-toolbar{padding-inline:6px}.spatial-actions{gap:2px}.spatial-actions button{padding:5px;font-size:10px}.spatial-stage{height:calc(100dvh - 190px);min-height:480px}.spatial-sidebar{width:min(290px,100% - 60px);top:5px;bottom:35px;right:5px}.spatial-stats{display:none}}.spatial-actions{gap:7px}.spatial-actions>button,.spatial-actions>.spatial-floor-select,.spatial-actions .map-add-trigger{border:1px solid var(--app-border);background:var(--app-surface);border-radius:10px;height:34px;font-size:11px;box-shadow:0 1px 2px #00000005}.spatial-actions>button{padding:0 11px}.spatial-actions>button[aria-expanded=true]{background:var(--app-accent-soft);border-color:color-mix(in srgb,var(--app-accent)30%,var(--app-border));color:var(--app-accent)}.spatial-actions>button>span{background:var(--app-surface-hover);min-width:19px;height:18px;color:var(--app-text-soft);font-variant-numeric:tabular-nums;border-radius:5px;place-items:center;padding:0 4px;font-size:9px;display:inline-grid}.spatial-floor-select{gap:3px;padding-left:10px}.spatial-floor-select select{cursor:pointer;padding:6px}.map-add-menu{position:relative}.spatial-actions .map-add-trigger{background:var(--app-accent);border-color:var(--app-accent);color:#fff;box-shadow:0 2px 5px var(--app-accent-soft);gap:7px;padding:0 12px;font-weight:600}.spatial-actions .map-add-trigger:hover,.spatial-actions .map-add-trigger[aria-expanded=true]{background:var(--app-accent-strong);border-color:var(--app-accent-strong);color:#fff}.map-add-popover{background:var(--app-surface);border:1px solid var(--app-border);z-index:40;border-radius:14px;width:274px;padding:7px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 35px #0002}.map-add-caption{letter-spacing:.11em;color:var(--app-text-soft);padding:7px 9px 9px;font-size:8px;font-weight:650;display:block}.spatial-actions .map-add-popover button{width:100%;height:auto;box-shadow:none;text-align:left;color:var(--app-text);background:0 0;border:0;border-radius:9px;justify-content:flex-start;align-items:center;gap:10px;padding:9px 8px;display:flex}.spatial-actions .map-add-popover button:hover,.spatial-actions .map-add-popover button:focus-visible{background:var(--app-surface-hover)}.map-add-popover button>i{background:var(--app-surface-hover);width:32px;height:32px;color:var(--app-text-muted);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.map-add-popover button>i.map-add-heat{color:var(--app-accent);background:var(--app-accent-soft)}.map-add-popover button>i.map-add-music{color:#6488ba;background:#6488ba18}.map-add-popover button>span{flex:1;gap:3px;display:grid}.map-add-popover strong{font-size:11px;font-weight:600}.map-add-popover small{color:var(--app-text-soft);font-size:9px}.map-add-popover button>svg{color:var(--app-text-soft)}.map-add-divider{background:var(--app-border);height:1px;margin:5px 9px}.map-add-popover p{color:var(--app-text-soft);margin:0;padding:7px 9px;font-size:10px}.spatial-stage-tools button,.spatial-navigation{border-radius:10px;box-shadow:0 2px 8px #0000000a}.spatial-stage-tools button{background:var(--app-surface);border-color:var(--app-border);width:33px;height:33px}.spatial-stage-tools button.active{background:var(--app-accent-soft);color:var(--app-accent);border-color:#0000}.spatial-stage-tools button:hover{border-color:var(--app-accent)}@media (max-width:700px){.spatial-actions{gap:5px}.spatial-actions>button{padding:0 8px}.map-add-popover{width:min(274px,100vw - 32px)}}.heating-schedule-trigger{text-align:left;align-items:center;gap:6px;width:100%;margin-top:8px;display:flex;border-top:1px solid var(--app-border)!important;color:var(--app-text)!important;background:0 0!important;border-radius:0!important;padding:8px 5px!important;font-size:10px!important}.heating-schedule-trigger small{color:var(--app-text-muted);margin-left:auto;font-size:8px}.heating-schedule-trigger{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;gap:8px!important;padding:9px 6px!important}.heating-schedule-trigger:active{cursor:grabbing}.heating-schedule-trigger>span{flex:1;gap:3px;display:grid}.heating-schedule-trigger>span>strong{font-size:10px;font-weight:600}.heating-schedule-trigger>span>small{margin:0;font-size:8px;display:block}.heating-schedule-trigger>.heating-weekly-grip{color:var(--app-text-soft)}.heating-schedule-trigger.active{color:var(--app-accent)!important}.native-heating-scope{background:var(--app-accent-soft);color:var(--app-text);border-radius:8px;align-items:center;gap:8px;margin:12px 0;padding:10px 12px;font-size:12px;display:flex}.native-heating-scope svg{color:var(--app-accent)}.native-heating-scope>span{color:var(--app-text-muted);margin-left:auto;font-size:10px}.native-heating-backdrop{z-index:100;--map-border:var(--app-border);--map-muted:var(--app-text-muted);--map-red:var(--app-accent)}.native-heating-modal{width:min(880px,100vw - 24px);max-width:880px;max-height:calc(100dvh - 32px);color:var(--app-text);overflow:auto;padding:24px!important}.native-heating-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.native-heating-header small{letter-spacing:.12em;color:var(--app-accent);font-size:9px}.native-heating-header h2{margin:5px 0 0;font-size:23px}.native-heating-header button{color:var(--app-text-muted);background:0 0;border:0;padding:8px}.native-heating-note{color:var(--app-text-muted);font-size:12px;line-height:1.6}.native-heating-columns{grid-template-columns:minmax(0,1.55fr) minmax(210px,1fr);gap:28px;margin:22px 0;display:grid}.native-week-chart{gap:6px;display:grid}.native-week-chart button{color:var(--app-text-muted);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:3px 0;font-size:11px;display:flex}.native-week-chart button[aria-pressed=true]{color:var(--app-accent);font-weight:700}.native-week-chart span{width:27px}.native-week-chart i{background:var(--app-surface-hover);border-radius:4px;flex:1;height:20px;display:block;position:relative;overflow:hidden}.native-week-chart b{border-right:1px solid var(--app-surface);position:absolute;top:0;bottom:0}.native-time-scale{color:var(--app-text-muted);justify-content:space-between;margin:5px 0 15px 39px;font-size:9px;display:flex}.native-day-heading{justify-content:space-between;align-items:center;display:flex}.native-heating-modal h3{margin:10px 0;font-size:13px}.native-heating-modal button{cursor:pointer}.native-heating-modal button:disabled{opacity:.45;cursor:default}.native-day-heading button,.native-editor-tools button,.native-device-current button{border:1px solid var(--app-border);color:var(--app-text);background:0 0;border-radius:7px;align-items:center;gap:5px;padding:6px 8px;font-size:10px;display:flex}.native-period{grid-template-columns:1fr 1fr 1fr 22px;align-items:end;gap:8px;margin:8px 0;display:grid}.native-period label,.native-heating-options>label{color:var(--app-text-muted);gap:5px;font-size:10px;display:grid}.native-heating-modal .native-period label,.native-heating-modal .native-heater-row label{margin:0}.native-heating-modal .native-heater-row{padding:9px 0}.native-heating-modal .native-periods{gap:5px;display:grid}.native-heating-modal .native-period{margin:4px 0}.native-heating-modal select,.native-heating-modal input:not([type=checkbox]){border:1px solid var(--app-border);background:var(--app-surface);width:100%;min-width:0;color:var(--app-text);border-radius:7px;padding:7px;font-size:12px}.native-period>button{color:var(--app-text-muted);background:0 0;border:0;align-self:center;margin-top:16px;padding:2px}.native-editor-tools{gap:8px;margin:12px 0;display:flex}.native-week-editor>small,.native-heating-modal>small{color:var(--app-text-muted);font-size:10px;line-height:1.5}.native-heating-devices{border-left:1px solid var(--app-border);padding-left:22px}.native-heating-devices p{color:var(--app-text-muted);font-size:11px;line-height:1.5}.native-heater-row{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.native-heater-row label{align-items:center;gap:8px;font-size:11px;display:flex}.native-heater-row button{color:var(--app-text-muted);background:0 0;border:0;padding:5px}.native-heating-modal input[type=checkbox]{appearance:none;border:1.5px solid var(--app-text-soft);background:var(--app-surface-muted);color:#fff;cursor:pointer;border-radius:4px;flex:0 0 16px;align-self:center;place-items:center;width:16px;min-width:16px;height:16px;margin:0;padding:0;transition:background-color .12s,border-color .12s,box-shadow .12s;display:inline-grid}.native-heating-modal input[type=checkbox]:after{content:"";opacity:0;border:2px solid;border-width:0 2px 2px 0;width:5px;height:9px;transform:translateY(-1px)rotate(45deg)}.native-heating-modal input[type=checkbox]:checked{background:var(--app-accent);border-color:var(--app-accent)}.native-heating-modal input[type=checkbox]:checked:after{opacity:1}.native-heating-modal input[type=checkbox]:hover:not(:disabled){border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-soft)}.native-heating-modal input[type=checkbox]:focus-visible{outline:2px solid var(--app-accent);outline-offset:3px}.native-heating-modal input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.native-heating-modal .native-heater-row label{cursor:pointer;flex:1;gap:9px;min-width:0;min-height:30px;line-height:1.5}.native-heating-modal .native-heating-options>label:last-child{cursor:pointer;gap:9px;min-height:32px;line-height:1.5}.native-device-current{background:var(--app-surface-hover);border-radius:9px;gap:7px;margin-top:12px;padding:12px;font-size:11px;display:grid}.native-device-current small,.native-device-current details small,.native-heating-modal .heating-targets small{color:var(--app-text-muted);font-size:10px;line-height:1.6;display:block}.native-heating-options{align-items:center;gap:24px;margin:15px 0;display:flex}.native-heating-options>label:last-child{align-items:center;display:flex}.native-heating-modal footer{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.native-heating-modal footer button{align-items:center;gap:5px;display:flex}@media (max-width:650px){.native-heating-modal{padding:16px!important}.native-heating-columns{grid-template-columns:1fr;gap:14px}.native-heating-devices{border-left:0;border-top:1px solid var(--app-border);padding:10px 0 0}.native-heating-options{flex-direction:column;align-items:flex-start;gap:12px}}.native-visual-editor{position:relative}.native-time-scale-top{margin:0 0 8px 39px}.native-editable-week{gap:9px;display:grid}.native-week-row{grid-template-columns:29px minmax(0,1fr);align-items:center;gap:10px;display:grid;position:relative}.native-week-row.active{z-index:2}.native-heating-modal .native-day-label{color:var(--app-text-muted);text-align:left;background:0 0;border:0;padding:5px 0;font-size:10px}.native-week-row.active .native-day-label{color:var(--app-accent);font-weight:700}.native-day-track{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),var(--app-border)calc(25% - 1px),var(--app-border)25%),var(--app-surface-hover);border-radius:7px;height:42px;position:relative}.native-period-block{height:100%;padding:0 1px;position:absolute;top:0}.native-heating-modal .native-period-body{width:100%;height:100%;color:var(--app-text);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:3px 1px;display:flex;overflow:hidden}.native-period-body strong{font-variant-numeric:tabular-nums;pointer-events:none;font-size:12px}.native-period-body small{white-space:nowrap;opacity:.8;pointer-events:none;font-size:8px}.native-period-block.selected .native-period-body{border-color:var(--app-accent);box-shadow:0 0 0 2px var(--app-surface),0 0 0 3px var(--app-accent)}.native-period-block.dragging .native-period-body{cursor:grabbing}.native-heating-modal .native-period-handle{border:1px solid var(--app-border);background:var(--app-surface);width:12px;height:28px;color:var(--app-accent);cursor:ew-resize;touch-action:none;z-index:3;border-radius:4px;place-items:center;padding:0;display:grid;position:absolute;top:7px}.native-period-handle.start{left:-5px}.native-period-handle.end{right:-5px}.native-period-handle i{background:var(--app-accent);border-radius:2px;width:2px;height:12px}.native-block-tools{background:var(--app-surface-hover);border:1px solid var(--app-border);border-radius:9px;grid-column:2;margin:1px 0 3px;padding:11px 12px;box-shadow:0 4px 12px #00000008}.native-block-caption{justify-content:space-between;align-items:center;gap:7px;font-size:11px;display:flex}.native-heating-modal .native-block-caption button{color:var(--app-text-muted);background:0 0;border:0;padding:2px}.native-temperature-control{align-items:center;gap:8px;margin:10px 0;display:flex}.native-temperature-control output{text-align:center;font-variant-numeric:tabular-nums;min-width:50px;font-size:23px;font-weight:650}.native-temperature-control output small{margin-left:2px;font-size:12px;font-weight:400}.native-heating-modal .native-temperature-control button{place-items:center;width:28px;height:28px;padding:0;display:grid}.native-heating-modal .native-temperature-control input[type=range]{min-width:50px;accent-color:var(--app-accent);cursor:pointer;flex:1;margin-left:5px;padding:0}.native-block-actions,.native-visual-tools{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.native-heating-modal .native-block-actions button,.native-heating-modal .native-visual-tools button{border:1px solid var(--app-border);border-radius:6px;align-items:center;gap:4px;padding:5px 7px;font-size:10px;display:flex}.native-heating-modal .native-visual-tools{margin-top:14px}.native-heating-modal .native-drag-help{color:var(--app-text-muted);margin:12px 0 0;font-size:10px;line-height:1.6}@media (max-width:650px){.native-day-track{height:48px}.native-period-body small{display:none}.native-period-body strong{font-size:11px}.native-heating-modal .native-period-handle{width:14px;height:32px;top:8px}.native-period-handle.start{left:-6px}.native-period-handle.end{right:-6px}.native-block-tools{padding:9px}}
