:root{--sidebar-width:25vw;--topbar-height:48px;--floating-panel-toggle-size:38px;--floating-panel-toggle-icon:20px;--floating-panel-toggle-radius:8px;--page-bg:#f4f7fb;--text-color:#1f2937;--panel-bg:#fff;--panel-border:#dbe3ef;--tree-bg:#f8fbff;--tree-border:#dbe3ef;--tree-text:#1f2937;--tree-button-bg:#fff;--tree-button-text:#1f2937;--tree-button-border:#cfd8e6;--code-bg:#f8fafc;--code-text:#0f172a;--bim-ui_main-base:#2563eb;--bim-ui_main-contrast:#fff;--bim-ui_accent-base:#3b82f6;--bim-ui_accent-contrast:#fff;--bim-ui_bg-base:#fff;--bim-ui_bg-contrast-20:#f2f6fb;--bim-ui_bg-contrast-40:#dbe3ef;--bim-ui_bg-contrast-60:#c5d2e6;--bim-ui_bg-contrast-80:#5b6b84;--bim-ui_bg-contrast-100:#0f172a;--bim-panel--c:#0f172a;--bim-label--c:#0f172a}body[data-theme=dark]{--page-bg:#0f172a;--text-color:#e5e7eb;--panel-bg:#111827;--panel-border:#263244;--tree-bg:#1f2937;--tree-border:#334155;--tree-text:#e5e7eb;--tree-button-bg:#111827;--tree-button-text:#f3f4f6;--tree-button-border:#4b5563;--code-bg:#0b1220;--code-text:#d9f7be;--bim-ui_main-base:#3b82f6;--bim-ui_main-contrast:#fff;--bim-ui_accent-base:#60a5fa;--bim-ui_accent-contrast:#0f172a;--bim-ui_bg-base:#0f172a;--bim-ui_bg-contrast-20:#1f2937;--bim-ui_bg-contrast-40:#334155;--bim-ui_bg-contrast-60:#4b5f7a;--bim-ui_bg-contrast-80:#dbe5f5;--bim-ui_bg-contrast-100:#f8fafc;--bim-panel--c:#f8fafc;--bim-label--c:#f8fafc}html,body{background:var(--page-bg);width:100%;height:100%;color:var(--text-color);margin:0;font-family:Arial,sans-serif;overflow:hidden}#app-grid{grid-template:"header header header" var(--topbar-height) "sidebar resizer content" 1fr / var(--sidebar-width) 8px 1fr;width:100vw;height:100vh;display:grid;overflow:hidden}#topbar{background:var(--panel-bg);border-bottom:1px solid var(--panel-border);width:100%;height:var(--topbar-height);box-sizing:border-box;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;display:flex}#topbar-brand{-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar-logo-picture{flex-shrink:0;align-items:center;line-height:0;display:flex}#topbar-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:140px;height:28px;display:block}#topbar-title{color:var(--text-color);white-space:nowrap;letter-spacing:-.01em;font-size:15px;font-weight:700}#topbar-end{flex-shrink:0;align-items:center;gap:4px;display:flex}.topbar-button{border:1px solid var(--tree-button-border);background:var(--tree-button-bg);color:var(--tree-button-text);cursor:pointer;border-radius:8px;padding:8px 12px;font-size:14px;transition:background-color .16s,border-color .16s,color .16s}.topbar-button:hover{background:#3b82f61f;border-color:#3b82f6}.topbar-button.is-active{color:#fff;background:#3b82f6;border-color:#2563eb}.topbar-icon-btn{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.topbar-icon-btn svg{pointer-events:none;width:18px;height:18px}.topbar-theme-icon{flex-shrink:0;width:18px;height:18px;display:none}body[data-theme=light] #icon-theme-light,body[data-theme=dark] #icon-theme-dark{display:block}.topbar-only-mobile{display:none!important}@media (max-width:1024px){.topbar-only-mobile{display:inline-flex!important}}#sidebar{background:var(--panel-bg);border-right:1px solid var(--panel-border);flex-direction:column;min-width:0;min-height:0;display:flex}.sidebar-chrome{border-bottom:1px solid var(--panel-border);background:var(--panel-bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.sidebar-chrome-title{color:var(--text-color);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-size:14px;font-weight:700;overflow:hidden}.sidebar-collapse-btn{border:1px solid var(--tree-button-border);background:var(--tree-button-bg);width:34px;height:34px;color:var(--tree-button-text);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .16s,border-color .16s;display:inline-flex}.sidebar-collapse-btn:hover{background:#3b82f61f;border-color:#3b82f6}.sidebar-collapse-btn svg{pointer-events:none;width:20px;height:20px}.sidebar-scroll{flex:1;min-height:0;padding:8px;overflow:hidden auto}.sidebar-expand-btn{left:8px;top:calc(var(--topbar-height) + 10px);z-index:25;width:var(--floating-panel-toggle-size);height:var(--floating-panel-toggle-size);border-radius:var(--floating-panel-toggle-radius);border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--tree-button-text);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background-color .16s,border-color .16s;display:none;position:fixed;box-shadow:0 2px 10px #00000024}.sidebar-expand-btn:hover{background:#3b82f61f;border-color:#3b82f6}.sidebar-expand-btn svg{width:var(--floating-panel-toggle-icon);height:var(--floating-panel-toggle-icon);pointer-events:none}@media (min-width:1025px){body.sidebar-desktop-collapsed #app-grid{grid-template-columns:0 0 1fr}body.sidebar-desktop-collapsed #sidebar{pointer-events:none;border-right-width:0;overflow:hidden}body.sidebar-desktop-collapsed #sidebar-resizer{display:none}body.sidebar-desktop-collapsed .sidebar-expand-btn{display:inline-flex}}#sidebar-resizer{cursor:col-resize;border-left:1px solid var(--panel-border);border-right:1px solid var(--panel-border);background:0 0;width:8px;height:100%}#sidebar-resizer:hover{background:#3b82f62e}#viewer-wrapper{min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}#viewer-container{width:100%;height:100%}#viewer-nav{z-index:25;background:var(--panel-bg);border:1px solid var(--panel-border);opacity:.94;border-radius:10px;flex-direction:column;gap:4px;padding:6px;transition:opacity .15s,padding .18s,background .18s,border-color .18s,box-shadow .18s;display:flex;position:absolute;top:10px;right:8px;box-shadow:0 2px 10px #00000024}#viewer-nav:hover{opacity:1}#viewer-nav.viewer-nav--collapsed{box-shadow:none;background:0 0;border-color:#0000;align-items:center;gap:0;padding:0}.viewer-nav-toggle{width:100%;min-height:30px;color:var(--tree-button-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background-color .14s,border-color .14s,box-shadow .14s;display:inline-flex}.viewer-nav-toggle:hover{background:#3b82f61f;border-color:#3b82f6}#viewer-nav.viewer-nav--collapsed .viewer-nav-toggle{width:var(--floating-panel-toggle-size);height:var(--floating-panel-toggle-size);min-height:var(--floating-panel-toggle-size);border:1px solid var(--panel-border);border-radius:var(--floating-panel-toggle-radius);background:var(--panel-bg);box-shadow:0 2px 10px #00000024}#viewer-nav.viewer-nav--collapsed .viewer-nav-toggle:hover{background:#3b82f61f;border-color:#3b82f6}.viewer-nav-toggle-icon{width:var(--floating-panel-toggle-icon);height:var(--floating-panel-toggle-icon);pointer-events:none}#viewer-nav:not(.viewer-nav--collapsed) .viewer-nav-toggle-icon{width:18px;height:18px}.viewer-nav-toggle-icon--collapsed,#viewer-nav.viewer-nav--collapsed .viewer-nav-toggle-icon--expanded{display:none}#viewer-nav.viewer-nav--collapsed .viewer-nav-toggle-icon--collapsed{display:block}.viewer-nav-body{flex-direction:column;gap:3px;display:flex}#viewer-nav.viewer-nav--collapsed .viewer-nav-body{display:none}.viewer-nav-btn{color:var(--tree-button-text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:5px;width:68px;height:28px;font-size:11px;font-weight:600;transition:background-color .14s,border-color .14s;display:inline-flex}.viewer-nav-btn svg{pointer-events:none;flex-shrink:0;width:13px;height:13px}.viewer-nav-btn:hover{background:#3b82f61f;border-color:#3b82f6}.viewer-nav-btn:active{background:#3b82f638}.viewer-nav-sep{background:var(--panel-border);width:100%;height:1px;margin:2px 0}#viewer-toolbar{z-index:10;background:var(--panel-bg);border:1px solid var(--panel-border);opacity:.94;border-radius:10px;align-items:center;gap:4px;padding:5px 8px;transition:opacity .15s;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000029}#viewer-toolbar:hover{opacity:1}.viewer-toolbar-btn{color:var(--tree-button-text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;transition:background-color .14s,border-color .14s;display:inline-flex}.viewer-toolbar-btn svg{pointer-events:none;flex-shrink:0;width:15px;height:15px}.viewer-toolbar-btn:hover{background:#3b82f61f;border-color:#3b82f6}.viewer-toolbar-btn:active{background:#3b82f638}.viewer-toolbar-sep{background:var(--panel-border);flex-shrink:0;width:1px;height:20px;margin:0 2px}.properties-section{flex-direction:column;gap:8px;display:flex}.properties-toolbar{justify-content:flex-end;display:flex}.properties-toggle{background:var(--tree-button-bg);color:var(--tree-button-text);border:1px solid var(--tree-button-border);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:12px;transition:background-color .16s,border-color .16s,color .16s}.properties-toggle:hover:not(:disabled){background:#3b82f61f;border-color:#3b82f6}.properties-toggle.is-active{color:#fff;background:#3b82f6;border-color:#2563eb}.properties-toggle:disabled{cursor:not-allowed;opacity:.45}.properties-body{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:6px;max-height:70vh;overflow:auto}.properties-formatted{min-height:1.5rem}.properties-formatted.properties-empty{color:var(--text-color);opacity:.88;padding:10px 12px;font-size:13px;line-height:1.4}.properties-json{white-space:pre-wrap;word-break:break-word;color:var(--code-text);background:var(--code-bg);box-sizing:border-box;min-height:4rem;margin:0;padding:10px 12px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:11px;line-height:1.45;display:block}.properties-json[hidden],.properties-formatted[hidden]{display:none}.properties-table{border-collapse:collapse;width:100%;font-size:12px}.properties-table th{text-align:left;vertical-align:top;border-bottom:1px solid var(--panel-border);width:38%;color:var(--text-color);background:var(--code-bg);padding:8px 10px;font-weight:600}.properties-table td{border-bottom:1px solid var(--panel-border);color:var(--text-color);padding:8px 10px}.properties-table tbody tr:last-child th,.properties-table tbody tr:last-child td{border-bottom:none}.properties-value{white-space:pre-wrap;word-break:break-word;line-height:1.45}.properties-type-hint{letter-spacing:.03em;color:var(--bim-ui_bg-contrast-80);margin-top:4px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:10px}#storey-tree,#category-tree{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.tree-item{background:var(--tree-bg);color:var(--tree-text);border:1px solid var(--tree-border);border-radius:6px;justify-content:space-between;align-items:center;gap:6px;padding:6px;font-size:12px;display:flex}.tree-item button{background:var(--tree-button-bg);color:var(--tree-button-text);border:1px solid var(--tree-button-border);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:11px;transition:background-color .16s,border-color .16s,color .16s}.tree-item button:hover{background:#3b82f61f;border-color:#3b82f6}.tree-item button.is-active{color:#fff;background:#3b82f6;border-color:#2563eb}.sidebar-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:4px;margin-bottom:8px;overflow:hidden}.sidebar-panel-title{color:var(--text-color);border-bottom:1px solid var(--panel-border);background:var(--panel-bg);padding:1rem;font-size:15px;font-weight:700;line-height:1.2}.sidebar-section{border-bottom:1px solid var(--panel-border)}.sidebar-section:last-child{border-bottom:none}.sidebar-section-btn{cursor:pointer;text-align:left;width:100%;color:var(--text-color);box-sizing:border-box;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;min-height:3rem;padding:.75rem 1rem;font-size:13px;font-weight:600;transition:background-color .15s;display:flex}.sidebar-section-btn:hover{background:var(--tree-bg)}.sidebar-section-chevron{width:1.125rem;height:1.125rem;color:var(--bim-ui_bg-contrast-80);flex-shrink:0;transition:transform .25s cubic-bezier(.65,.05,.36,1)}.sidebar-section-btn[aria-expanded=false] .sidebar-section-chevron{transform:rotate(180deg)}.sidebar-section-body{padding:12px}.sidebar-section-body[hidden]{display:none}@media (max-width:1024px){#app-grid{grid-template:"header" var(--topbar-height) "content" 1fr / 1fr}#viewer-wrapper{height:100%;min-height:0}#sidebar{top:var(--topbar-height);z-index:20;border-right:1px solid var(--panel-border);width:min(88vw,380px);max-width:380px;transition:transform .2s;position:fixed;bottom:0;left:0;transform:translate(-102%);box-shadow:0 6px 18px #00000040}#sidebar-resizer{display:none}body.sidebar-open #sidebar{transform:translate(0)}}@media (max-width:640px){.sidebar-scroll{padding:6px!important}.sidebar-chrome{padding-left:6px;padding-right:6px}.topbar-icon-btn{width:32px;height:32px}#viewer-toolbar{gap:2px;padding:4px 6px;bottom:10px}.viewer-toolbar-btn{gap:4px;padding:5px 8px;font-size:12px}.viewer-toolbar-btn svg{width:13px;height:13px}}
