:root{--bim-donkerblauw: #01283F;--bim-blauw: #034872;--bim-petrol: #0395A5;--bim-groen: #03BF9C;--bim-appelgroen: #04D88A;--bim-donkergrijs: #B1B1B1;--bim-grijs: #D9D9D9;--bim-lichtgrijs: #ECECEC;--bim-font: "Roboto", system-ui, sans-serif;--bim-font-display: "Roboto Condensed", "Roboto", system-ui, sans-serif}:root{--bg: var(--bim-donkerblauw);--panel: var(--bim-blauw);--accent: var(--bim-groen);--accent-bright: var(--bim-appelgroen);--accent-2: var(--bim-petrol);--pick: var(--bim-appelgroen);--bg-2: #022d47;--panel-2: #02375a;--line: #0b4d76;--text: #ffffff;--text-dim: #c5d3df;--muted: #7a99b3;--mref: #FF8C42;--mref-rgba: 255, 140, 66;--warn: #ff6b6b;--mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace;--sans: var(--bim-font);--display: var(--bim-font-display);--m-width: 460px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;overflow:hidden;-webkit-user-select:none;user-select:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px}.mobile-block{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 24px;text-align:center;background:radial-gradient(1200px 600px at 50% 0%,#033253 0%,var(--bg) 70%)}.mobile-block .brand-name{font-size:40px}.mobile-block-text{font-size:15px;color:var(--text-dim);line-height:1.6;max-width:32ch}.app{display:grid;grid-template-columns:1fr var(--c-width) var(--m-width);grid-template-rows:54px 1fr;height:100vh}.app>header{grid-column:1 / -1;display:flex;align-items:center;gap:18px;padding:0 18px;background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg) 100%);border-bottom:1px solid var(--line);z-index:10}.brand{display:flex;align-items:center;gap:10px}.brand-logo{height:36px;width:auto}.brand-name{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:.02em;margin:0;line-height:1}.brand-name .dot{color:var(--accent)}.brand-tag{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.file-btn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:transparent;color:var(--text);border:1px solid var(--accent);padding:7px 16px;cursor:pointer;transition:all .15s ease}.file-btn:hover{background:var(--accent);color:var(--bg)}.status{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.05em}.viewer-wrap{position:relative;overflow:hidden;background:radial-gradient(1200px 600px at 50% 0%,#033253 0%,var(--bg) 70%)}.viewer-fill{position:absolute;top:0;right:0;bottom:0;left:0}.viewer-canvas{display:block;width:100%;height:100%}.models-panel{position:absolute;top:14px;right:14px;width:max-content;min-width:260px;max-width:min(620px,calc(100% - 28px));max-height:calc(100% - 28px);resize:both;overflow:hidden;display:flex;flex-direction:column;background:#022d47db;border:1px solid var(--line);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:4}.center-aside{position:relative;display:flex;flex-direction:column;min-height:0;background:var(--bg-2);border-left:1px solid var(--line);overflow:hidden}.center-aside>.section{flex:none}.center-aside>.section-picked.has-picks{flex:1 1 0;min-height:96px;display:flex;flex-direction:column;overflow:hidden}.center-aside>.section-picked.has-picks .picked-list{flex:1 1 0;min-height:0;overflow-y:auto}.center-aside>.section-elements{flex:1 1 0;min-height:210px;display:flex;flex-direction:column;overflow:hidden;border-bottom:none}.center-aside>.section-elements .el-table{flex:1 1 0;min-height:64px;max-height:none}.c-resize-handle{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:10}.c-resize-handle:hover{background:var(--accent-2);opacity:.4}.section{padding:16px;border-bottom:1px solid var(--line)}.section h2{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}.empty{color:var(--muted);font-size:12px;line-height:1.6}.total-card{background:var(--panel);border:1px solid var(--line);padding:14px}.total-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.total-value{font-family:var(--display);font-size:28px;font-weight:700;color:var(--accent-bright);margin-top:4px}.total-meta{font-size:11px;color:var(--muted);margin-top:2px}.total-actions{display:flex;gap:6px;margin-top:12px}.ghost-btn,.accent-btn{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text)}.ghost-btn:hover{border-color:var(--warn);color:var(--warn)}.accent-btn{flex:1;background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.accent-btn:hover{background:var(--accent-bright)}.mode-toggle{display:flex;gap:4px}.mode-btn{flex:1;font-family:var(--mono);font-size:12px;padding:8px 0;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--line);cursor:pointer}.mode-btn:hover{color:var(--text)}.mode-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}.fill-strategy{margin-top:12px}.fill-strategy-toggle{display:flex;gap:4px}.fill-btn{flex:1;font-family:var(--mono);font-size:11px;padding:6px 0;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--line);cursor:pointer}.fill-btn:hover{color:var(--text)}.fill-btn.active{background:var(--accent-2);color:var(--bg);border-color:var(--accent-2);font-weight:700}.fill-slider-row{display:flex;align-items:center;gap:8px;margin-top:10px}.fill-slider-row input[type=range]{flex:1;accent-color:var(--accent)}.fill-slider-label{font-family:var(--mono);font-size:10px;color:var(--text-dim);white-space:nowrap}.fill-slider-value{font-family:var(--mono);font-size:11px;color:var(--accent);min-width:34px;text-align:right}.fill-slider-value.editable{cursor:pointer;border-bottom:1px dotted var(--muted)}.fill-slider-value.editable:hover{color:var(--accent-bright);border-bottom-color:var(--accent)}.fill-slider-input{width:52px;font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--bg);border:1px solid var(--accent);padding:1px 4px;text-align:right;outline:none}.fill-hint{margin:8px 0 0;font-size:10px;line-height:1.5;color:var(--muted)}.unit-toggle{display:inline-flex;gap:4px;margin-top:12px}.unit-btn{font-family:var(--mono);font-size:11px;padding:5px 12px;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--line);cursor:pointer}.unit-btn.active{background:var(--accent-2);color:var(--bg);border-color:var(--accent-2);font-weight:700}.weight-controls{display:flex;flex-direction:column;gap:8px;margin-top:12px}.material-select,.density-row input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-family:var(--sans);font-size:12px;outline:none}.material-select{width:100%;cursor:pointer}.density-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-dim)}.density-row input{width:90px;font-family:var(--mono)}.material-select:focus,.density-row input:focus{border-color:var(--accent)}.picked-list{display:flex;flex-direction:column;gap:6px}.picked-num{cursor:pointer;border:0;font:inherit}.picked-num.open{outline:1px solid var(--accent)}.picked-props{flex:0 0 100%;margin-top:6px;padding:8px;max-height:240px;overflow-y:auto;font-size:11px;background:#00000038;border-radius:4px}.picked-props.muted{color:var(--muted)}.pp-set+.pp-set{margin-top:8px}.pp-set-name{font-weight:600;color:var(--accent);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-row{display:grid;grid-template-columns:1fr 1fr 16px;gap:8px;padding:1px 0;align-items:center}.pp-add{font:inherit;font-size:12px;line-height:1;color:var(--muted);background:none;border:0;padding:0;cursor:pointer;opacity:0}.pp-row:hover .pp-add{opacity:1}.pp-add:hover{color:var(--accent)}.pp-key{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-val{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picked-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--panel-2);border:1px solid var(--line);padding:7px 9px}.picked-num{font-family:var(--mono);font-size:11px;color:var(--bg);background:var(--accent);width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex:none}.picked-info{flex:1;min-width:0}.picked-name{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picked-type{display:block;font-family:var(--mono);font-size:10px;color:var(--accent-2)}.picked-value{font-family:var(--mono);font-size:12px;white-space:nowrap}.picked-x{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer}.picked-x:hover{color:var(--warn)}.measurements-aside{overflow:hidden;display:flex;flex-direction:column;position:relative;background:var(--bg);border-left:1px solid var(--line)}.m-resize-handle{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:10}.m-resize-handle:hover{background:var(--accent-2);opacity:.4}.m-header{padding:16px;border-bottom:1px solid var(--line)}.m-header h2{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.m-toolbar{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.m-toolbar:last-child{margin-bottom:0}.m-file-tools{margin-top:4px}.excel-wrap{position:relative;display:inline-flex}.excel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.excel-menu{position:absolute;top:calc(100% + 3px);right:0;z-index:41;display:flex;flex-direction:column;min-width:130px;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px #0006}.excel-menu button{font-family:var(--mono);font-size:11px;text-align:left;padding:8px 12px;background:transparent;border:none;color:var(--text);cursor:pointer}.excel-menu button:hover{background:var(--accent);color:var(--bg)}.m-tool-btn{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;background:transparent;color:var(--text);border:1px solid var(--line);padding:5px 8px;cursor:pointer;transition:all .15s}.m-tool-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.m-tool-btn:disabled{opacity:.35;cursor:not-allowed}.el-level{display:flex;gap:4px;margin-bottom:8px}.el-level-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 4px;font:inherit;color:var(--text-dim);background:var(--bg-2);border:1px solid var(--line);border-radius:4px;cursor:pointer}.el-level-btn:hover{border-color:var(--accent)}.el-level-btn.active{color:var(--bim-donkerblauw);background:var(--accent);border-color:transparent}.el-level-label{font-size:11px;font-weight:600}.el-level-count{font-size:10px;opacity:.75;font-variant-numeric:tabular-nums}.el-summary{display:flex;flex-direction:column;gap:3px;font-size:11px;margin-bottom:10px}.el-hulzen{display:flex;align-items:center;gap:6px;color:var(--muted);cursor:pointer}.el-hulzen input{flex:none;margin:0}.el-hulzen:hover{color:var(--text-dim)}.el-warn{color:#ffc36b}.el-filters{display:flex;gap:6px;margin-bottom:6px}.el-filters select{flex:1;min-width:0;padding:5px 6px;font:inherit;font-size:11px;color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-radius:4px}.el-search{width:100%;padding:5px 8px;margin-bottom:8px;font:inherit;font-size:11px;color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-radius:4px}.el-search::placeholder{color:var(--muted)}.el-table{overflow-y:auto;border:1px solid var(--line);border-radius:4px}.el-head,.el-row{display:grid;grid-template-columns:1fr 44px 46px;gap:6px;align-items:center;padding:4px 8px;font-size:11px}.el-head{position:sticky;top:0;z-index:1;font-size:10px;color:var(--muted);background:var(--bg-2);border-bottom:1px solid var(--line)}.el-head span:not(:first-child),.el-num{text-align:right}.el-row:nth-child(2n){background:#ffffff06}.el-row{cursor:pointer;border-left:2px solid transparent}.el-row:hover{background:#ffffff0f}.el-row.on{background:#04d88a24;border-left-color:var(--accent)}.el-foot-link{font:inherit;font-size:11px;color:var(--text-dim);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.el-foot-link:hover{color:var(--accent)}.el-name-cell{display:flex;align-items:center;gap:5px;min-width:0}.el-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.el-name.van-naam{font-style:italic;color:var(--muted)}.el-flag{flex:none;cursor:help}.el-ifctype{flex:none;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px;font-size:10px;color:var(--muted);background:#ffffff0f;border-radius:3px}.el-num{font-variant-numeric:tabular-nums;color:var(--text)}.el-num-dim{color:var(--muted)}.total-actions .ghost-btn:disabled,.total-actions .accent-btn:disabled{opacity:.4;cursor:not-allowed}.el-count-btn{width:100%;margin-top:8px}.inspect-panel{position:absolute;right:14px;top:104px;width:300px;max-width:calc(100% - 28px);max-height:calc(100% - 130px);display:flex;flex-direction:column;background:#022d47eb;border:1px solid var(--accent-2);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:4}.inspect-head{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);padding:8px 10px;border-bottom:1px solid var(--line)}.inspect-close{margin-left:auto;font-size:16px;line-height:1;color:var(--muted);background:none;border:0;cursor:pointer}.inspect-close:hover{color:var(--text)}.inspect-body{flex:1;min-height:0;overflow-y:auto;padding:8px}.inspect-body .picked-props{margin:0;padding:0;max-height:none;background:none}.click-mode{position:absolute;left:12px;top:12px;display:flex;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden}.click-mode-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;font:inherit;font-size:11px;color:var(--text-dim);background:#04202fdb;border:0;cursor:pointer}.click-mode-btn:hover{color:var(--text)}.click-mode-btn.active{color:var(--bg);background:var(--accent);font-weight:600}.click-mode-btn:disabled{opacity:.45;cursor:not-allowed}.click-mode-btn:disabled:hover{color:var(--text-dim)}.click-mode-sep{width:5px;background:#04202fdb}.el-inspect{margin-bottom:10px;border:1px solid var(--accent-2);border-radius:4px;overflow:hidden}.el-inspect-head{padding:4px 8px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--bg);background:var(--accent-2)}.el-inspect-body{max-height:200px;overflow-y:auto;padding:8px;font-size:11px}.el-query-btn{width:100%;padding:6px 8px;margin-bottom:6px;font:inherit;font-size:11px;color:var(--text-dim);background:var(--bg-2);border:1px dashed var(--line);border-radius:4px;cursor:pointer}.el-query-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.el-query-btn:disabled{opacity:.5;cursor:default}.el-query-btn.on{border-style:solid;border-color:var(--accent);color:var(--accent)}.el-query-clear{display:block;margin:-2px 0 8px auto;font:inherit;font-size:10px;color:var(--muted);background:none;border:0;text-decoration:underline;cursor:pointer}.q-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:#011421b8}.q-modal{display:flex;flex-direction:column;width:min(1180px,100%);height:min(760px,88vh);background:var(--bg-2);border:1px solid var(--accent-2);border-radius:7px;box-shadow:0 18px 48px #00000080}.q-head{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.q-head h2{flex:1;margin:0;font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.q-close{font-size:20px;line-height:1;color:var(--muted);background:none;border:0;cursor:pointer}.q-body{flex:1;min-height:0;overflow-y:auto;padding:14px 16px}.q-group{border:1px solid var(--line);border-left:2px solid var(--accent-2);border-radius:5px;padding:8px;background:#ffffff05}.q-group.root{border-left-color:var(--accent)}.q-group-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}.q-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.q-empty{margin:0;padding:2px 0;font-size:11px;color:var(--muted)}.q-spacer{flex:1}.q-rule{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.q-modal select,.q-modal input{padding:5px 6px;font:inherit;font-size:11px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:4px}.q-key{flex:3 1 260px;min-width:0}.q-op{flex:1 1 170px;min-width:0}.q-val{flex:2 1 200px;min-width:0}.q-val.bad{border-color:#ff6b6b}.q-comb,.q-not,.q-case,.q-add,.q-del{font:inherit;font-size:11px;color:var(--text-dim);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:4px 8px;cursor:pointer;flex:none}.q-not.on,.q-case.on{color:var(--bg);background:var(--accent-2);border-color:var(--accent-2)}.q-add:hover,.q-del:hover,.q-not:hover,.q-case:hover{border-color:var(--accent)}.q-del{color:var(--muted)}.q-del:hover{color:#ff6b6b;border-color:#ff6b6b}.q-picker{position:relative;flex:2 1 200px;min-width:0}.q-picker-btn{width:100%;padding:5px 6px;font:inherit;font-size:11px;text-align:left;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:4px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.q-picker-btn.on{color:var(--text);border-color:var(--accent-2)}.q-picker-btn:hover{border-color:var(--accent)}.q-picker-drop{position:fixed;z-index:300;min-width:260px;background:var(--bg-2);border:1px solid var(--accent-2);border-radius:5px;box-shadow:0 12px 28px #00000073;padding:6px}.q-picker-search{width:100%;margin-bottom:5px}.q-picker-actions{display:flex;align-items:center;gap:6px;padding:0 2px 5px;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line)}.q-picker-actions button{font:inherit;font-size:10px;color:var(--text-dim);background:none;border:0;text-decoration:underline;cursor:pointer;padding:0}.q-picker-actions button:hover{color:var(--accent)}.q-picker-list{max-height:320px;overflow-y:auto;padding-top:4px}.q-picker-row{display:flex;align-items:center;gap:6px;padding:2px;font-size:11px;color:var(--text-dim);cursor:pointer}.q-picker-row:hover{background:#ffffff0d}.q-picker-row input{flex:none;margin:0}.q-picker-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.q-foot{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.q-count b{color:var(--accent);font-size:13px}.q-bad{color:#ff6b6b}@media (max-width: 1100px){.q-modal{max-height:92vh}.q-key,.q-op,.q-val{flex-basis:100%}}.el-prop-busy{padding:5px 8px;margin-bottom:6px;font-size:11px;color:var(--muted);background:#ffffff0a;border-radius:4px}.el-foot{margin-top:8px;padding:6px 8px;font-size:11px;color:var(--muted);background:#ffffff0a;border-radius:4px}.el-foot b{color:var(--text)}.m-totals{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}@container m-panel (max-width: 379px){.m-totals{grid-template-columns:repeat(3,1fr)}}.m-total-cell{background:var(--bg-2);padding:10px 8px;display:flex;flex-direction:column;gap:3px}.m-total-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.m-unit-toggle{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;background:transparent;border:none;padding:0;cursor:pointer;text-align:left;display:inline-flex;align-items:center;gap:4px}.m-unit-toggle:after{content:"⇄";font-size:8px;opacity:.35}.m-unit-toggle:hover{color:var(--accent)}.m-unit-toggle:hover:after{opacity:1}.m-total-value{font-family:var(--mono);font-size:13px;color:var(--text)}.m-tree{flex:1;overflow-y:auto;padding:8px 0}.m-empty{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;padding:30px 16px;line-height:1.6}.m-empty b{color:var(--text)}.m-node{-webkit-user-select:none;user-select:none}.m-row{display:grid;grid-template-columns:14px 18px 1fr 50px 50px 50px 50px 44px;align-items:center;gap:6px;padding:6px 10px;cursor:pointer;border-left:2px solid transparent}.m-row.selected{background:rgba(var(--mref-rgba),.14);border-left-color:var(--mref)}.m-row.drop-target{background:#03bf9c2e;border-left-color:var(--accent)}.m-row:hover{background:#ffffff08}.m-label-edit{font-family:var(--mono);font-size:11px;background:var(--bg);color:var(--text);border:1px solid var(--accent);border-radius:3px;padding:1px 5px;min-width:0;width:100%;outline:none}.m-col{font-family:var(--mono);font-size:10px;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-col-header{display:grid;grid-template-columns:14px 18px 1fr 50px 50px 50px 50px 44px;gap:6px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--bg-2)}.m-col-header span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;text-align:right}.m-col-header span:nth-child(3){text-align:left}.m-chevron{font-family:var(--mono);font-size:14px;color:var(--muted);cursor:pointer;text-align:center;width:18px;background:none;border:none;padding:0;line-height:1}.m-chevron:hover:not(.leaf){color:var(--accent)}.m-chevron:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.m-chevron.collapsed:before{content:"▸"}.m-chevron.expanded:before{content:"▾"}.m-chevron.leaf:before{content:""}.m-checkbox{margin:0;accent-color:var(--accent);cursor:pointer}.m-label{font-family:var(--mono);font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.m-label.group{color:var(--accent-2);font-weight:500}@media (max-width: 1100px){body{overflow:auto}.app{grid-template-columns:1fr;grid-template-rows:54px 55vh auto auto;height:auto;min-height:100vh}.center-aside,.measurements-aside{border-left:none;border-top:1px solid var(--line)}.m-resize-handle,.c-resize-handle{display:none}.measurements-aside,.m-tree,.center-aside{overflow:visible}.center-aside>.section-picked.has-picks,.center-aside>.section-elements{flex:none;min-height:0;overflow:visible}.center-aside>.section-picked.has-picks .picked-list{overflow:visible}.center-aside>.section-elements .el-table{max-height:50vh}}.pm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#01142199;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50}.pm-modal{width:420px;max-width:calc(100% - 32px);max-height:calc(100% - 64px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);box-shadow:0 20px 60px #00000073}.pm-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.pm-head h2{margin:0;font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.pm-x{background:transparent;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.pm-x:hover{color:var(--warn)}.pm-body{padding:16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.pm-note{margin:0;font-size:12px;color:var(--text-dim)}.pm-input{background:var(--bg);border:1px solid var(--line);color:var(--text);font-family:var(--sans);font-size:13px;padding:9px 11px;outline:none}.pm-input:focus{border-color:var(--accent)}.pm-btn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:transparent;color:var(--text);border:1px solid var(--line);padding:9px 14px;cursor:pointer;transition:all .15s ease}.pm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pm-btn:disabled{opacity:.5;cursor:default}.pm-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.pm-btn.primary:hover:not(:disabled){background:var(--accent-bright);color:var(--bg)}@keyframes pm-pulse{0%{box-shadow:0 0 #04d88ab3}70%{box-shadow:0 0 0 8px #04d88a00}to{box-shadow:0 0 #04d88a00}}.pm-btn.primary.pulse{animation:pm-pulse .9s ease-out 2}.pm-divider{margin-top:6px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.pm-list{display:flex;flex-direction:column;gap:4px}.pm-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:9px 11px;cursor:pointer;text-align:left;transition:all .15s ease}.pm-item:hover:not(:disabled){border-color:var(--accent)}.pm-item:disabled{opacity:.5;cursor:default}.pm-item-row{display:flex;gap:4px}.pm-item-grow{flex:1;min-width:0}.pm-item-del{flex-shrink:0;background:var(--bg);border:1px solid var(--line);color:var(--muted);cursor:pointer;font-size:14px;padding:0 10px}.pm-item-del:hover:not(:disabled){border-color:var(--warn);color:var(--warn)}.pm-item-del:disabled{opacity:.5;cursor:default}.pm-item-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pm-item-date{font-family:var(--mono);font-size:10px;color:var(--muted);flex-shrink:0}.pm-item-model{font-size:10px;color:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:1px 6px;flex-shrink:0;white-space:nowrap}.pm-empty{margin:0;font-size:12px;color:var(--muted);text-align:center;padding:12px 0}.pm-error{margin:0;font-size:12px;color:var(--warn)}.m-panel{flex:1;min-height:0;display:flex;flex-direction:column;container:m-panel / inline-size}.face-hint{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:9;background:#04d88a29;border:1px solid var(--accent-bright);border-radius:5px;padding:5px 12px;font-size:12px;color:var(--text)}.m-panel.locked{opacity:.4;filter:grayscale(1);pointer-events:none;-webkit-user-select:none;user-select:none}.paywall-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;background:#01283f73;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.paywall{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:28px 24px;overflow-y:auto}.paywall-lock{font-size:34px;text-align:center}.paywall-title{margin:0;text-align:center;font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:.02em}.paywall-note{margin:0 0 4px;font-size:13px;color:var(--text-dim);line-height:1.5}.paywall-link{margin-top:4px;text-align:center;font-size:12px;color:var(--accent);text-decoration:none}.paywall-link:hover{text-decoration:underline}
