:root{--bg:#05090d;--panel:rgba(7,13,19,.92);--panel2:rgba(12,20,27,.86);--line:rgba(154,216,238,.14);--cyan:#62e6ff;--blue:#4b8dff;--green:#58e3a4;--text:#eef9ff;--muted:#8fa6b4;--warn:#ffd26b}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app-shell{width:100%;height:100%;position:relative;background:radial-gradient(circle at 22% 5%,rgba(65,151,255,.09),transparent 26%),#05090d}.topbar{height:68px;position:absolute;z-index:30;left:0;right:0;top:0;display:flex;align-items:center;padding:0 18px;gap:16px;background:linear-gradient(180deg,rgba(4,8,12,.94),rgba(4,8,12,.76),transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;margin-right:auto}.brand img{width:42px;height:42px;border-radius:11px;box-shadow:0 0 28px rgba(86,211,255,.16)}.brand b{display:block;font-size:13px;letter-spacing:.18em}.brand small{display:block;color:var(--cyan);font-weight:900;font-size:9px;letter-spacing:.23em;margin-top:2px}.live-state{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(5,12,17,.72);font-size:9px;font-weight:900;letter-spacing:.11em;color:#a8bdc8}.live-state i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:pulse 1.8s infinite}.icon-button,.panel-head button{border:1px solid var(--line);background:rgba(7,14,20,.78);color:#dff7ff;border-radius:11px;padding:9px 11px;font-weight:900;font-size:10px;letter-spacing:.08em;cursor:pointer}.workspace,.map-surface,#liveMap{width:100%;height:100%}.map-surface{position:relative}.maplibregl-map{font:inherit}.maplibregl-ctrl-top-right{top:72px!important;right:10px!important}.maplibregl-ctrl-group{background:rgba(6,12,17,.86)!important;border:1px solid var(--line)!important;box-shadow:none!important}.maplibregl-ctrl button span{filter:invert(1) opacity(.8)}
.map-brand-card{position:absolute;z-index:5;left:18px;top:88px;width:min(440px,calc(100vw - 36px));padding:17px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(140deg,rgba(7,15,21,.88),rgba(8,17,24,.60));backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(0,0,0,.24)}.map-kicker,.eyebrow{font-size:9px;font-weight:950;letter-spacing:.16em;color:var(--cyan)}.map-brand-card h1{margin:6px 0 5px;font-size:clamp(22px,3.2vw,38px);letter-spacing:-.035em;line-height:1}.map-brand-card p{margin:0;color:#9fb3be;font-size:12px;line-height:1.45;max-width:390px}
.search-box{position:absolute;z-index:8;left:18px;top:220px;width:min(440px,calc(100vw - 36px));display:grid;grid-template-columns:1fr 58px;background:rgba(5,11,16,.90);border:1px solid rgba(98,230,255,.22);border-radius:14px;padding:5px;backdrop-filter:blur(16px);box-shadow:0 16px 46px rgba(0,0,0,.25)}.search-box input{min-width:0;border:0;background:transparent;color:white;padding:10px 12px;outline:0;font:inherit;font-size:13px}.search-box button{border:0;border-radius:10px;background:linear-gradient(135deg,var(--cyan),#4c8fff);color:#021017;font-weight:950;cursor:pointer}.search-results{grid-column:1/-1;border-top:1px solid var(--line);margin-top:5px;padding:6px}.search-results button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#dff5ff;padding:9px;border-radius:9px;cursor:pointer}.search-results button:hover{background:rgba(98,230,255,.07)}.search-results small{display:block;color:#7f98a6;margin-top:2px}
.map-tools{position:absolute;z-index:7;left:18px;bottom:42px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100vw - 36px)}.map-tools button{border:1px solid var(--line);background:rgba(5,11,16,.84);color:#9db3bf;border-radius:10px;padding:9px 10px;font-size:9px;font-weight:950;letter-spacing:.08em;backdrop-filter:blur(12px);cursor:pointer}.map-tools button.active{color:#071118;background:var(--cyan);border-color:var(--cyan)}.map-status{position:absolute;z-index:6;left:18px;bottom:15px;color:#89a0ac;font-size:10px;max-width:65vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.system-panel,.building-panel{position:absolute;z-index:22;top:82px;right:18px;width:min(390px,calc(100vw - 36px));max-height:calc(100vh - 104px);overflow:auto;border:1px solid rgba(115,209,240,.20);border-radius:20px;background:linear-gradient(145deg,rgba(6,13,19,.96),rgba(7,15,21,.91));backdrop-filter:blur(20px);box-shadow:0 28px 80px rgba(0,0,0,.38);padding:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel-head h2{font-size:23px;line-height:1;margin:6px 0 0}.panel-head button{font-size:22px;line-height:1;width:36px;height:36px;padding:0}.hero-number{margin-top:20px;padding:16px;border-radius:15px;background:linear-gradient(135deg,rgba(73,141,255,.12),rgba(98,230,255,.05));border:1px solid rgba(98,230,255,.12)}.hero-number span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hero-number strong{display:block;font-size:31px;letter-spacing:-.04em;margin-top:3px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.metric-grid article,.building-grid>div{padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.025)}.metric-grid span,.building-grid span,.source-card span{display:block;color:#758f9d;font-size:9px;text-transform:uppercase;letter-spacing:.07em}.metric-grid b,.building-grid b{display:block;margin-top:5px;font-size:14px}.progress-block{margin-top:16px}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#9eb2bc}.progress-label b{color:#dff7ff}.bar{height:7px;background:#111b22;border-radius:99px;margin-top:7px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3b78ff,#65e6ff);border-radius:99px;transition:width .8s ease}.bar.accent i{background:linear-gradient(90deg,#39d797,#6af1c3)}.truth-list{margin-top:17px;border-top:1px solid var(--line)}.truth-list div{display:flex;justify-content:space-between;gap:12px;padding:10px 1px;border-bottom:1px solid rgba(255,255,255,.055);font-size:11px}.truth-list span{color:#849ca9}.truth-note{color:#8299a6;font-size:10px;line-height:1.5}.updated{margin-top:11px;color:#637985;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.updated span{color:#a6bbc6}.building-panel{left:auto}.truth-badge{display:inline-block;margin-top:16px;padding:7px 9px;border-radius:999px;background:rgba(98,230,255,.09);border:1px solid rgba(98,230,255,.24);color:var(--cyan);font-size:9px;font-weight:950;letter-spacing:.08em}.building-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.source-card{padding:12px;margin-top:8px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07)}.source-card b{display:block;margin-top:4px;font-size:11px;word-break:break-word}.source-card small{display:block;color:#718793;margin-top:4px}.building-panel[hidden]{display:none!important}@keyframes pulse{50%{opacity:.45;transform:scale(.85)}}
@media(max-width:760px){.system-panel{display:none}.topbar{height:60px;padding:0 12px}.brand img{width:38px;height:38px}.live-state{display:none}.map-brand-card{top:72px;left:12px;width:calc(100vw - 24px);padding:14px}.map-brand-card h1{font-size:24px}.map-brand-card p{font-size:11px}.search-box{left:12px;top:184px;width:calc(100vw - 24px)}.system-panel,.building-panel{top:auto;left:8px;right:8px;bottom:8px;width:auto;border-radius:20px}.system-panel{max-height:58vh}.building-panel{max-height:38vh}.map-tools{left:12px;bottom:37px;max-width:calc(100vw - 24px)}.map-tools button{padding:8px 9px}.map-status{left:12px;bottom:13px;max-width:92vw}.maplibregl-ctrl-top-right{top:64px!important;right:7px!important}.icon-button{font-size:9px}.metric-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.map-brand-card p{display:none}.search-box{top:150px}.map-brand-card{padding:12px}.map-brand-card h1{margin-bottom:0}.system-panel{max-height:62vh}}
/* V5030 map engagement + label UI */
.search-box{transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.map-surface.map-engaged .search-box:not(.search-open){opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px)}
.map-surface.map-engaged .search-box.search-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
#toggleSearch.active{color:#071118;background:var(--cyan);border-color:var(--cyan)}
.maplibregl-popup-content{border:1px solid rgba(98,230,255,.2);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.3)}
@media(max-width:760px){.map-surface.map-engaged .search-box:not(.search-open){display:none}}

/* V5033 semantic building labels */
@media(max-width:760px){
 .map-surface.map-engaged .map-brand-card{opacity:.88;transform:scale(.92);transform-origin:top left;max-width:290px}
}

/* V5041 interaction + X-ray + measurement */
#liveMap,.maplibregl-map,.maplibregl-canvas-container,.maplibregl-canvas{touch-action:none}
.map-tools{left:50%;right:auto;bottom:18px;transform:translateX(-50%);display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:min(900px,calc(100vw - 24px));width:max-content;padding:5px;border-radius:14px;background:rgba(3,9,14,.56);backdrop-filter:blur(14px);scrollbar-width:none}
.map-tools::-webkit-scrollbar{display:none}.map-tools button{flex:0 0 auto;white-space:nowrap}
.map-status{bottom:72px;left:18px;max-width:min(70vw,760px)}
.measure-readout{position:absolute;z-index:12;left:50%;bottom:78px;transform:translateX(-50%);padding:8px 11px;border:1px solid rgba(98,230,255,.22);border-radius:10px;background:rgba(4,11,16,.92);color:#dffcff;font-size:10px;font-weight:850;letter-spacing:.04em;pointer-events:none;white-space:nowrap}
@media(max-width:760px){.map-tools{bottom:10px;max-width:calc(100vw - 14px);padding:4px}.map-tools button{padding:8px 9px}.map-status{bottom:62px;left:10px;max-width:84vw}.measure-readout{bottom:62px}}

/* V5043 app navigation + strict map gesture ownership */
html,body,.app-shell{overscroll-behavior:none}
body.map-page-active{overflow:hidden}
#liveMap,.map-surface,.maplibregl-map,.maplibregl-canvas-container,.maplibregl-canvas{overscroll-behavior:none;-ms-touch-action:none;touch-action:none}
.app-page{position:absolute;inset:0;background:#05090d;overflow:hidden;padding:78px 16px 88px}
.app-page[hidden]{display:none!important}.page-scroll{height:100%;overflow:auto;overscroll-behavior:contain;padding:0 max(0px,calc((100vw - 1180px)/2)) 40px}
.page-head{padding:18px 4px 14px}.page-head h1{font-size:clamp(30px,5vw,52px);margin:6px 0 8px;letter-spacing:-.045em}.page-head p{max-width:720px;color:#92aab7;line-height:1.55}
.page-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.page-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:linear-gradient(145deg,rgba(9,18,25,.96),rgba(7,14,20,.86))}.page-card>span{color:var(--cyan);font-size:9px;font-weight:950;letter-spacing:.12em}.page-card h3{font-size:20px;margin:8px 0}.page-card p{color:#8ea4af;font-size:12px;line-height:1.5;min-height:54px}.page-card button{border:1px solid rgba(98,230,255,.22);background:rgba(98,230,255,.08);color:#dffcff;border-radius:10px;padding:9px 11px;font-weight:900;font-size:10px;cursor:pointer}.empty-state{border:1px dashed rgba(98,230,255,.22);border-radius:18px;padding:28px;color:#90a8b4;background:rgba(8,16,22,.72)}.page-disclaimer{color:#6f8793;font-size:10px;margin-top:14px}
.bottom-nav{position:absolute;z-index:40;left:50%;bottom:8px;transform:translateX(-50%);width:min(760px,calc(100vw - 16px));display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:5px;border:1px solid rgba(98,230,255,.16);border-radius:16px;background:rgba(4,10,15,.92);backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.38);transition:transform .18s ease,opacity .18s ease}
.bottom-nav.map-hidden{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 20px))}.bottom-nav.peek{opacity:1;pointer-events:auto;transform:translateX(-50%)}.bottom-nav.map-hidden.peek{opacity:1;pointer-events:auto;transform:translateX(-50%)}
.bottom-nav button{border:0;background:transparent;color:#8299a5;padding:8px 4px;border-radius:10px;cursor:pointer}.bottom-nav button.active{background:rgba(98,230,255,.1);color:#e8fcff}.bottom-nav b,.bottom-nav small{display:block}.bottom-nav b{font-size:9px;letter-spacing:.08em}.bottom-nav small{font-size:7px;margin-top:2px;color:#637985}
@media(max-width:760px){.app-page{padding:66px 9px 82px}.bottom-nav{bottom:5px;gap:2px;padding:4px}.bottom-nav button{padding:8px 1px}.bottom-nav b{font-size:8px}.bottom-nav small{display:none}}

/* V5045 account, packages and workspace */
.topbar-actions{display:flex;gap:7px;align-items:center}.auth-panel{position:fixed;z-index:80;top:68px;right:12px;width:min(390px,calc(100vw - 24px));padding:18px;border:1px solid rgba(98,230,255,.2);border-radius:18px;background:rgba(5,12,18,.98);box-shadow:0 24px 80px rgba(0,0,0,.5);backdrop-filter:blur(22px)}.auth-form{display:grid;gap:10px;margin-top:14px}.auth-form label{display:grid;gap:5px;color:#849ba7;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.auth-form input{border:1px solid var(--line);border-radius:10px;background:#08121a;color:#e9fbff;padding:11px;font:inherit}.auth-form button,.wide-secondary{border:1px solid rgba(98,230,255,.25);border-radius:10px;padding:10px;background:var(--cyan);color:#041017;font-weight:950;cursor:pointer}.auth-form button.secondary,.wide-secondary{background:rgba(98,230,255,.08);color:#dffcff}.wide-secondary{width:100%;margin-top:12px}.auth-message{min-height:18px;margin-top:10px;color:#ffcf77;font-size:10px;line-height:1.4}.account-card{padding:14px;border:1px solid rgba(98,230,255,.14);border-radius:13px;background:rgba(98,230,255,.04)}.account-card span,.account-card small{display:block;color:#78909c;font-size:9px}.account-card b{display:block;margin:5px 0 7px;overflow-wrap:anywhere}
.access-toast{position:fixed;z-index:100;left:50%;bottom:22px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 24px));padding:11px 14px;border:1px solid rgba(98,230,255,.25);border-radius:12px;background:rgba(5,13,19,.97);color:#e8fbff;font-size:11px;box-shadow:0 18px 50px rgba(0,0,0,.45)}.access-toast[data-kind="error"]{border-color:rgba(255,115,95,.35);color:#ffd3ca}.access-toast[data-kind="success"]{border-color:rgba(87,220,154,.35);color:#d8ffe9}
#packagesGrid{align-items:stretch}.grid-section-title{grid-column:1/-1;margin:18px 0 0;font-size:12px;color:#8fa8b5;text-transform:uppercase;letter-spacing:.11em}.package-card{display:flex;flex-direction:column}.package-card p{flex:1}.package-price{font-size:20px;font-weight:950;color:#eaffff;margin:7px 0}.package-meta{font-size:9px;color:#728995;line-height:1.5;margin-bottom:12px}.package-card button:disabled{opacity:.55;cursor:default}
.package-entitlements{margin:3px 0 14px;padding:12px;border:1px solid rgba(98,230,255,.1);border-radius:12px;background:rgba(2,10,15,.5)}.package-entitlements>b{display:block;margin-bottom:8px;color:#68e6ff;font-size:8px;letter-spacing:.11em}.package-entitlements ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.package-entitlements li{font-size:10px;line-height:1.35;color:#cfe5ec}.package-feature-extra{margin-top:7px!important;padding-top:7px!important;border-top:1px solid rgba(255,255,255,.06)}.package-feature-extra[hidden]{display:none!important}.package-feature-toggle{width:100%;margin:10px 0 0!important;padding:6px 0!important;border:0!important;background:transparent!important;color:#91eaff!important;text-align:left;font-size:8px!important;letter-spacing:.06em}.package-feature-count{margin:9px 0 12px;color:#7b929e;font-size:8px;font-weight:850;letter-spacing:.07em}.package-feature-count.muted-feature{font-weight:700}.package-card .package-action{margin-top:auto;width:100%}

.workspace-list{display:grid;gap:9px}.workspace-summary{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid rgba(98,230,255,.15);border-radius:14px;background:rgba(98,230,255,.04);color:#93aab6;font-size:11px}.workspace-summary b{color:#e9fbff}.workspace-row{padding:14px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(8,16,22,.88)}.workspace-row>span{color:var(--cyan);font-size:8px;font-weight:950;letter-spacing:.1em}.workspace-row h3{margin:6px 0 4px;font-size:15px}.workspace-row p,.workspace-row small{color:#8097a3;font-size:10px;line-height:1.45}.workspace-row.compact h3{font-size:13px}.empty-state button.inline-auth{margin-top:10px;border:1px solid rgba(98,230,255,.22);border-radius:9px;background:rgba(98,230,255,.08);color:#dffcff;padding:8px 11px;font-weight:900}
@media(max-width:760px){.topbar-actions{gap:4px}.auth-panel{top:58px;right:7px;width:calc(100vw - 14px)}.workspace-summary{flex-direction:column}}

/* V5050 interaction-first performance */
.map-surface{contain:layout paint style}.maplibregl-canvas{will-change:transform}.map-interacting .building-panel,.map-interacting .system-panel{transition:none!important}.map-interacting #liveMap{cursor:grabbing}

/* BP5208 mobile topbar */
.topbar-actions{display:flex;align-items:center;gap:7px;min-width:0}.topbar-actions .bp-language--topbar{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;max-width:112px;flex:0 1 auto}.topbar-actions .bp-language--topbar select{max-width:92px}.map-page-active>.bp-language:not(.bp-language--topbar){display:none!important}@media(max-width:680px){.topbar{padding:0 8px;gap:7px}.brand img{width:34px;height:34px}.brand b{font-size:10px}.brand small{font-size:7px}.live-state{display:none}.topbar-actions{gap:5px}.topbar-actions .icon-button{padding:8px 7px;font-size:8px}.topbar-actions .bp-language--topbar{max-width:88px}.topbar-actions .bp-language--topbar select{max-width:72px;font-size:8px}}

/* V5400 account-trial / paid-access state */
.trial-banner{position:fixed;z-index:65;top:58px;left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 24px));display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid rgba(91,216,237,.32);border-radius:13px;background:rgba(5,15,24,.95);box-shadow:0 12px 40px rgba(0,0,0,.28);backdrop-filter:blur(14px)}
.trial-banner[hidden]{display:none!important}.trial-banner>div{min-width:0;display:flex;flex-direction:column;gap:2px}.trial-banner b{font-size:11px;letter-spacing:.08em;color:#6ee8ff}.trial-banner span{font-size:12px;color:#d8e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trial-banner button{flex:0 0 auto;border:1px solid rgba(91,216,237,.4);background:#0f7897;color:#fff;border-radius:9px;padding:8px 11px;font-size:10px;font-weight:900;letter-spacing:.04em;cursor:pointer}
@media(max-width:680px){.trial-banner{top:54px;align-items:flex-start}.trial-banner span{white-space:normal}.trial-banner button{padding:7px 9px}.map-surface.active{padding-top:0}}

/* V5346 auth legal acceptance + password reveal */
.auth-form .password-wrap{position:relative;display:block}.auth-form .password-wrap input{width:100%;padding-right:48px}.auth-form .password-toggle{position:absolute;right:5px;top:5px;width:38px;height:34px;padding:0;border:1px solid rgba(98,230,255,.18);border-radius:8px;background:#0b171e;color:#dffcff;font-size:15px}
.auth-form .legal-accept{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;text-transform:none;letter-spacing:0;line-height:1.45;color:#8ba2ad;font-size:9px}
.auth-form .legal-accept input{width:16px;height:16px;margin:1px 0 0;padding:0;accent-color:#62e6ff}.auth-form .legal-accept a{color:#62e6ff;text-decoration:none}

/* BP mobile compositor relief v5561: preserve features, reduce GPU compositing/thermal load. */
@media(max-width:900px){.topbar,.map-brand-card,.search-box,.map-tools button,.system-panel,.building-panel,.live-legend,.page-card,.owner-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.page-scroll,.system-panel,.building-panel{overscroll-behavior:contain}}
