:root{--bg:#07111e;--panel:#0d1928;--panel2:#111f30;--line:#1d3043;--muted:#8193a8;--text:#e9f1f6;--mint:#8bd2c4;--mint2:#4eb6a7;--violet:#9588df;--amber:#e9b978}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:DM Sans,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.app{background:radial-gradient(900px 600px at 82% -10%,#142d3a66,transparent 55%),var(--bg);min-height:100vh;display:flex}.rail{border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:35px;width:68px;padding:18px 0 20px;display:flex}.brandmark{background:var(--mint);color:#07111e;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.rail-nav,.rail-bottom{flex-direction:column;align-items:center;gap:15px;display:flex}.rail-nav button,.rail-bottom button{color:#587086;background:0 0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.rail-nav button.active{color:var(--mint);background:#18363c}.rail-bottom{margin-top:auto}.avatar{color:#08131e;background:#d8e5e9;border-radius:50%;place-items:center;width:30px;height:30px;font:500 10px IBM Plex Mono;display:grid}header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}h1{letter-spacing:-.7px;margin:8px 0 0;font-size:25px;font-weight:600}h1 span{color:#71869b;font-weight:400}.eyebrow{text-transform:uppercase;letter-spacing:1.2px;color:#7690a5;font:500 10px IBM Plex Mono}.live-dot{background:var(--mint);width:6px;height:6px;box-shadow:0 0 11px var(--mint);border-radius:50%;margin-right:8px;display:inline-block}.header-actions{gap:10px;display:flex}.ghost,.primary{border-radius:7px;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.ghost{color:#9eb0c2;background:#122232}.primary{background:var(--mint);color:#07151e;font-weight:600}.workspace{grid-template-columns:minmax(0,1fr) 320px;gap:18px;display:grid}.viewport-card,.inspector,.info-card{border:1px solid var(--line);background:linear-gradient(145deg,#101e2d,#0b1725);border-radius:12px}.viewport-card{overflow:hidden}.viewport-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.scene-title{align-items:center;gap:10px;display:flex}.scene-title strong{font-size:13px;display:block}.scene-title small{color:#7690a5;margin-top:4px;font:11px IBM Plex Mono;display:block}.scene-chip{width:27px;height:27px;color:var(--mint);background:#19343a;border-radius:7px;place-items:center;display:grid}.view-actions{gap:6px;display:flex}.view-actions button,.icon-btn{color:#a7bacb;background:#162637;border:1px solid #263c4e;border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:11px;display:flex}.view-actions button:last-child{padding:8px}.canvas-wrap{background:#07111e;height:520px;position:relative;overflow:hidden}.terrain-canvas{cursor:grab;width:100%;height:100%;display:block}.terrain-canvas:active{cursor:grabbing}.canvas-badge{color:#a6becd;letter-spacing:.5px;background:#0c1c2ad9;border:1px solid #2a4850;border-radius:5px;padding:7px 9px;font:10px IBM Plex Mono;position:absolute;top:16px;left:18px}.canvas-badge i{background:#395362;width:1px;height:11px;margin:0 9px -2px;display:inline-block}.pulse{background:var(--mint);vertical-align:1px;width:5px;height:5px;box-shadow:0 0 6px var(--mint);border-radius:50%;margin-right:6px;display:inline-block}.compass{color:var(--mint);flex-direction:column;align-items:center;gap:0;display:flex;position:absolute;top:16px;right:18px}.compass span{margin-top:-2px;font:10px IBM Plex Mono}.canvas-controls{color:#b8c9d2;background:#0b1b29e8;border:1px solid #294254;border-radius:6px;align-items:center;font:11px IBM Plex Mono;display:flex;position:absolute;bottom:17px;right:18px;overflow:hidden}.canvas-controls button{color:#8ca1b3;background:0 0;place-items:center;width:29px;height:28px;display:grid}.canvas-controls span{padding:0 5px}.viewport-footer{color:#7b91a6;justify-content:space-between;padding:12px 17px;font:10px IBM Plex Mono;display:flex}.legend,.footer-note{align-items:center;gap:13px;display:flex}.swatch{border-radius:5px;width:18px;height:5px;margin-right:4px;display:inline-block}.low{background:#173450}.mid{background:#6db99b}.high{background:#eed47b}.inspector{padding:20px 18px}.panel-heading{justify-content:space-between;align-items:flex-start;margin-bottom:19px;display:flex}h2{margin:7px 0 0;font-size:17px;font-weight:600}.metric-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:22px;display:grid}.metric-grid>div{background:#101f2e;border:1px solid #1b3344;border-radius:7px;padding:11px 10px}.metric-grid small,.metric-grid strong,.metric-grid em{display:block}.metric-grid small{color:#7d92a6;font-size:10px}.metric-grid strong{margin:8px 0 5px;font:500 17px IBM Plex Mono}.metric-grid em{color:var(--mint);font:10px IBM Plex Mono}.metric-grid em.neutral{color:#738ba0}.control-section{border-top:1px solid var(--line);padding:17px 0}.control-section label{color:#9cafbe;margin-bottom:9px;font-size:11px;display:block}.segmented{background:#091522;border-radius:6px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented button{color:#71879c;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px 5px;font-size:11px;display:flex}.segmented button.selected{color:var(--mint);background:#1a3740}.label-row{justify-content:space-between;align-items:center;display:flex}.label-row span{color:var(--mint);font:11px IBM Plex Mono}input[type=range]{width:100%;accent-color:var(--mint);margin:7px 0 0}.range-labels,.profile-values{color:#647e94;justify-content:space-between;font:9px IBM Plex Mono;display:flex}.profile .label-row label{align-items:center;gap:6px;display:flex}.text-btn{color:#718ba0;background:0 0;font-size:10px}.sparkline{background:#0b1c29;border:1px solid #1b3646;border-radius:5px;height:68px;padding:4px}.sparkline svg{width:100%;height:100%}.profile-values{margin-top:5px}.profile-values strong{color:#a7c4c8;font-weight:400}.split-list{flex-direction:column;gap:5px;display:flex}.split-list button{text-align:left;background:#0e1d2b;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:8px 9px;display:flex}.split-list button:hover,.split-list button.split-active{background:#122730;border-color:#2e5657}.split-dot{background:#557188;border-radius:50%;width:6px;height:6px}.split-active .split-dot{background:var(--mint);box-shadow:0 0 6px #8bd2c4}.split-list span:nth-child(2){flex:1}.split-list strong{text-transform:uppercase;color:#aec0cb;font:11px IBM Plex Mono;display:block}.split-list small{color:#6f879b;margin-top:3px;font:9px IBM Plex Mono;display:block}.split-list svg{color:#59738b}.tool-row{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:7px;padding-top:17px;display:grid}.tool-row button{color:#a8b9c7;background:#152638;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:9px 6px;font-size:10px;display:flex}.tool-row button.tool-active{color:var(--mint);background:#183b3c}.bottom-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;display:grid}.info-card{align-items:center;gap:11px;min-height:92px;padding:15px;display:flex}.card-icon{border-radius:7px;flex:none;place-items:center;width:31px;height:31px;display:grid}.mint{color:var(--mint);background:#193836}.violet{color:var(--violet);background:#27243f}.amber{color:var(--amber);background:#3b3021}.info-card span{color:#788ea3;font-size:10px;display:block}.info-card strong{margin:5px 0;font:500 16px IBM Plex Mono;display:block}.info-card small{color:#637e94;font:10px IBM Plex Mono}.progress{background:#1e3740;border-radius:3px;width:55px;height:3px;margin-left:auto}.progress i{background:var(--mint);border-radius:3px;width:94%;height:100%;display:block}.round-action{width:28px;height:28px;color:var(--mint);background:#19343b;border-radius:50%;place-items:center;margin-left:auto;display:grid}.trend{color:var(--amber)!important;margin-left:auto!important;font:10px IBM Plex Mono!important}footer{color:#536e83;justify-content:space-between;padding:18px 3px 0;font:9px IBM Plex Mono;display:flex}footer span{align-items:center;gap:5px;display:flex}.toast,.measure-hint{color:#08151f;background:#d9ece9;border-radius:7px;padding:10px 15px;font-size:12px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0006}.measure-hint{color:#b8e2d9;background:#153039;border:1px solid #2d6664;align-items:center;gap:8px;display:flex;bottom:72px}.measure-hint svg:last-child{cursor:pointer;color:#809a9e;margin-left:8px}@media (width<=1000px){.workspace{grid-template-columns:1fr}.inspector{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.panel-heading,.metric-grid,.tool-row{grid-column:1/-1}.canvas-wrap{height:440px}}@media (width<=640px){main{padding:20px 14px}.rail{width:52px}.header-actions .ghost{display:none}header{align-items:flex-start}.bottom-grid{grid-template-columns:1fr}.inspector{display:block}.viewport-footer{flex-direction:column;gap:10px}.canvas-wrap{height:370px}h1{font-size:20px}}.theme-light{--bg:#edf3f4;--line:#d5e0e1;--text:#19303d;background:linear-gradient(145deg,#edf5f4,#e8f0f3)}.theme-light .rail{background:#f5faf9;border-color:#d3e0e1}.theme-light .rail-nav button,.theme-light .rail-bottom button{color:#68808b}.theme-light .rail-nav button.active{color:#287e76;background:#d8efea}.theme-light .viewport-card,.theme-light .inspector,.theme-light .info-card{background:linear-gradient(145deg,#fff,#f5f9f8);border-color:#d3e0e1}.theme-light .ghost,.theme-light .view-actions button,.theme-light .icon-btn,.theme-light .tool-row button{color:#496675;background:#eaf2f2;border-color:#d0dede}.theme-light .metric-grid>div,.theme-light .split-list button{background:#f1f7f6;border-color:#dce8e7}.theme-light .segmented{background:#e7efef}.theme-light .segmented button.selected{color:#287e76;background:#d3eeea}.theme-light .viewport-top,.theme-light .viewport-footer,.theme-light .control-section{border-color:#d8e4e4}.theme-light h1 span,.theme-light .eyebrow{color:#6d8590}.theme-light footer{color:#68808b}.sparkline.cleared svg{opacity:.14}.theme-light .class-legend{color:#68808b}.terrain-canvas{touch-action:none;position:relative}.scene-browser{border:1px solid var(--line);background:linear-gradient(145deg,#101e2d,#0b1725);border-radius:12px;margin-top:18px;padding:17px 18px 16px}.browser-head{justify-content:space-between;align-items:flex-end;margin-bottom:13px;display:flex}.browser-head h2{margin:7px 0 0}.browser-count{color:#6d8798;font:400 10px IBM Plex Mono}.browser-tip{color:#71899c;align-items:center;gap:6px;font:10px IBM Plex Mono;display:flex}.scene-strip{scrollbar-color:#315666 transparent;gap:9px;padding-bottom:3px;display:flex;overflow-x:auto}.scene-tile{text-align:left;background:#0d1c2a;border:1px solid #1a3041;border-radius:7px;flex:1;min-width:154px;padding:0;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.scene-tile:hover{border-color:#4b8884;transform:translateY(-2px)}.scene-tile.scene-selected{border-color:var(--mint);box-shadow:0 0 0 1px #8bd2c433}.scene-tile img{object-fit:cover;opacity:.82;width:100%;height:68px;display:block}.tile-meta{padding:8px 8px 7px;display:block}.tile-meta strong{color:#b8c9d0;font:500 11px IBM Plex Mono;display:block}.tile-meta small{color:#6e8799;text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font:9px IBM Plex Mono;display:block;overflow:hidden}.tile-height{color:#cce2da;background:#07131ed9;border:1px solid #314b58;border-radius:3px;padding:3px 4px;font:9px IBM Plex Mono;position:absolute;top:7px;right:6px}.theme-light .scene-browser{background:linear-gradient(145deg,#fff,#f5f9f8);border-color:#d3e0e1}.theme-light .scene-tile{background:#eff6f5;border-color:#d5e4e3}.theme-light .scene-tile img{opacity:.9}.theme-light .tile-height{color:#36635e;background:#eef7f5dd;border-color:#c8ddda}.theme-light .browser-tip{color:#67808b}.flight-help{color:#aac1cb;letter-spacing:.15px;background:#0b1b29d9;border:1px solid #294554;border-radius:5px;padding:7px 9px;font:9px IBM Plex Mono;position:absolute;bottom:17px;left:18px}.flight-help kbd{color:#d8ebe9;background:#203947;border-radius:3px;margin:0 2px;padding:2px 4px}.theme-light .flight-help{color:#4d6d77;background:#f0f8f6e6;border-color:#c9dfdc}.theme-light .flight-help kbd{color:#2e5d5b;background:#d6ebe7}@media (width<=700px){.browser-head{flex-direction:column;align-items:flex-start;gap:8px}.scene-tile{min-width:145px}}.app{min-height:100vh;display:block;overflow-x:hidden}main{width:100%;max-width:none;margin:0;padding:0}header{z-index:30;-webkit-backdrop-filter:blur(14px);background:#081522b8;border:1px solid #263c4e;border-radius:10px;align-items:center;margin:0;padding:10px 12px;position:absolute;top:18px;left:88px;right:24px;box-shadow:0 10px 35px #0005}.rail{z-index:40;-webkit-backdrop-filter:blur(14px);background:#081522d9;border:1px solid #263c4e;border-radius:10px;width:52px;height:auto;padding:10px 0;position:fixed;top:14px;bottom:14px;left:14px;box-shadow:0 12px 35px #0006}.workspace{width:100%;height:100vh;min-height:680px;margin:0;display:block;position:relative}.workspace .viewport-card{background:#07111e;border:0;border-radius:0;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:hidden}.workspace .canvas-wrap{width:100%;position:absolute;inset:0;height:100%!important;min-height:0!important}.workspace .viewport-top{z-index:12;-webkit-backdrop-filter:blur(12px);background:#0a1825c7;border:1px solid #263f50;border-radius:8px;padding:10px 12px;position:absolute;top:14px;left:88px;right:370px}.workspace .viewport-footer{z-index:12;-webkit-backdrop-filter:blur(12px);background:#0a1825c7;border:1px solid #263f50;border-radius:7px;padding:9px 12px;position:absolute;bottom:14px;left:88px;right:24px}.workspace .inspector{z-index:20;-webkit-backdrop-filter:blur(18px);background:linear-gradient(145deg,#0e1c2cef,#081522ef);border-color:#355061;width:330px;max-height:none;position:absolute;top:14px;bottom:62px;right:18px;overflow:auto;box-shadow:0 18px 55px #0009}.workspace .inspector::-webkit-scrollbar{width:6px}.workspace .inspector::-webkit-scrollbar-thumb{background:#355264;border-radius:6px}.canvas-badge{top:68px;left:88px}.flight-help{z-index:13;bottom:62px;left:88px}.layer-tabs{grid-template-columns:repeat(4,1fr)}.layer-tabs.wide{grid-template-columns:repeat(3,1fr)}.layer-tabs button:disabled{opacity:.35;cursor:not-allowed}.layer-tabs button{padding-left:3px;padding-right:3px}.class-legend{color:#8ea5b5;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;margin-top:10px;font:9px IBM Plex Mono;display:grid}.class-legend span{align-items:center;gap:5px;min-width:0;display:flex}.class-dot{background:#607080;border-radius:2px;flex:none;width:8px;height:8px}.class-dot.building{background:#eb8f39}.class-dot.tree{background:#2f7451}.class-dot.road{background:#8e97a3}.class-dot.ground{background:#91744c}.class-dot.water{background:#329dd6}.class-dot.vegetation{background:#8bcd5b}.legend .height-ramp{border-radius:4px;width:150px;height:7px;display:inline-block}.legend .legend-note{color:#6f879b}.depth-mode .viewport-footer{border-color:#68404b}.depth-mode .canvas-badge{border-color:#8a4555}.workspace:after{display:none}.terrain-canvas.waypoint-active canvas{cursor:crosshair}.scene-switcher .label-row label,.waypoint-panel .label-row label{margin-bottom:0}.scene-preview{background:#091724;border:1px solid #263d4d;border-radius:7px;grid-template-columns:72px 1fr;align-items:center;gap:10px;margin:10px 0 8px;padding:7px;display:grid}.scene-preview img{object-fit:cover;border-radius:5px;width:72px;height:54px}.scene-preview strong,.scene-preview small{display:block}.scene-preview strong{font:500 11px IBM Plex Mono}.scene-preview small{color:#718a9c;margin-top:5px;font-size:10px}.scene-switcher select{color:#b7c8d1;background:#0c1a28;border:1px solid #263d4d;border-radius:6px;width:100%;padding:8px;font:10px IBM Plex Mono}.photo-nav,.waypoint-actions{gap:6px;margin-top:7px;display:grid}.photo-nav{grid-template-columns:1fr 1fr}.waypoint-actions{grid-template-columns:1.35fr .8fr .8fr}.photo-nav button,.waypoint-actions button{color:#9db1bf;background:#142638;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-height:31px;padding:7px;font-size:10px;display:flex}.waypoint-actions button.tool-active{color:var(--mint);background:#193b3d}.waypoint-actions button:disabled{cursor:not-allowed;opacity:.38}.waypoint-panel p{color:#6f8799;margin:8px 0 0;font:9px/1.5 IBM Plex Mono}.theme-light .scene-preview,.theme-light .scene-switcher select{color:#3c5965;background:#eef6f5;border-color:#c9dcda}.theme-light .photo-nav button,.theme-light .waypoint-actions button{color:#4d6c76;background:#e4efee}.workspace:after{content:"SCROLL FOR SCENES  ↓";z-index:13;color:#8aa3b4;letter-spacing:1px;pointer-events:none;background:#081522a8;border:1px solid #263f50;border-radius:5px;padding:6px 9px;font:9px IBM Plex Mono;position:absolute;bottom:66px;left:50%;transform:translate(-50%)}:is(.viewport-card:fullscreen,.workspace:fullscreen){background:#07111e;width:100%;height:100%}.workspace:fullscreen .viewport-card{inset:0}.workspace:fullscreen .canvas-wrap{height:100%!important}.bottom-grid{margin:28px 34px 0 88px}.scene-browser{margin:18px 34px 0 88px}footer{margin:0 34px 0 88px;padding:18px 3px 26px}.theme-light header,.theme-light .rail{background:#f7fbfae6;border-color:#c5d9d7;box-shadow:0 12px 35px #48686b22}.theme-light .workspace .viewport-top,.theme-light .workspace .viewport-footer{background:#f5fbfae6;border-color:#c5d9d7}.theme-light .workspace .inspector{background:linear-gradient(145deg,#fbffffef,#eaf3f2ef);border-color:#c5d9d7;box-shadow:0 16px 48px #48686b35}.theme-light .workspace:after{color:#58727e;background:#f5fbfae6;border-color:#c5d9d7}@media (width<=1000px){header{left:74px;right:12px}.rail{left:10px}.workspace .viewport-top{left:74px;right:12px}.workspace .inspector{width:320px;max-height:56vh;top:auto;bottom:58px;right:12px}.canvas-badge,.flight-help{left:74px}.bottom-grid,.scene-browser,footer{margin-left:74px;margin-right:12px}}@media (width<=640px){.rail{flex-direction:row;width:auto;height:48px;padding:6px 9px;inset:auto 10px 10px}.rail-nav,.rail-bottom{flex-direction:row}.rail-nav{margin-left:8px}.rail-bottom{margin-top:0;margin-left:auto}.workspace{min-height:720px}.workspace .viewport-top{top:10px;left:10px;right:10px}.workspace .inspector{width:auto;max-height:43vh;inset:72px 10px}.workspace .viewport-footer{display:none;bottom:72px;left:10px;right:10px}.canvas-badge{top:72px;left:10px}.flight-help{bottom:82px;left:10px}.workspace:after{display:none}.bottom-grid,.scene-browser,footer{margin-left:10px;margin-right:10px}.bottom-grid{margin-top:18px}}.upload-copy{color:#8ea5b5;margin:0;font:11px/1.5 IBM Plex Mono}.upload-dropzone{box-sizing:border-box;color:#cfe3ee;cursor:pointer;text-align:center;background:#0a1825;border:1px dashed #2b4a5f;border-radius:10px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:22px 14px;font:11px IBM Plex Mono;display:flex}.upload-dropzone:hover{background:#0d1f30;border-color:#3f7a9a}.upload-dropzone:disabled{opacity:.6;cursor:wait}.upload-options{flex-direction:column;gap:8px;display:flex}.upload-options label{color:#8ea5b5;flex-direction:column;gap:4px;font:10px IBM Plex Mono;display:flex}.upload-options input[type=number]{color:#cfe3ee;background:#0a1825;border:1px solid #2b4a5f;border-radius:7px;padding:7px 9px;font:11px IBM Plex Mono}.upload-options label.quality-row{flex-direction:row;align-items:flex-start;gap:8px}.upload-options label.quality-row input[type=checkbox]{flex:none;margin:2px 0}.upload-reference{color:#8ea5b5;cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px dashed #2b4a5f;border-radius:7px;padding:8px 10px;font:10px IBM Plex Mono;overflow:hidden}.upload-reference:hover{color:#cfe3ee;border-color:#3f7a9a}.download-row{flex-wrap:wrap;gap:8px;display:flex}.download-row a{color:#cfe3ee;background:#0d1f30;border:1px solid #2b4a5f;border-radius:7px;padding:7px 10px;font:10px IBM Plex Mono;text-decoration:none}.download-row a:hover{border-color:#3f7a9a}.upload-error{color:#ffb3bf;background:#3a1420;border:1px solid #7a2a3a;border-radius:7px;padding:10px 12px;font:10px IBM Plex Mono}.class-breakdown{flex-direction:column;gap:6px;display:flex}.class-breakdown-row{color:#cfe3ee;align-items:center;gap:8px;font:10px IBM Plex Mono;display:flex}.class-breakdown-row span{text-transform:capitalize;color:#8ea5b5;flex:1}.empty-viewport{color:#8ea5b5;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;font:11px/1.5 IBM Plex Mono;display:flex;position:absolute;inset:0}.empty-viewport strong{color:#cfe3ee;font-size:14px}.empty-viewport span{max-width:320px}.empty-viewport button{color:#cfe3ee;cursor:pointer;background:#0d1f30;border:1px solid #3f7a9a;border-radius:8px;margin-top:6px;padding:9px 16px;font:11px IBM Plex Mono}.empty-viewport button:hover{background:#12304a}.upload-reference-row{gap:6px;display:flex}.upload-reference-row .upload-reference{flex:1;min-width:0}.upload-reference-clear{color:#8ea5b5;cursor:pointer;background:0 0;border:1px solid #2b4a5f;border-radius:7px;place-items:center;width:30px;display:grid}.upload-reference-clear:hover{color:#ffb3bf;border-color:#7a2a3a}.quality-row{color:#8ea5b5;justify-content:space-between;align-items:center;gap:8px;font:10px IBM Plex Mono;display:flex}.quality-row .segmented{gap:4px;display:flex}.quality-row .segmented button{color:#8ea5b5;cursor:pointer;background:0 0;border:1px solid #2b4a5f;border-radius:6px;padding:5px 12px;font:10px IBM Plex Mono}.quality-row .segmented button.selected{color:#cfe3ee;background:#12304a;border-color:#3f7a9a}.progress-track{background:#16293a;border-radius:2px;width:100%;height:4px;display:block;overflow:hidden}.progress-fill{background:#8bd2c4;height:100%;transition:width .35s;display:block}.processing-overlay{z-index:5;color:#cfe3ee;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08141feb;border:1px solid #2b4a5f;border-radius:12px;flex-direction:column;gap:8px;width:min(360px,80%);padding:18px 20px;font:11px IBM Plex Mono;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.processing-overlay span{color:#8ea5b5}.processing-overlay small{color:#8bd2c4;align-self:flex-end}.building-card{z-index:4;color:#cfe3ee;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08141fe6;border:1px solid #2b4a5f;border-radius:10px;width:230px;padding:12px 14px;font:11px IBM Plex Mono;position:absolute;top:104px;right:370px}.building-card .label-row{justify-content:space-between;align-items:center;display:flex}.building-card .label-row button{color:#8ea5b5;cursor:pointer;background:0 0;border:0}.building-card dl{grid-template-columns:1fr auto;gap:6px 10px;margin:10px 0 0;display:grid}.building-card dt{color:#8ea5b5}.building-card dd{text-align:right;color:#7ff0d8;margin:0}@media (width<=1000px){.building-card{top:190px;right:18px}}.gcp-result{color:#9fd3c7;background:#0f2229;border:1px solid #1f4a4a;border-radius:6px;margin:8px 0;padding:8px 10px;font:11px/1.5 IBM Plex Mono,monospace}.contour-toggle{color:#9cafbe;cursor:pointer;align-items:center;gap:6px;font-size:11px;margin:10px 0 0!important;display:flex!important}.contour-toggle input{accent-color:var(--mint);margin:0}.walk-toggle{color:#b8c9d2;background:#0b1b29e8;border:1px solid #294254;border-radius:6px;align-items:center;gap:6px;padding:7px 11px;font:11px IBM Plex Mono,monospace;display:flex;position:absolute;bottom:62px;left:50%;transform:translate(-50%)}.walk-toggle.active{color:var(--mint);background:#183b3c;border-color:#2d6664}.validation-detail{margin:8px 0}.validation-note{color:#8ea4b6;margin-bottom:6px;font:10px/1.5 IBM Plex Mono,monospace}.scatter{width:100%;max-width:260px;margin:0 auto;display:block}.scatter circle{fill:#8bd2c4;opacity:.45}.scatter .scatter-frame{fill:#0b1c29;stroke:#1b3646;stroke-width:.5px}.scatter .scatter-diag{stroke:#e9b978;stroke-width:.6px;stroke-dasharray:2 2}.scatter text{fill:#647e94;font:5px IBM Plex Mono,monospace}.class-errors{border-collapse:collapse;color:#aec0cb;width:100%;margin-top:6px;font:10px IBM Plex Mono,monospace}.class-errors th{text-align:left;color:#6f879b;border-bottom:1px solid #1d3043;padding:3px 2px;font-weight:400}.class-errors td{border-bottom:1px solid #13253a;padding:3px 2px}.models-line{color:#7f96aa;margin:6px 0;font:10px/1.5 IBM Plex Mono,monospace}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.app{--paper:#f8fafb;--panel:#eef3f5;--raised:#e6edf0;--rule:#d2dee4;--ink:#213745;--muted:#617985;--accent:#257b92;--accent-soft:#deedf1;--copper:#a96140;--field:#10212d;--top-h:74px;--foot-h:36px;--dock-w:386px;color:var(--ink);background:var(--panel);font-variant-numeric:tabular-nums;min-height:100dvh;font:400 14px DM Sans,sans-serif;display:block}.app.theme-dark{--paper:#182c38;--panel:#142630;--raised:#203846;--rule:#324955;--ink:#e3ebef;--muted:#a1b4bf;--accent:#85c0d0;--accent-soft:#294956;--copper:#dfad8e}.app *{box-sizing:border-box}.app button,.app input,.app select{font-family:DM Sans,sans-serif}.app button{transition:background .14s,border-color .14s}.app button:focus-visible,.app select:focus-visible,.app input:focus-visible,.app a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app button:disabled{opacity:.45;cursor:not-allowed}.app main{width:100%;max-width:none;margin:0;padding:0}.app .workspace{width:100%;height:100dvh;min-height:0;margin:0;position:relative}.app .workspace .viewport-card{inset:var(--top-h) var(--dock-w) var(--foot-h) 0;background:var(--field);border:0;border-radius:0;width:auto;height:auto;position:absolute;overflow:visible}.app .workspace .canvas-wrap{background:var(--field);width:100%;position:absolute;inset:0;overflow:hidden;height:100%!important;min-height:0!important}.app .terrain-canvas{width:100%;height:100%}.app .workspace .viewport-top{height:var(--top-h);background:var(--paper);color:var(--ink);border:0;border-bottom:1px solid var(--rule);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;z-index:30;border-radius:0;align-items:center;gap:26px;padding:0 24px;display:flex;position:fixed;inset:0 0 auto}.app .brand{flex:none;align-items:center;gap:11px;display:flex}.app .brand-mark{width:37px;height:37px;color:var(--accent);border:1px solid var(--rule);background:var(--panel);border-radius:9px;place-items:center;display:grid}.app .brand-mark svg{stroke-width:1.5px;width:23px;height:23px}.app .brand-name{flex-direction:column;line-height:1;display:flex}.app .brand-name b{letter-spacing:-.3px;font:600 28px Barlow Condensed,sans-serif}.app .brand-name small{letter-spacing:1.3px;color:var(--muted);margin-top:5px;font:400 9px IBM Plex Mono,monospace}.app .scene-title{border-left:1px solid var(--rule);flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;padding-left:25px;display:flex}.app .scene-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.app .scene-facts{gap:9px;min-width:0;display:flex;overflow:hidden}.app .scene-facts span{color:var(--muted);white-space:nowrap;background:0 0;border:0;flex-shrink:0;padding:0;font:400 10px IBM Plex Mono,monospace}.app .scene-facts span+span{border-left:1px solid var(--rule);padding-left:9px}.app .view-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.app .view-actions button{border:1px solid var(--rule);background:var(--paper);min-height:36px;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:0 11px;font-size:12px;font-weight:500;display:inline-flex}.app .view-actions button:hover{background:var(--raised)}.app .view-actions .primary-action{background:var(--accent);border-color:var(--accent);color:var(--paper)}.app .view-actions .primary-action:hover{filter:brightness(.93);background:var(--accent)}.app .workspace .viewport-footer{min-height:var(--foot-h);height:var(--foot-h);border:0;border-top:1px solid var(--rule);background:var(--paper);color:var(--muted);-webkit-backdrop-filter:none;backdrop-filter:none;z-index:30;border-radius:0;justify-content:space-between;align-items:center;gap:20px;padding:0 19px;font:400 10px IBM Plex Mono,monospace;display:flex;position:fixed;bottom:0;left:0;right:0}.app .legend,.app .footer-note{align-items:center;gap:9px;min-width:0;display:flex}.app .height-ramp{border-radius:3px;width:96px;height:5px}.app .canvas-badge{color:#c4d4de;background:#142936cc;border:1px solid #55708066;border-radius:4px;padding:7px 10px;font:400 10px IBM Plex Mono,monospace;top:18px;left:20px;right:auto}.app .flight-help{color:#bfd0dc;background:#142936dd;border:1px solid #55708066;border-radius:5px;padding:7px 10px;font-size:10px;bottom:18px;left:20px}.app kbd{color:#d1e1e9;background:#294453;border:0;border-radius:2px;padding:2px 4px;font:400 10px IBM Plex Mono,monospace}.app .walk-toggle{color:#d7e6ed;background:#142936ee;border:1px solid #55708088;border-radius:5px;align-items:center;gap:7px;padding:8px 14px;font-size:12px;display:flex;bottom:18px;left:auto;right:20px;transform:none}.app .walk-toggle.active{color:#fff;background:#257b92}.app .workspace .inspector{top:var(--top-h);bottom:var(--foot-h);width:var(--dock-w);background:var(--paper);max-height:none;color:var(--ink);border:0;border-left:1px solid var(--rule);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;flex-direction:column;padding:0;display:flex;position:absolute;right:0;overflow:hidden}.app .inspector-tabs{border-bottom:1px solid var(--rule);background:var(--panel);align-items:stretch;height:54px;min-height:54px;padding:0 10px;display:flex}.app .inspector-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:0 8px;font-size:12px;font-weight:500;position:relative}.app .inspector-tabs button.selected{color:var(--accent);border-bottom-color:var(--accent);background:var(--paper)}.app .inspector-tabs button:hover{color:var(--ink)}.app .tab-dot{background:var(--copper);border-radius:50%;width:4px;height:4px;position:absolute;top:12px;right:9px}.app .tab-panel{scrollbar-width:thin;scrollbar-color:var(--rule) transparent;flex:1;padding:20px;overflow:hidden auto}.app .tab-panel:focus{outline:none}.app .tab-panel .segmented{border:1px solid var(--rule);background:var(--panel);border-radius:7px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.app .tab-panel .source-switch{grid-template-columns:repeat(3,1fr);margin-bottom:14px}.app .tab-panel .segmented button{min-height:32px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:7px 5px;font-size:12px}.app .tab-panel .segmented button.selected{background:var(--paper);color:var(--accent);font-weight:600;box-shadow:0 1px 3px #14293610}.app .tab-panel .layer-tabs{grid-template-columns:repeat(3,1fr)}.app .backend-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 15px;font-size:11px;line-height:1.6;display:flex}.app .backend-status>i{background:var(--copper);border-radius:50%;flex-shrink:0;width:5px;height:5px}.app .backend-status.online>i{background:var(--accent)}.app .connection-retry{color:var(--accent);background:0 0;border:0;padding:0;font-size:11px;text-decoration:underline}.app .demo-intro{padding:5px 0 17px}.app .eyebrow{color:var(--accent);letter-spacing:1.2px;font:400 9px IBM Plex Mono,monospace}.app .demo-intro h2{color:var(--ink);margin:8px 0 6px;font:600 29px Barlow Condensed,sans-serif}.app .demo-intro p{color:var(--muted);margin:0;font-size:12px;line-height:1.65}.app .scene-switcher{border:0;padding:0}.app .demo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app .demo-card{text-align:left;background:var(--paper);min-width:0;color:var(--ink);border:1px solid var(--rule);border-radius:7px;padding:0;overflow:hidden}.app .demo-card:hover{border-color:var(--accent)}.app .demo-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.app .demo-card-image{aspect-ratio:1.65;background:var(--raised);position:relative;overflow:hidden}.app .demo-card img{object-fit:cover;width:100%;height:100%;display:block}.app .demo-card-image>span,.app .demo-card-image>i{color:#fff;background:#10212dc4;border-radius:3px;padding:3px 5px;font:400 8px IBM Plex Mono,monospace;position:absolute;top:6px;left:6px}.app .demo-card-image>i{background:#257b92;font-style:normal;inset:auto 6px 6px auto}.app .demo-card-copy{flex-direction:column;gap:5px;padding:10px 9px 11px;display:flex}.app .demo-card-copy strong{font-size:12px;font-weight:600}.app .demo-card-copy small{color:var(--muted);font-size:9px;line-height:1.4}.app .scene-notes{border-top:1px solid var(--rule);margin-top:22px;padding-top:17px}.app .scene-notes p,.app .scene-notes>small{color:var(--muted);font-size:11px;line-height:1.7}.app .scene-notes .loaded-scene{color:var(--ink);font-weight:500}.app .source-credit{color:var(--accent);text-underline-offset:3px;font-size:11px}.app .control-section{border-color:var(--rule);padding:17px 0}.app .control-section label,.app .label-row label{color:var(--ink);margin-bottom:8px;font-size:12px;font-weight:500}.app .label-row>span{color:var(--muted);font:400 10px IBM Plex Mono,monospace}.app .tab-empty,.app .upload-copy,.app .waypoint-panel>p{color:var(--muted);font-size:12px;line-height:1.7}.app .tab-empty{margin:12px 0}.app .metric-grid{gap:9px;margin:0 0 20px}.app .metric-grid>div{border:1px solid var(--rule);background:var(--panel);border-radius:6px;padding:12px}.app .metric-grid small{color:var(--muted);font-size:10px}.app .metric-grid strong{color:var(--ink);margin:8px 0 5px;font:400 20px IBM Plex Mono,monospace}.app .metric-grid em{color:var(--accent);font-size:10px;font-style:normal}.app .metric-grid em.neutral{color:var(--muted)}.app .download-row{flex-direction:column;gap:7px;margin-top:15px;display:flex}.app .download-row a{border:1px solid var(--rule);color:var(--accent);background:var(--panel);border-radius:5px;padding:10px 11px;font-size:11px;font-weight:500;text-decoration:none}.app .download-row a:hover{border-color:var(--accent);background:var(--accent-soft)}.app .class-legend,.app .class-breakdown{color:var(--muted);font-size:11px}.app .class-breakdown-row{border-color:var(--rule)}.app .class-breakdown-row strong{color:var(--ink)}.app .upload-copy{margin:0 0 14px}.app .upload-switcher>.upload-reference{width:100%;margin-top:10px}.app .upload-options{flex-direction:column;gap:12px;display:flex}.app .upload-options label small{color:var(--muted);font-size:11px}.app input[type=number],.app select{background:var(--paper);border:1px solid var(--rule);width:100%;color:var(--ink);border-radius:5px;min-height:38px;padding:10px;font-size:12px}.app .upload-reference,.app .upload-reference-clear{border:1px solid var(--rule);color:var(--muted);background:var(--panel);border-radius:5px;font-size:11px}.app .upload-options .segmented{margin-top:6px}.app .upload-dropzone{background:var(--accent-soft);border:1px dashed var(--accent);width:100%;color:var(--accent);border-radius:7px;margin-top:16px;padding:24px 12px;font-size:12px}.app .upload-error{background:var(--panel);color:var(--copper);border:1px solid var(--rule);border-radius:5px;padding:12px;font-size:12px;line-height:1.6}.app .models-line,.app .dino-credit{color:var(--muted);font-size:10px;line-height:1.6}.app .contour-toggle{color:var(--muted);align-items:center;gap:8px;margin:10px 0;font-size:11px;line-height:1.5;display:flex}.app .contour-toggle input{accent-color:var(--accent);flex-shrink:0}.app input[type=range]{accent-color:var(--accent)}.app .range-labels,.app .profile-values{color:var(--muted);font:400 10px IBM Plex Mono,monospace}.app .sparkline{background:var(--panel);border-color:var(--rule)}.app .profile-values strong{color:var(--ink)}.app .text-btn{color:var(--accent);font-size:11px}.app .waypoint-actions,.app .tool-row{gap:8px}.app .waypoint-actions button,.app .tool-row button{color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:5px;min-height:36px;font-size:11px}.app .waypoint-actions button.tool-active,.app .tool-row button.tool-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.app .tool-row{border-color:var(--rule)}.app .scene-preview{border-color:var(--rule);background:var(--panel);color:var(--ink)}.app .scene-preview small{color:var(--muted)}.app .photo-nav button{color:var(--accent);background:var(--panel);border:1px solid var(--rule);border-radius:5px;min-height:33px;font-size:11px}.app .gcp-result{background:var(--panel);border:1px solid var(--rule);color:var(--ink);border-radius:6px;margin:12px 0;padding:14px;font-size:12px;line-height:1.8}.app .facility-dot{border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.app .validation-detail{color:var(--muted)}.app .validation-detail svg{background:var(--panel);border-color:var(--rule)}.app .validation-detail table{color:var(--ink);border-collapse:collapse;width:100%;font-size:10px}.app .validation-detail th,.app .validation-detail td{border-bottom:1px solid var(--rule);padding:7px 4px}.app .building-card{background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:7px;padding:14px;top:55px;left:20px;right:auto}.app .building-card button{color:var(--muted);background:0 0}.app .building-card dt{color:var(--muted)}.app .processing-overlay{color:#e3eef3;background:#10212dde;border-color:#557080}.app .toast{border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:6px;padding:12px 17px;bottom:50px;box-shadow:0 6px 24px #10212d20}.app .measure-hint{border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:6px;max-width:min(680px,92vw);padding:10px 15px;font-size:11px;bottom:95px}.app .measure-hint svg:last-child{color:var(--muted)}.app .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=1600px){.app{--dock-w:420px}.app .tab-panel{padding:24px}}@media (width<=1100px){.app{--dock-w:345px}.app .viewport-top{gap:17px;padding:0 16px}.app .scene-title{padding-left:17px}.app .scene-facts span:nth-child(n+3){display:none}.app .view-actions{gap:5px}.app .view-actions button[aria-label=Play\ route]{display:none}.app .flight-help{max-width:calc(100% - 120px);line-height:1.6}.app .tab-panel{padding:17px}}@media (width<=760px){.app{--top-h:66px}.app .workspace{height:auto;min-height:100dvh;padding-top:var(--top-h);padding-bottom:var(--foot-h)}.app .workspace .viewport-card{width:100%;height:52dvh;min-height:320px;position:relative;inset:auto}.app .workspace .inspector{border-left:0;border-top:1px solid var(--rule);width:100%;height:58dvh;min-height:440px;position:relative;inset:auto}.app .workspace .viewport-top{height:var(--top-h);gap:12px;padding:0 12px}.app .brand-mark{background:0 0;border:0;width:28px;height:32px}.app .brand-mark svg{width:22px}.app .brand{gap:4px}.app .brand-name b{font-size:24px}.app .brand-name small{letter-spacing:.8px;font-size:7px}.app .scene-title{gap:5px;padding-left:12px}.app .scene-title strong{font-size:13px}.app .scene-facts,.app .view-actions .primary-action,.app .view-actions button[aria-label=Play\ route],.app .view-actions button[aria-label=Enter\ fullscreen]{display:none}.app .view-actions button{min-height:32px;padding:0 8px;font-size:11px}.app .tab-panel{padding:20px}.app .demo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app .demo-card-image{aspect-ratio:1.9}.app .demo-card-copy strong{font-size:13px}.app .demo-card-copy small{font-size:10px}.app .workspace .viewport-footer{height:var(--foot-h);padding:0 12px;font-size:8px}.app .footer-note,.app .flight-help{display:none}.app .canvas-badge{top:12px;left:12px}.app .walk-toggle{bottom:12px;right:12px}.app .measure-hint{bottom:54px}}@media (prefers-reduced-motion:reduce){.app button{transition:none}}.app .class-note{color:var(--muted);flex-basis:100%;grid-column:1/-1;font-size:11px;line-height:1.5}
