@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#edf3f4;background:#101d23;font-synthesis:none;font-size:16px;--panel:#13232b;--line:#2a3b44;--muted:#97aab3;--mint:#b2eed0;--ink:#13252a}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.4}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid #5cbfad;outline-offset:4px}button{color:inherit}a{color:inherit;text-decoration:none}.app-shell{height:100dvh;min-height:720px;display:grid;grid-template-rows:83px 1fr 35px;overflow:hidden}.topbar{display:flex;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);gap:44px;background:#101d23}.brand{display:flex;align-items:center;gap:12px;font:750 26px/1.1 Manrope,sans-serif;letter-spacing:-1px;min-width:245px}.brand-mark{width:42px;height:46px;display:grid;place-items:center;color:var(--mint);border:1px solid #486353;border-radius:13px 13px 4px;background:#1a332f}.brand-dot{color:var(--mint)}.brand small{display:block;font:500 9px/1.2 DM Sans,sans-serif;letter-spacing:2.1px;margin-top:8px;color:var(--muted)}.breadcrumb{display:flex;align-items:center;gap:15px;font-size:14px;color:var(--muted)}.breadcrumb strong{font-weight:500;color:#e2ecee}.header-right{margin-left:auto;display:flex;align-items:center;gap:23px}.connection{font-size:13px;display:flex;align-items:center;gap:9px;color:#a6b6bc}.connection i,.status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#af986c}.connection.connected i,.status-dot{background:#7ecb9e;box-shadow:0 0 0 4px #7ecb9e0d}.icon-button{padding:8px;display:grid;place-items:center;background:none;border:0;color:#afc0c7;border-radius:8px}.icon-button:hover{background:#273b44;color:#fff}.workspace{display:grid;grid-template-columns:288px minmax(0,1fr);min-height:0}.sidebar{background:var(--panel);padding:27px 20px 14px;overflow:auto;display:flex;flex-direction:column;gap:25px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.9px;color:var(--muted)}.floor-heading{padding:0 6px}.floor-heading>div{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.floor-heading h1{font:650 29px/1.2 Manrope,sans-serif;letter-spacing:-1px;margin:0}.floor-badge{border:1px solid #3f525c;padding:5px 7px;font-size:11px;border-radius:5px;color:#b5c7ce}.floor-heading p{font-size:13px;color:var(--muted);margin:10px 0 0}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:0 6px;margin-bottom:11px;color:#90a5af}.section-heading h2{font-size:14px;font-weight:600;color:#dce6e9;margin:0}.section-heading>span{font-size:9px;letter-spacing:1.5px}nav{display:grid;gap:4px}.area-button{width:100%;display:flex;align-items:center;text-align:left;gap:12px;padding:12px 10px;border:1px solid transparent;background:transparent;border-radius:9px}.area-button:hover{background:#1a3039}.area-button.selected{background:#243d41;border-color:#3a5a56}.area-icon{display:grid;place-items:center;width:34px;height:36px;color:#a3b5bd}.selected .area-icon{color:var(--mint)}.area-button strong,.layer-control strong{display:block;font-size:14px;font-weight:500}.area-button small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.area-number{margin-left:auto;color:#6f8b96;font-size:11px}.selected .area-number,.selected strong{color:#c4f3df}.layers-section{border-top:1px solid var(--line);padding-top:22px}.layer-control{border:0;background:transparent;display:flex;align-items:center;width:100%;text-align:left;gap:12px;padding:11px 6px;color:#9fb4bf}.layer-control strong{color:#dce6e9}.layer-control small{font-size:10px;display:block;color:#8fa3ad;margin-top:4px}.switch{margin-left:auto;min-width:30px;height:18px;background:#3b515b;border-radius:20px;padding:3px;transition:background .2s}.switch i{display:block;width:12px;height:12px;border-radius:50%;background:#b7c6cb;transition:transform .2s}.layer-control[aria-checked=true] .switch{background:#91dcb7}.layer-control[aria-checked=true] .switch i{background:#183b2b;transform:translate(12px)}.tour-card{position:relative;margin:0 4px;background:linear-gradient(140deg,#23403d,#1d3038);border:1px solid #36534e;border-radius:12px;padding:19px 15px 14px}.tour-card-icon{color:#b3dbbd;margin-bottom:12px}.tour-card h2{font:600 16px Manrope,sans-serif;letter-spacing:-.3px;margin:0}.tour-card p{font-size:12px;line-height:1.65;color:#a7c0be;margin:8px 0 18px}.tour-button{width:100%;display:flex;align-items:center;gap:9px;border:0;border-radius:6px;padding:12px;background:var(--mint);color:#1c3b30;font-size:13px;font-weight:650;transition:background .2s}.tour-button:hover{background:#cefbe4}.duration{font-weight:400;margin-left:auto;font-size:11px;opacity:.65}.sidebar-footer{margin-top:auto;padding:5px 5px 0;font-size:9px;letter-spacing:1.2px;display:flex;align-items:center;gap:7px;color:#7f96a2}.sidebar-footer>span:last-child{margin-left:auto;font-size:11px;letter-spacing:0}.model-dot{width:4px;height:4px;border-radius:50%;background:#94bdb3}.stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#cdd8da}.canvas-host{position:absolute;inset:0}.canvas-host canvas{width:100%;height:100%;display:block;touch-action:none}.stage-top{position:absolute;top:22px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;gap:12px}.stage-top>*{pointer-events:auto}.view-segment{display:flex;gap:3px;background:#edf2f2e6;padding:4px;border:1px solid #fff8;border-radius:8px;box-shadow:0 4px 12px #263b4310}.view-segment button{padding:9px 14px;display:flex;align-items:center;gap:8px;border:0;border-radius:5px;background:none;color:#64777c;font-size:12px;font-weight:600}.view-segment button.active{background:#253b43;color:#f0f5f4;box-shadow:0 2px 4px #0001}.stage-actions{display:flex;gap:7px}.stage-icon{width:38px;height:38px;display:grid;place-items:center;background:#edf2f2e6;color:#3c545d;border:1px solid #fff6;border-radius:7px}.stage-icon:hover{background:#fff}.view-label{position:absolute;left:29px;top:102px;pointer-events:none;color:#334d55}.view-label .eyebrow{color:#688087;font-size:9px}.view-label h2{font:650 24px Manrope,sans-serif;letter-spacing:-.8px;margin:6px 0 8px}.view-label>span:last-child{font-size:11px;display:flex;align-items:center;gap:8px;color:#627a82}.view-label i,.app-footer i{width:3px;height:3px;border-radius:50%;background:currentColor;display:inline-block}.xray .view-label,.xray .view-label .eyebrow,.xray .view-label>span:last-child{color:#a9d9e1}.mini-map{position:absolute;bottom:66px;left:26px;width:152px;padding:13px 14px 11px;background:#edf2f0eb;border:1px solid #ffffffad;border-radius:10px;box-shadow:0 8px 24px #223c4212;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-title{display:flex;align-items:center;justify-content:space-between;color:#627e85;font-size:8px;letter-spacing:1.1px;margin-bottom:8px}.map-title>span:last-child{letter-spacing:0;font-size:10px}.mini-map svg{display:block;width:100%;height:116px;overflow:visible}.map-outline{fill:#d2dfdd;stroke:#849fa5;stroke-width:.5}.map-partition{fill:none;stroke:#92a9ad;stroke-width:.4}.map-stairs{fill:none;stroke:#a1b4b8;stroke-width:.3}.map-point{fill:#668f96;cursor:pointer}.map-halo{fill:transparent}.map-point:hover .map-halo{fill:#71b49b55}.map-point.active{fill:#1e876a}.map-point.active .map-halo{fill:#72b79d66}.map-caption{display:block;text-align:center;color:#778d92;font-size:9px;margin-top:5px}.stage-bottom{position:absolute;bottom:0;left:0;right:0;padding:14px 25px;display:flex;align-items:center;justify-content:space-between;background:#e6edeee6;border-top:1px solid #bccbd280;color:#5e7982;gap:12px;font-size:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stage-bottom>span{display:flex;align-items:center;gap:7px}.hint-divider{opacity:.5;margin:0 4px}.desktop-hint{display:flex;align-items:center}.model-info{white-space:nowrap}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-top:1px solid #263a43;font-size:10px;color:#8199a5;gap:15px}.app-footer>span{display:flex;align-items:center;gap:8px}.app-footer>span:last-child{gap:13px}.loading-overlay{position:absolute;inset:0;background:#d7e1e4ee;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#314e59;padding:35px;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.loading-mark{width:72px;height:72px;display:grid;place-items:center;background:#c4d7d2;border:1px solid #aac1bb;border-radius:20px;color:#3c7460;margin-bottom:18px}.loading-overlay h2{font:600 25px Manrope,sans-serif;margin:0 0 12px}.loading-overlay p{max-width:440px;font-size:14px;line-height:1.6}.load-track{height:4px;width:230px;background:#bbccd1;border-radius:5px;overflow:hidden;margin-top:16px}.load-track i{height:100%;display:block;background:#3b9573;transition:width .2s}.retry-button{border:0;background:#284e42;color:#fff;border-radius:7px;padding:12px 18px;display:flex;align-items:center;gap:15px;margin-top:12px;font-size:14px}.tour-player{position:absolute;bottom:68px;left:50%;transform:translate(-35%);display:flex;align-items:center;gap:14px;width:min(430px,calc(100% - 225px));padding:15px;background:#152a32ed;color:#dceeea;border:1px solid #5c7c7d;border-radius:12px;box-shadow:0 10px 30px #12242a25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.player-play,.player-stop{flex-shrink:0;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:#b2eed0;color:#204535}.player-stop{background:transparent;color:#a5bac3;width:25px}.tour-progress{flex:1;min-width:0}.tour-progress>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.tour-progress strong{font-size:12px;font-weight:500}.tour-progress span{font-size:10px;white-space:nowrap;color:#94aeb6}.tour-progress progress{display:block;width:100%;height:3px;margin-top:12px;appearance:none;border:0;border-radius:4px;background:#3e5359;overflow:hidden}.tour-progress progress::-webkit-progress-bar{background:#3e5359}.tour-progress progress::-webkit-progress-value{background:#b2eed0}.tour-progress progress::-moz-progress-bar{background:#b2eed0}.toast{position:absolute;left:50%;top:85px;transform:translate(-50%);background:#18332c;color:#fff;padding:12px 18px;border-radius:8px;font-size:13px}.modal-backdrop{position:fixed;inset:0;background:#08151bc9;display:grid;place-items:center;z-index:20;padding:24px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.help-dialog{background:#1b2e37;max-width:470px;border:1px solid #3f5963;padding:36px;border-radius:18px;box-shadow:0 25px 100px #0005;position:relative}.help-dialog>.icon-button{position:absolute;top:12px;right:12px}.help-dialog h2{font:600 26px Manrope,sans-serif;letter-spacing:-.6px;margin:14px 0}.help-dialog p{font-size:15px;line-height:1.7;color:#b1c3cc}.help-dialog dl{display:grid;grid-template-columns:1fr auto;row-gap:13px;align-items:center;font-size:14px;margin:25px 0}.help-dialog dd{margin:0;padding:4px 9px;border:1px solid #4b6570;border-radius:5px;font-size:12px;color:#c4e9da;text-align:center}.help-dialog .help-note{font-size:12px;border-top:1px solid #36515c;padding-top:16px;color:#95aeb9}.stage:fullscreen{width:100vw;height:100dvh}.stage:fullscreen .tour-player{transform:translate(-50%)}@media(min-height:950px){.sidebar{gap:34px;padding-top:35px}.area-button{padding-top:16px;padding-bottom:16px}.layer-control{padding-top:14px;padding-bottom:14px}.tour-card{padding-top:24px;padding-bottom:18px}}@media(max-width:1050px){.workspace{grid-template-columns:260px minmax(0,1fr)}.sidebar{padding:23px 14px 13px}.brand{min-width:210px}.topbar{padding:0 20px;gap:20px}.desktop-hint{display:none}.mini-map{width:130px;left:18px}.tour-player{left:auto;right:16px;transform:none;width:calc(100% - 178px)}.tour-progress>div{display:block}.tour-progress span{display:block;margin-top:5px}.view-label{left:22px}.model-info{display:none!important}}@media(max-width:700px){.app-shell{height:auto;min-height:100dvh;overflow:visible;grid-template-rows:74px auto 50px}.topbar{padding:0 16px;gap:12px}.brand{font-size:23px;min-width:0;gap:9px}.brand-mark{width:36px;height:40px}.brand small{font-size:8px;letter-spacing:1.2px}.breadcrumb,.connection{display:none}.header-right{gap:8px}.workspace{display:flex;flex-direction:column}.stage{order:0;height:62dvh;min-height:440px}.sidebar{order:1;display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;overflow:visible;padding:25px 18px}.floor-heading{grid-column:1/-1}.floor-heading p{margin-top:8px}.areas-section{grid-row:2/4}.layers-section{border:0;padding:0}.section-heading>span{display:none}.area-button{padding:12px 3px;gap:3px}.area-button strong{font-size:13px}.area-button small{font-size:10px}.area-number{display:none}.layer-control{gap:7px;padding-left:0;padding-right:0}.layer-control>svg{display:none}.layer-control strong{font-size:13px}.layer-control small{font-size:9px}.tour-card{padding:13px 10px;margin:0}.tour-card-icon{display:none}.tour-card h2{font-size:14px}.tour-card p{font-size:11px;margin:7px 0 12px}.tour-button{padding:10px 8px;font-size:12px;gap:6px}.duration{display:none}.sidebar-footer{grid-column:1/-1}.stage-top{top:16px;left:16px;right:16px}.view-segment button{padding:8px 10px}.view-label{top:84px;left:20px}.view-label h2{font-size:21px}.mini-map{width:98px;padding:9px;bottom:60px;left:16px}.mini-map svg{height:80px}.map-caption{display:none}.map-title{font-size:6px;margin-bottom:4px}.tour-player{width:calc(100% - 142px);gap:8px;padding:11px;bottom:61px;right:15px}.tour-progress strong{font-size:10px}.tour-progress span{font-size:9px}.player-play{width:28px;height:28px}.player-stop{width:20px}.stage-bottom{padding:13px 16px;font-size:10px}.app-footer{font-size:9px;padding:9px 18px;height:auto;flex-wrap:wrap;gap:6px}.app-footer>span:last-child{gap:8px}.app-footer>span:first-child{display:none}.help-dialog{padding:28px;max-height:90vh;overflow:auto}.help-dialog h2{font-size:23px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shading-modes{display:flex;gap:5px;border:0;padding:4px;margin:0;background:#0f1d24;border-radius:8px;min-width:0}.shading-option{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:12px 5px;border:1px solid transparent;border-radius:6px;color:#adbec6;font-size:14px;text-align:center;cursor:pointer;line-height:1.3}.shading-option input{position:absolute;opacity:0;width:1px;height:1px}.shading-option:has(input:focus-visible){outline:2px solid var(--mint);outline-offset:2px}.shading-option:hover{background:#20353d}.shading-option.selected{background:#28413f;border-color:#4b7063;color:#c9f5de}.shading-modes:disabled{opacity:.4}.shading-modes:disabled label{cursor:wait}.shading-sphere{width:23px;height:23px;border-radius:50%;box-shadow:1px 3px 5px #0005;background:radial-gradient(circle at 32% 28%,#f1f3f5,#a9b3bd 45%,#4a5660 95%)}.shading-sphere.material{background:radial-gradient(circle at 30% 23%,#fff7de,#d7b88a 18%,#785c3c 46%,#1d302f 68%,#728d8d 97%)}.shading-description{font-size:12px;line-height:1.5;color:var(--muted);margin:10px 6px 19px;min-height:36px}.layer-heading{margin-bottom:5px}@media(max-width:700px){.shading-option{font-size:12px;padding:10px 3px}.shading-description{font-size:12px;margin-left:0;margin-right:0}.shading-modes{gap:2px;padding:3px}}.telemetry-panel{padding:16px 0;border-top:1px solid var(--line)}.stream-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:12px 0;padding:10px 12px;border:1px solid #486353;border-radius:8px;background:#1a332f;color:var(--mint);font-size:12px}.stream-toggle:hover{background:#25463f}.telemetry-note{font-size:11px;color:var(--muted);margin:8px 0}.sensor-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;font-size:12px}.sensor-row span{font-variant-numeric:tabular-nums;color:var(--mint)}.sensor-dialog{width:min(1180px,95vw);max-height:90dvh;padding:26px;border:1px solid #3f5963;border-radius:16px;background:var(--panel);color:#edf3f4;box-shadow:0 25px 100px #0008}.sensor-dialog::backdrop{background:#08151bc9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sensor-dialog-heading,.sensor-discovery-tools,.sensor-dialog-footer{display:flex;align-items:center;gap:14px}.sensor-dialog-heading{justify-content:space-between}.sensor-dialog h2{margin:8px 0;font-size:25px}.sensor-dialog>p{color:var(--muted);font-size:13px;line-height:1.6}.sensor-dialog input,.sensor-dialog select,.sensor-dialog button:not(.icon-button){border:1px solid #48606c;border-radius:6px;background:#1b303a;color:#edf3f4;padding:8px;font:inherit;font-size:12px}.sensor-dialog input[type=checkbox]{accent-color:#b2eed0;width:16px;height:16px}.sensor-discovery-tools{flex-wrap:wrap;margin:18px 0;font-size:12px}.sensor-discovery-tools>input{flex:1;min-width:180px}.sensor-discovery-tools>label,.sensor-discovery-tools>button{display:flex;align-items:center;gap:7px}.sensor-table-scroll{overflow:auto;max-height:48dvh}.sensor-config-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.sensor-config-table th{position:sticky;top:0;background:#203641;z-index:1}.sensor-config-table th,.sensor-config-table td{padding:10px;border-bottom:1px solid var(--line)}.sensor-config-table tr.selected{background:#213c37}.sensor-config-table strong,.sensor-config-table code,.sensor-config-table small{display:block;margin:3px 0}.sensor-config-table code,.sensor-config-table small{color:var(--muted);font-size:11px}.sensor-config-table input[type=number]{width:66px}.sensor-config-table td:last-child{white-space:nowrap}.sensor-dialog-footer{margin-top:20px;flex-wrap:wrap;font-size:12px}.sensor-dialog-footer>span{margin-right:auto;color:var(--muted)}.sensor-dialog-footer .save-sensors{background:var(--mint);color:var(--ink);font-weight:600}.sensor-dialog .sensor-config-error{color:#ffc0b5;background:#5a2929;padding:10px;border-radius:6px}.point-room-options{border:0;padding:0;margin:0;display:grid;gap:6px;min-width:130px}.point-room-options label{display:flex;align-items:center;gap:6px;white-space:nowrap}.point-room-readings{margin:12px 0;font-size:12px}.sensor-config-table select{min-width:170px;max-width:220px}.sensor-config-table td{vertical-align:top}.heatmap-modes{display:flex;gap:3px;padding:4px;border-radius:9px;background:#0c1b22}.heatmap-modes button{flex:1;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);padding:9px 5px;font-size:12px}.heatmap-modes button[aria-pressed=true]{color:var(--mint);background:#28413f;border-color:#4b7063}.heatmap-modes button:hover{color:#fff}.heatmap-description,.heatmap-empty{font-size:12px;line-height:1.6;color:var(--muted)}.heatmap-empty{border-left:2px solid #819798;padding-left:10px}.heatmap-readings{margin-top:14px;font-size:12px;color:#bed0d6}.heatmap-readings summary{cursor:pointer}.heatmap-readings ul{padding:0;margin:10px 0;list-style:none}.heatmap-readings li{display:flex;justify-content:space-between;gap:8px;padding:6px 0}.heatmap-readings li span:last-child{font-variant-numeric:tabular-nums;color:var(--mint)}.heatmap-legend{position:absolute;right:26px;top:98px;width:240px;padding:16px;border:1px solid #ffffff80;border-radius:12px;background:#142b33ee;color:#f0f6f8;box-shadow:0 6px 24px #12242a20;pointer-events:none}.heatmap-legend-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.heatmap-legend-heading>span{font-size:10px;color:#b2eed0;text-transform:uppercase;letter-spacing:.08em}.heatmap-gradient{height:12px;margin:14px 0 7px;border-radius:6px}.heatmap-ticks,.heatmap-ends{display:flex;justify-content:space-between;font-size:11px;font-variant-numeric:tabular-nums}.heatmap-ends{margin-top:5px;color:#b4c8d1;font-size:10px}.heatmap-legend p{display:flex;align-items:center;gap:6px;margin:14px 0 8px;font-size:10px}.heatmap-legend p i{width:9px;height:9px;border-radius:2px}.heatmap-legend small{display:block;font-size:10px;line-height:1.5;color:#b4c8d1}@media(max-width:1050px){.heatmap-legend{width:190px;right:18px;top:175px;padding:12px}}@media(max-width:700px){.heatmap-legend{top:84px;right:14px;width:165px;padding:10px}.heatmap-legend small{display:none}.heatmap-legend-heading{font-size:12px}.heatmap-ticks{font-size:10px}.heatmap-modes{flex-wrap:wrap}.heatmap-modes button,.heatmap-description{font-size:11px}}.floor-select{display:grid;gap:7px;font-size:14px;color:var(--muted);margin-top:16px}.floor-select select{padding:10px;background:#1b343e;color:#eff7f3;border:1px solid #4e6872;border-radius:6px;font:inherit;width:100%}.room-floor-group{display:grid;gap:6px;padding:8px 0}.room-floor-group>strong{font-size:13px;color:#b5e3d5}.point-room-options{max-height:260px;overflow:auto;min-width:190px}.house-controls{border-top:1px solid var(--line);padding-top:20px}.house-floor-list{display:grid;gap:12px;margin-top:16px}.house-floor-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.house-floor-list label{display:flex;align-items:center;gap:8px;font-size:13px}.house-floor-list input{accent-color:#b2eed0}.house-floor-list button{display:flex;align-items:center;gap:4px;color:var(--mint);background:none;border:0;font-size:12px;padding:5px}.settings-page{min-height:100dvh;background:var(--panel);color:#edf3f4;display:flex;flex-direction:column}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;border-bottom:1px solid var(--line);background:#101d23}.settings-header>span,.settings-back{display:flex;align-items:center;gap:10px}.settings-page button{border:1px solid #49606b;background:#203640;border-radius:7px;padding:10px 14px}.settings-back{color:var(--mint)}.settings-content{flex:1;padding:28px 32px 100px;min-width:0}.settings-content h1{font-size:30px;margin:8px 0}.settings-content>p{color:var(--muted)}.settings-page .sensor-discovery-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.settings-page .sensor-discovery-tools>input{flex:1;min-width:240px}.settings-page input,.settings-page select{color:#e6f0f2;background:#101f27;border:1px solid #49606b;border-radius:5px;padding:9px}.settings-page input[type=checkbox]{accent-color:#b2eed0}.settings-page .sensor-discovery-tools label{display:flex;align-items:center;gap:7px}.settings-page .sensor-table-scroll{max-height:none;overflow:auto}.settings-page .sensor-config-table{width:100%}.settings-page .sensor-config-table th{background:#172c36}.settings-page .sensor-config-table td{vertical-align:top;padding:16px 12px}.settings-page .sensor-config-table td:nth-child(2){width:28%}.settings-page .sensor-config-table td:nth-child(4){min-width:240px;width:28%}.room-picker summary{cursor:pointer;color:var(--mint);padding:5px 0;max-width:380px;line-height:1.5}.settings-page .point-room-options{max-height:280px;margin-top:10px}.settings-page .sensor-dialog-footer{position:sticky;bottom:0;margin:0;padding:18px 32px;background:#101d23;border-top:1px solid var(--line)}.settings-page .save-sensors{background:var(--mint);color:#13252a}.settings-unsaved{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;border:1px solid #b98d55;border-radius:8px;margin:18px 0}.settings-page .settings-success{color:var(--mint)}.point-status-list{list-style:none;padding:0;display:grid;gap:12px;font-size:12px}.point-status-list strong{display:block;margin-bottom:5px}.point-status-list span{display:block;color:var(--muted);margin:3px 0}.point-status-list .alert{color:#ff9292}.point-status-list .active{color:#ffdc8b}.point-status-list .ok{color:var(--mint)}@media(max-width:700px){.settings-header,.settings-content{padding:18px}.settings-header>span{display:none}.settings-page .sensor-dialog-footer{padding:12px;flex-wrap:wrap}}.map-page{height:100dvh;display:flex;flex-direction:column;background:var(--panel);color:#edf3f4}.map-page .settings-header{flex-shrink:0}.map-page button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#243d41;border:1px solid #49606b;padding:9px 12px;border-radius:6px}.map-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);flex:1;min-height:0}.map-controls{padding:24px;overflow-y:auto}.map-controls h1{font-size:24px;line-height:1.2}.map-controls p{color:var(--muted);font-size:12px;line-height:1.6}.map-controls fieldset{border:1px solid var(--line);border-radius:8px;padding:14px;margin:20px 0;display:grid;gap:12px}.map-controls legend{font-size:13px;color:var(--mint)}.map-controls label{display:grid;gap:6px;font-size:12px}.map-controls input[type=number]{width:100%;min-width:0;border:1px solid #49606b;background:#101f27;color:#e6f0f2;padding:9px;border-radius:5px}.map-controls .map-check{display:flex;align-items:center;gap:8px;text-transform:capitalize}.map-controls input{accent-color:#b2eed0}.map-message{padding:14px;line-height:1.6;border:1px solid #517a71;background:#203d36;border-radius:8px;font-size:13px;overflow-wrap:anywhere}.cesium-host{min-width:0;min-height:0;position:relative;background:#101d23}.map-token-empty,.map-loading{height:100%;display:grid;place-items:center;color:var(--muted);padding:30px;text-align:center}.map-loading{height:100dvh}@media(max-width:800px){.map-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(260px,55%) 1fr}.cesium-host{grid-row:1}.map-controls{grid-row:2}.map-page .settings-header{padding:12px;gap:8px}.map-page .settings-header strong{display:none}}.map-nudge{display:grid;grid-template-columns:1fr 1fr;gap:6px}.map-nudge button{font-size:11px;padding:7px}.heat-volume-opacity{display:grid;gap:7px;margin:12px 0;color:var(--muted);font-size:12px}.heat-volume-opacity input{width:100%;accent-color:var(--mint)}.signin-page{min-height:100dvh;display:grid;place-items:center;padding:32px;background:#101d23;color:#edf3f4}.signin-page section{max-width:420px;padding:36px;border:1px solid #3f5963;border-radius:18px;background:#13232b}.signin-page h1{margin:14px 0;font-size:30px}.signin-page p{color:#b1c3cc;line-height:1.65}.signin-page small{display:block;color:#97aab3;line-height:1.6;margin-top:22px}.google-signin,.signin-page button{display:block;width:100%;text-align:center;margin-top:25px;border:0;border-radius:8px;padding:13px;background:#b2eed0;color:#13252a;font-weight:600}.account-button{border:1px solid #486353;border-radius:6px;padding:7px 10px;color:var(--mint);background:transparent;font-size:12px}.auth-error{position:fixed;top:0;left:0;right:0;z-index:100;padding:12px;background:#5a2929;color:#fff;text-align:center}.icon-button[hidden]{display:none}.spaces-toggle{width:100%;border:0;background:transparent;text-align:left;padding:0 6px;cursor:pointer;gap:8px}.spaces-toggle .spaces-title{font-size:14px;font-weight:600;color:#dce6e9;letter-spacing:normal;margin-right:auto}.spaces-toggle svg{transition:transform .18s}.spaces-toggle svg.expanded{transform:rotate(90deg)}#spaces-navigation[hidden]{display:none}.flyby-select{display:grid;gap:7px;margin-top:14px;font-size:12px;color:#c5d8d5}.flyby-select select{width:100%;min-width:0;padding:9px;border:1px solid #48615e;border-radius:6px;color:#edf3f4;background:#19322f;font:inherit}
