:root{--bg-app: #1a1a2e;--bg-panel: #16213e;--bg-sunken: #0f3460;--bg-deep: #0a0a23;--accent: #e94560;--accent-dim: #c93050;--link: #4488ff;--border: #1a508b;--border-dim: #1a3060;--text-hi: #eee;--text-mid: #aab;--text-lo: #778}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg-app);color:var(--text-hi);font-family:Segoe UI,Arial,sans-serif;font-size:13px;overflow:hidden}#app{height:100vh}.bim-app{display:grid;grid-template-rows:40px minmax(0,1fr) 24px;height:100%}.bim-toolbar{display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--bg-panel);border-bottom:1px solid var(--border-dim);white-space:nowrap}.bim-title{font-size:15px;margin-right:10px}.bim-toolbar .spacer{flex:1}.toolbar-group{display:flex;align-items:center;gap:4px;padding:0 8px;border-left:1px solid var(--border-dim)}.btn{background:var(--bg-sunken);color:var(--text-hi);border:1px solid var(--border-dim);font-family:inherit;font-size:11px;padding:4px 10px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--border)}.btn:disabled{color:var(--text-lo);cursor:default}.btn.active{background:var(--accent);border-color:var(--accent-dim);color:#fff}.toolbar-check{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-mid);cursor:pointer}.bim-toolbar select{background:var(--bg-sunken);color:var(--text-hi);border:1px solid var(--border-dim);font-family:inherit;font-size:11px}.bim-toolbar input[type=range]{width:90px}.bim-main{display:grid;grid-template-columns:240px minmax(0,1fr) 300px;min-height:0}.side-panel{background:var(--bg-panel);overflow:auto;min-height:0}.side-panel.left{border-right:1px solid var(--border-dim)}.side-panel.right{border-left:1px solid var(--border-dim)}.panel-header{font-family:Consolas,Courier New,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-mid);background:var(--bg-sunken);padding:6px 8px;position:sticky;top:0;z-index:1}.canvas-wrap{position:relative;background:var(--bg-deep);min-width:0;min-height:0}.canvas-wrap canvas{display:block;width:100%;height:100%}.bim-status{display:flex;align-items:center;padding:0 10px;background:var(--bg-panel);border-top:1px solid var(--border-dim);font-family:Consolas,Courier New,monospace;font-size:11px;color:var(--text-mid);white-space:nowrap;overflow:hidden}.spatial-tree{padding-bottom:8px}.spatial-tree ul{list-style:none;margin:0;padding-left:12px}.spatial-tree>ul{padding-left:4px}.tree-empty{color:var(--text-lo);padding:10px 8px;font-size:12px}.tree-row{display:flex;align-items:center;gap:4px;padding:1px 4px;font-size:12px;cursor:pointer;white-space:nowrap}.tree-row:hover{background:var(--bg-sunken)}.tree-row.selected{background:var(--bg-sunken);outline:1px solid var(--accent)}.tree-caret{flex:none;width:12px;color:var(--text-lo);user-select:none}.tree-label{overflow:hidden;text-overflow:ellipsis}.tree-cat{color:var(--text-lo);font-size:10px;flex:none}.prop-panel{font-size:12px}.prop-empty{color:var(--text-lo);padding:10px 8px}.prop-head{display:flex;flex-direction:column;gap:6px;padding:8px;border-bottom:1px solid var(--border-dim)}.prop-name{width:100%;background:var(--bg-sunken);border:1px solid var(--border-dim);color:var(--text-hi);font-family:inherit;font-size:13px;padding:3px 6px}.prop-name:focus{border-color:var(--accent);outline:none}.prop-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:0}.prop-meta dt{color:var(--text-lo)}.prop-meta dd{margin:0;color:var(--text-mid);overflow-wrap:anywhere}.mono{font-family:Consolas,Courier New,monospace;font-size:11px}.pset-name{font-family:Consolas,Courier New,monospace;font-size:11px;letter-spacing:.5px;color:var(--text-mid);background:var(--bg-sunken);padding:4px 8px;margin-top:6px}table.pset-table{width:100%;border-collapse:collapse;table-layout:fixed}.pset-table td{border-bottom:1px solid var(--border-dim);padding:2px 6px;vertical-align:top;overflow-wrap:anywhere}td.prop-key{color:var(--text-mid);width:46%}td.prop-val{cursor:pointer;color:var(--text-hi)}td.prop-val:hover{outline:1px solid var(--border)}.prop-val input{width:100%;background:var(--bg-sunken);border:1px solid var(--accent);color:var(--text-hi);font:inherit;padding:1px 3px}.badge{font-size:9px;padding:0 3px;margin-left:4px;border:1px solid var(--border-dim);color:var(--text-lo);vertical-align:middle}.badge.occ{color:var(--link);border-color:var(--link)}.ifc-type{color:var(--text-lo);font-size:10px;margin-left:4px}.welcome-box{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);background:var(--bg-panel);border:1px solid var(--border);padding:18px 24px;max-width:380px;text-align:center}.welcome-box p{color:var(--text-mid);margin:0 0 12px}
