:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f5f7fa;background:#07111f;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#4c78ff3d,#0000 32%),linear-gradient(#07111f 0%,#09172c 100%);min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.page{max-width:1360px;margin:0 auto}.page--list-mode{align-content:start;width:100%;max-width:none;min-height:calc(100vh - 4rem)}.page--viewer{width:100%;max-width:none;height:100%;min-height:0;position:relative;overflow:hidden}.page-title{margin:0;font-size:2rem}.page-subtitle{color:#ffffffb8;margin:.75rem 0 0}.panel{background:#0b1424db;border:1px solid #ffffff14;border-radius:.55rem;padding:1rem;box-shadow:0 10px 28px #0003}.panel--sidebar-fill{align-content:start;gap:.85rem;display:grid}.panel h2,.panel h3{margin-top:0}.grid{gap:1rem;display:grid}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;display:grid}.metric-card{background:#ffffff06;border:1px solid #ffffff0f;border-radius:.5rem;padding:.8rem}.metric-label{color:#ffffffa8;font-size:.9rem;display:block}.metric-value{margin-top:.25rem;font-size:1rem;font-weight:600;display:block}.button-row{flex-wrap:wrap;gap:.5rem;display:flex}.button{color:#fff;cursor:pointer;background:linear-gradient(#4c78ff 0%,#3e66df 100%);border:1px solid #82a7ff3d;border-radius:.45rem;justify-content:center;align-items:center;min-height:2rem;padding:.42rem .8rem;font-size:.9rem;font-weight:600;line-height:1.2;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.65}.button--secondary{background:#ffffff0d;border-color:#ffffff1a}.button--ghost{background:0 0;border-color:#ffffff24}.button--compact{border-radius:.38rem;min-height:1.75rem;padding:.32rem .65rem;font-size:.82rem}.field{gap:.45rem;display:grid}.field--compact{gap:.35rem}.field label{color:#ffffffc7;font-size:.9rem;font-weight:600}.field input,.field textarea{width:100%;color:inherit;background:#ffffff0a;border:1px solid #ffffff24;border-radius:.45rem;padding:.65rem .8rem}.field textarea{resize:vertical;min-height:100px}.muted{color:#ffffffb8}.danger{color:#ff8b8b}.success{color:#83f0c6}.empty-state{text-align:center;padding:2rem}.status-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.status-item{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .85rem;display:flex}.status-item--active{border-color:#82a7ffcc}.status-item--done{border-color:#83f0c673}.status-pill{white-space:nowrap;background:#ffffff14;border-radius:999px;padding:.2rem .55rem;font-size:.82rem}.list-dropzone{border:1px dashed #ffffff14;border-radius:.7rem;padding:1rem;transition:border-color .12s,background .12s,box-shadow .12s;position:relative}.list-dropzone--active{background:#4c78ff0d;border-color:#82a7ff9e;box-shadow:inset 0 0 0 1px #82a7ff3d}.list-dropzone--busy{border-color:#83f0c647}.list-dropzone-status{background:#080d16eb;gap:.5rem;display:grid}.list-dropzone-title{margin:0;font-size:1rem;font-weight:700}.explorer-list{max-width:100%;padding:0;overflow:auto hidden}.explorer-list-header,.explorer-row{grid-template-columns:minmax(240px,2.2fr) minmax(140px,1.3fr) minmax(90px,.7fr) minmax(90px,.7fr) minmax(80px,.6fr) auto;align-items:center;gap:.75rem;display:grid}.explorer-list-header{color:#ffffff94;letter-spacing:.06em;text-transform:uppercase;background:#ffffff08;border-bottom:1px solid #ffffff14;padding:.7rem 1rem;font-size:.75rem;font-weight:700}.explorer-list-header-action{text-align:right}.explorer-row{border-bottom:1px solid #ffffff0f;padding:.8rem 1rem;transition:background .12s,border-color .12s}.explorer-row:last-child{border-bottom:0}.explorer-row:hover{background:#ffffff09}.explorer-row-name{min-width:0;display:grid}.explorer-row-title,.explorer-row-subtitle,.explorer-row-cell{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.explorer-row-title{font-size:.95rem}.explorer-row-subtitle{margin-top:.15rem;font-size:.84rem}.explorer-row-cell{font-size:.9rem}.explorer-row-action{justify-content:flex-end;display:flex}.model-layout{--viewer-dock-resize-handle-width:6px;--viewer-sidebar-rail-min:1.75rem;background:#03070f;height:100%;min-height:0;position:relative;overflow:hidden}.viewer-toolbar{flex-wrap:wrap;gap:.6rem;display:flex}.viewer-toolbar--panel{grid-template-columns:1fr;display:grid}.viewer-toolbar .button{border-radius:.45rem;padding:.4rem .7rem}.viewer-surface{height:auto;min-height:0;box-shadow:none;z-index:0;pointer-events:auto;background:#03070f;border:0;border-radius:0;position:absolute;inset:0;overflow:hidden}.viewer-surface>div{pointer-events:auto;width:100%;height:100%}.viewer-sidebar{grid-template-columns:minmax(var(--viewer-sidebar-rail-min), max-content) var(--viewer-dock-resize-handle-width,6px) minmax(0, 1fr);z-index:20;pointer-events:none;gap:0;max-width:100%;height:auto;min-height:0;display:grid;position:absolute;top:0;bottom:0;overflow:hidden}.viewer-sidebar--right{left:auto;right:0}.viewer-sidebar--left{grid-template-columns:minmax(0, 1fr) var(--viewer-dock-resize-handle-width,6px) minmax(var(--viewer-sidebar-rail-min), max-content);left:0;right:auto}.viewer-sidebar--left-no-rail{grid-template-columns:minmax(0, 1fr) var(--viewer-dock-resize-handle-width,6px)}.viewer-dock-resize-handle{touch-action:none;cursor:col-resize;background:#080d16eb;border:0;align-self:stretch;min-height:0;margin:0;padding:0}.viewer-dock-resize-handle:hover,.viewer-dock-resize-handle:focus-visible{background:#080d16eb}.viewer-dock-resize-handle:focus{outline:none}.viewer-dock-resize-handle:focus-visible{outline-offset:-1px;outline:1px solid #82a7ff8c}.viewer-sidebar>*{pointer-events:auto}.panel--rail{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:none;border-right-width:0;border-radius:0;flex-direction:column;align-self:start;align-items:center;gap:0;min-height:0;padding-block:0 .45rem;padding-inline:.5rem;display:flex;overflow:visible}.panel--rail--left{border:none;border-radius:0}.panel--dock{border-radius:0;align-content:start;gap:1rem;height:100%;min-height:0;display:grid;overflow:hidden auto}.viewer-sidebar-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080d16eb;border:1px solid #ffffff14;border-radius:0;padding:1.5rem 1.35rem;box-shadow:0 10px 28px #0003}.viewer-sidebar-panel h2,.viewer-sidebar-panel h3{margin-top:0}.viewer-sidebar:not(.viewer-sidebar--left) .panel--rail{align-items:flex-end;padding-block:0 .45rem;padding-inline:.5rem 0}.viewer-sidebar:not(.viewer-sidebar--left) .viewer-sidebar-panel{padding-block:1.15rem;padding-inline:0 1.35rem}.viewer-sidebar--left .panel--rail{align-items:flex-start;padding-block:0 .45rem;padding-inline:0 .5rem}.viewer-sidebar--left .viewer-sidebar-panel{padding-inline-end:0}.viewer-dock{border-right:0;border-radius:0;grid-template-rows:auto auto minmax(0,1fr)}.viewer-dock--left{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;grid-template-rows:minmax(0,1fr)}.viewer-sidebar-panel.viewer-dock--left{padding:0}.viewer-dock-scroll--outliner .empty-panel-state{margin:1rem}.viewer-dock-scroll{flex-direction:column;min-height:0;display:flex;overflow:auto}.viewer-dock-scroll--outliner{flex:1;height:100%;min-height:0}.scene-tree-host{flex:1;height:100%;min-height:0;overflow:auto}.scene-tree-host bim-table{cursor:pointer}.thatopen-ui-host{color:#f5f7faeb;--bim-ui_bg-base:#0c121cf2;--bim-ui_bg-contrast:#141c2afa;min-height:2rem}.thatopen-ui-host--tree{min-height:4rem}.viewer-dock-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:flex-start;gap:.75rem;padding-bottom:.85rem;display:flex}.viewer-dock-heading{min-width:0}.viewer-dock-title{margin:0;font-size:1rem}.viewer-dock-subtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:.2rem 0 0;font-size:.84rem;overflow:hidden}.sidebar-tab{box-sizing:border-box;width:fit-content;max-width:100%;min-width:var(--viewer-sidebar-rail-min);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffffffc7;cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;transform-origin:50%;text-transform:uppercase;letter-spacing:.14em;background:#080d16f0;border:1px solid #ffffff1f;border-radius:0 .5rem 0 0;justify-content:center;align-items:center;margin:0;padding:1rem 0;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;transform:rotate(180deg)}.sidebar-tab--active{color:#f5f7fa;background:#142448f5;border-color:#82a7ff80}.panel--rail .sidebar-tab{flex-shrink:0;position:relative}.panel--rail .sidebar-tab:first-child{z-index:8}.panel--rail .sidebar-tab:nth-child(2){z-index:7}.panel--rail .sidebar-tab:nth-child(3){z-index:6}.panel--rail .sidebar-tab:nth-child(4){z-index:5}.panel--rail .sidebar-tab:nth-child(5){z-index:4}.panel--rail .sidebar-tab:nth-child(6){z-index:3}.panel--rail .sidebar-tab:nth-child(7){z-index:2}.panel--rail .sidebar-tab:nth-child(8){z-index:1}.panel--rail .sidebar-tab:not(:first-child){margin-top:-5px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.panel-heading--split{align-items:center}.view-dimension-switch{background:#0e111a;border:1px solid #343a48;border-radius:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.view-dimension-button{color:#c8cedc;letter-spacing:.04em;cursor:default;background:#181c28;border:1px solid #282c38;border-radius:.4rem;min-height:2rem;margin:0;font-size:.82rem;font-weight:700;transition:background .12s,border-color .12s,color .12s}.view-dimension-button--active{color:#f5f7ff;background:#304ca8;border-color:#648ae8}.viewer-action-grid{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;display:grid}.panel-kicker{letter-spacing:.12em;text-transform:uppercase;color:#8fb2ffd9;margin:0 0 .3rem;font-size:.72rem;font-weight:700}.panel-badge{color:#dce7ff;background:#4c78ff29;border:1px solid #82a7ff33;border-radius:999px;justify-content:center;align-items:center;min-width:2rem;padding:.3rem .6rem;font-size:.85rem;font-weight:700;display:inline-flex}.selection-details{gap:.85rem;display:grid}.selection-header{border-bottom:1px solid #ffffff14;gap:.25rem;padding-bottom:.85rem;display:grid}.selection-label{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8f;font-size:.75rem;font-weight:700}.empty-panel-state{text-align:center;background:#ffffff05;border:1px dashed #ffffff1f;border-radius:.85rem;place-items:center;min-height:16rem;padding:1rem;display:grid}.dock-section{gap:.85rem;display:grid}.detail-list{background:#ffffff05;border:1px solid #ffffff14;border-radius:.5rem;display:grid;overflow:hidden}.detail-row{border-bottom:1px solid #ffffff0f;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:.75rem;padding:.65rem .8rem;display:grid}.detail-row:last-child{border-bottom:0}.detail-label{letter-spacing:.05em;text-transform:uppercase;color:#ffffff8f;font-size:.76rem;font-weight:700}.detail-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.class-list{gap:.55rem;max-height:320px;display:grid;overflow:auto}.class-list--viewer{gap:.5rem;max-height:none;padding-right:.2rem}.class-item{background:#ffffff06;border:1px solid #ffffff0f;border-radius:.45rem;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;display:flex}.class-item-content{min-width:0}.class-item-content--split{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.class-item-title{display:block}.class-count{color:#ffffffd1;text-align:center;background:#ffffff14;border-radius:999px;flex:none;min-width:2rem;padding:.15rem .45rem;font-size:.76rem;font-weight:700}.class-item-subtitle{color:#ffffff94;margin-top:.2rem;font-size:.9rem}.two-column{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.code-like{white-space:pre-wrap;word-break:break-word;font-family:Consolas,Courier New,monospace;font-size:.92rem}.code-like--panel{background:#ffffff05;border:1px solid #ffffff14;border-radius:.85rem;gap:0;display:grid;overflow:hidden}.property-row{border-bottom:1px solid #ffffff0f;gap:.2rem;padding:.7rem .85rem;display:grid}.property-row:last-child{border-bottom:0}.property-name{letter-spacing:.06em;text-transform:uppercase;color:#ffffff8a;font-size:.75rem;font-weight:700}.property-value{color:#ffffffe6}:root{--viewer-shell-height:100vh;--viewer-shell-min-height:100vh;--viewer-safe-top:env(safe-area-inset-top,0px);--viewer-safe-right:env(safe-area-inset-right,0px);--viewer-safe-bottom:env(safe-area-inset-bottom,0px);--viewer-safe-left:env(safe-area-inset-left,0px)}@supports (height:100svh){:root{--viewer-shell-min-height:100svh}}@supports (height:100dvh){:root{--viewer-shell-height:100dvh}}html.viewer-route-active,body.viewer-route-active{height:100%;overflow:hidden}#app,.app-shell{min-height:100vh}.app-shell--viewer{min-height:var(--viewer-shell-min-height);height:var(--viewer-shell-height);position:relative;overflow:hidden}@supports (overflow:clip){.app-shell--viewer{overflow:clip}}.app-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;background:#040a14ad;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.app-header--viewer{top:max(1rem, var(--viewer-safe-top));box-sizing:border-box;width:100%;min-width:0;padding:0 max(1rem, var(--viewer-safe-right)) 0 max(1rem, var(--viewer-safe-left));-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;z-index:30;background:0 0;border-bottom:0;border-radius:0;justify-content:center;position:absolute;left:0;right:0}.app-branding{min-width:0}.app-brand{font-size:1.35rem;font-weight:700;display:inline-flex}.app-header--viewer .app-brand{font-size:1.1rem}.app-subtitle{color:#ffffffb8;margin:.25rem 0 0}.app-header--viewer .app-subtitle{display:none}.app-nav{flex:none;gap:.5rem;display:flex}.app-nav-link{background:#ffffff0a;border:1px solid #ffffff1f;border-radius:.45rem;padding:.45rem .75rem;font-size:.92rem;font-weight:600}.app-header--viewer .app-nav-link{padding:.4rem .65rem}.app-nav-link.router-link-active{border-color:#82a7ffcc}.app-nav-link--primary{color:#fff;background:#4c78ff;border-color:#4c78ff}.viewer-mode-nav{pointer-events:auto;flex-direction:column;align-items:stretch;display:inline-flex}.viewer-mode-switch{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080d16c7;border:1px solid #ffffff14;border-radius:.55rem;align-self:flex-start;align-items:center;padding:.3rem .35rem;display:inline-flex;box-shadow:0 12px 32px #0000004d}.viewer-mode-dimension-row{align-items:flex-start;gap:.5rem;display:flex}.viewer-mode-button--layout-sizer{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;flex:none}.viewer-mode-dimension-mv{flex:1 1 0;justify-content:center;min-width:0;display:flex}.viewer-mode-nav .view-dimension-switch--header{border-radius:.38rem;gap:.22rem;width:fit-content;margin-bottom:0;padding:.12rem}.viewer-mode-nav .view-dimension-switch--header .view-dimension-button{letter-spacing:.06em;border-radius:.3rem;min-height:1.28rem;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.viewer-mode-button{color:#ffffffb8;letter-spacing:.01em;background:0 0;border:1px solid #0000;border-radius:.4rem;justify-content:center;align-items:center;min-height:1.75rem;padding:.35rem .7rem;font-size:.85rem;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.viewer-mode-button.router-link-active{color:#f5f7fa;background:#4c78ff2e;border-color:#82a7ff52}.app-main{padding:1.5rem}.app-main--viewer{height:100%;min-height:0;padding:0;overflow:hidden}
