@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--top-bar-height:96px;--bg:#0f1117;--surface:#1a1d27;--surface2:#21242f;--surface-hover:#282c3a;--border:#2a2e3a;--text:#e4e6ed;--text-dim:#7a7f91;--text-muted:#4e5264;--accent:#4a9eff;--accent-glow:#4a9eff26;--accent-dim:#4a9eff14;--danger:#f87171;--success:#34d399;--warn:#fbbf24;--highlight:#4a9eff59}body{background:var(--bg);color:var(--text);touch-action:none;-webkit-user-select:none;user-select:none;width:100vw;height:100dvh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}#canvas-container{width:100%;height:100%;position:absolute;top:0;left:0}canvas{display:block;width:100%!important;height:100%!important}#upload-overlay{z-index:100;background:var(--bg);justify-content:center;align-items:center;transition:opacity .4s,visibility .4s;display:flex;position:fixed;inset:0}#upload-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.upload-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:92%;max-width:420px;padding:48px 32px}.upload-card h1{color:var(--text);margin-bottom:8px;font-size:22px;font-weight:600}.upload-card p{color:var(--text-dim);margin-bottom:28px;font-size:14px;line-height:1.5}.upload-icon{background:var(--accent-glow);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 20px;display:flex}.upload-icon svg{width:28px;height:28px;stroke:var(--accent)}.upload-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:12px 28px;font-family:inherit;font-size:15px;font-weight:500;display:inline-flex}.upload-btn:disabled{opacity:.5;cursor:not-allowed}.upload-btn:active:not(:disabled){transform:scale(.97)}.upload-btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.upload-btn-secondary:active:not(:disabled){transform:scale(.97)}.upload-divider{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:18px 0 14px;font-size:12px}.upload-card p.upload-hint{color:var(--text-dim);margin:10px 0 0;font-size:12px;line-height:1.5}.upload-progress{text-align:left;margin-top:24px;display:none}.upload-card.loading .upload-progress{display:block}.upload-card.loading .upload-btn,.upload-card.loading .upload-divider,.upload-card.loading .upload-hint{display:none}.upload-progress-label{color:var(--text-dim);justify-content:space-between;gap:16px;margin-bottom:9px;font-size:13px;display:flex}.upload-progress-percent{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.upload-progress-track{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.upload-progress-fill{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width .15s ease-out}#file-input{display:none}#init-log{text-align:left;color:var(--text-dim);background:#0000004d;border-radius:8px;max-height:120px;margin-top:20px;padding:10px 12px;font-size:11px;line-height:1.6;overflow-y:auto}#init-log .ok{color:var(--success)}#init-log .err{color:var(--danger)}#init-log .info{color:var(--accent)}#top-bar{height:var(--top-bar-height);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:70;opacity:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:linear-gradient(#1a1d27fa,#0f1117f0);align-items:stretch;gap:8px;padding:8px 12px;transition:opacity .3s;display:flex;position:fixed;top:0;left:0;right:0;overflow:auto hidden}#top-bar.visible{opacity:1}#model-name{border-right:1px solid var(--border);min-width:150px;max-width:240px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-self:stretch;padding:10px 12px;font-size:13px;font-weight:600;overflow:hidden}.bar-btn{background:linear-gradient(180deg, var(--surface2), var(--surface));border:1px solid var(--border);min-width:82px;min-height:78px;color:var(--text-dim);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-family:inherit;transition:all .15s;display:flex}.bar-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:#4a9eff73}.bar-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.bar-btn:disabled{opacity:.45;cursor:not-allowed}.bar-btn:active:not(:disabled){transform:translateY(1px)}.bar-btn svg{flex-shrink:0;width:32px;height:32px}.bar-btn-with-text{min-width:118px}.bar-btn-text{text-align:center;flex-direction:column;align-items:center;gap:2px;line-height:1.1;display:flex}.bar-btn-label{color:var(--text);white-space:nowrap;font-size:12px;font-weight:700}.bar-btn-helper{color:var(--text-dim);white-space:nowrap;font-size:10px;font-weight:500}@media (width<=920px){.bar-btn{min-width:76px;min-height:70px;padding:6px 8px}.bar-btn svg{width:28px;height:28px}.bar-btn-helper{display:none}}.tool-dropdown{z-index:230;border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-wrap:wrap;gap:8px;max-width:300px;padding:10px;display:none;position:fixed;box-shadow:0 12px 36px #00000059}.tool-dropdown.visible{display:flex}#tree-panel{top:var(--top-bar-height);backdrop-filter:blur(12px);border-right:1px solid var(--border);z-index:60;background:#0f1117f2;flex-direction:column;width:300px;transition:transform .3s;display:flex;position:fixed;bottom:0;left:0;transform:translate(-100%)}#tree-panel.open{transform:translate(0)}@media (width<=600px){#tree-panel{width:85vw}}.tree-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 14px;display:flex}.tree-header h2{color:var(--text);flex:1;font-size:13px;font-weight:600}.tree-search{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;outline:none;margin:0;padding:8px 12px;font-family:inherit;font-size:12px}.tree-search:focus{border-color:var(--accent)}.tree-search:disabled{opacity:.6;cursor:wait}.tree-search-wrap{border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 14px}#model-section{border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 8px 6px;display:none}#model-section.visible{display:block}#drawing-section{border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 8px 6px;display:none}#drawing-section.visible{display:block}#drawing-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:24vh;overflow-y:auto}#add-model-input{display:none}.model-section-header{align-items:center;gap:8px;padding:0 6px 6px;display:flex}.model-section-header h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;flex:1;font-size:11px;font-weight:600}.model-list-add{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11px}.model-list-add:hover{border-color:var(--accent);color:var(--accent)}#model-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:30vh;overflow-y:auto}.model-row{border-radius:4px;align-items:center;gap:6px;min-height:30px;padding:2px 6px;display:flex}.model-row:hover{background:var(--surface-hover)}.model-row input{accent-color:var(--accent);cursor:pointer;flex-shrink:0}.model-name{min-width:0;color:var(--text);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;font-family:inherit;font-size:12px;overflow:hidden}.model-name:hover{color:var(--accent)}.model-row.hidden-model .model-name{color:var(--text-muted)}.model-tag{color:var(--accent);background:var(--accent-dim);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px}.model-remove{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;font-size:16px;line-height:1}.model-remove:hover{color:var(--danger);background:#f8717126}#tree-content{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:4px 0;overflow:hidden auto}.tree-empty{text-align:center;color:var(--text-muted);padding:24px 14px;font-size:13px}.tree-node{user-select:none}.tree-row{cursor:pointer;border-radius:4px;align-items:center;gap:2px;min-height:28px;margin:0 6px;padding:4px 8px 4px 0;transition:background .1s;display:flex}.tree-row:hover{background:var(--surface-hover)}.tree-row.selected{background:var(--accent-dim)}.tree-row.selected .tree-label{color:var(--accent)}.tree-toggle{width:20px;height:20px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:10px;transition:transform .15s;display:flex}.tree-toggle.expanded{transform:rotate(90deg)}.tree-toggle.leaf{visibility:hidden}.tree-icon{border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-right:4px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;display:flex}.tree-icon.proj{color:#4a9eff;background:#4a9eff22}.tree-icon.site{color:#34d399;background:#34d39922}.tree-icon.bldg{color:#fbbf24;background:#fbbf2422}.tree-icon.stor{color:#f87171;background:#f8717122}.tree-icon.elem{color:#a78bfa;background:#a78bfa22}.tree-icon.type{color:#94a3b8;background:#64748b22}.tree-icon.model{color:#22d3ee;background:#22d3ee22}.tree-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.tree-count{color:var(--text-muted);margin-left:4px;font-family:JetBrains Mono,monospace;font-size:10px}.tree-children{display:none}.tree-children.open{display:block}#prop-panel{top:var(--top-bar-height);backdrop-filter:blur(12px);border-left:1px solid var(--border);z-index:60;background:#0f1117f2;flex-direction:column;width:340px;transition:transform .3s;display:flex;position:fixed;bottom:0;right:0;transform:translate(100%)}#prop-panel.open{transform:translate(0)}@media (width<=600px){#prop-panel{width:92vw}}.prop-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 14px;display:flex}.prop-header h2{color:var(--text);flex:1;font-size:13px;font-weight:600}.prop-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1}#prop-content{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:8px 0;overflow-y:auto}.prop-section{margin-bottom:2px}.prop-section-header{color:var(--text);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;background:var(--accent-dim);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 14px;font-size:11px;font-weight:600;display:flex}.prop-section-header:hover{background:#4a9eff1f}.prop-section-header .chevron{font-size:9px;transition:transform .15s}.prop-section-header .chevron.open{transform:rotate(90deg)}.prop-table{border-collapse:collapse;width:100%}.prop-table td{vertical-align:top;border-bottom:1px solid #2a2e3a80;padding:5px 14px;font-size:12px}.prop-table td:first-child{color:var(--text-dim);width:42%;font-family:JetBrains Mono,monospace;font-size:11px}.prop-table td:last-child{color:var(--text);word-break:break-word}.prop-empty{text-align:center;color:var(--text-muted);padding:24px 14px;font-size:13px}#status-bar{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);z-index:270;pointer-events:none;border-radius:10px;flex-direction:column;align-items:center;gap:10px;max-width:90%;padding:10px 20px;font-size:13px;display:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}#status-bar.visible{display:flex}.status-row{align-items:center;gap:10px;width:100%;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{background:var(--border);border-radius:2px;width:100%;height:4px;display:none;overflow:hidden}.progress-bar.visible{display:block}.progress-fill{background:var(--accent);border-radius:2px;width:0%;height:100%;transition:width .15s ease-out}#controls-hint{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);z-index:40;opacity:0;pointer-events:none;border-radius:10px;padding:8px 16px;font-size:12px;transition:opacity .5s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}#controls-hint.visible{opacity:1}#view-controls{z-index:50;opacity:0;flex-direction:column;gap:6px;transition:opacity .3s;display:flex;position:fixed;bottom:20px;right:16px}#view-controls.visible{opacity:1}.view-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-family:inherit;font-size:11px;font-weight:600;display:flex}.view-btn:active{background:var(--surface-hover);color:var(--text);border-color:var(--accent)}.view-btn.active{color:var(--text);border-color:var(--accent)}#selection-menu{z-index:85;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--border);background:#0f1117f5;border-radius:10px;flex-direction:column;gap:4px;min-width:180px;max-height:calc(100dvh - 72px);padding:6px;display:none;position:fixed;overflow-y:auto;box-shadow:0 16px 30px #00000047}#selection-menu.visible{display:flex}#selection-menu .context-menu-btn{flex:none}.context-menu-btn{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:9px 10px;font-family:inherit;font-size:12px;transition:all .12s}.context-menu-btn:hover{background:var(--surface-hover);border-color:var(--border)}#error-toast{top:calc(var(--top-bar-height) + 12px);color:var(--danger);z-index:270;text-align:center;background:#f871711f;border:1px solid #f871714d;border-radius:10px;max-width:90%;padding:10px 20px;font-size:13px;display:none;position:fixed;left:50%;transform:translate(-50%)}#error-toast.visible{display:block}.clip-badge{top:calc(var(--top-bar-height) + 8px);backdrop-filter:blur(12px);border:1px solid var(--border);z-index:55;color:var(--text-dim);background:#0f1117eb;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:none;position:fixed;left:50%;transform:translate(-50%)}.clip-badge.visible{display:flex}.clip-badge{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 16px)}.clip-badge .cb-label{white-space:nowrap}.clip-badge .cb-planes{gap:3px;display:flex}.clip-badge .cb-planes:empty{display:none}.clip-badge .cb-chip{min-width:24px;padding:3px 6px;font-family:JetBrains Mono,monospace}#clip-remove-btn:hover,#clip-clear-btn:hover{border-color:var(--danger);color:var(--danger)}.clip-badge button{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px;transition:all .12s}.clip-badge button:hover{border-color:var(--accent);color:var(--accent)}.clip-badge button.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.clip-badge .cb-val{color:var(--accent);text-align:center;min-width:44px;font-family:JetBrains Mono,monospace;font-size:11px}.clip-handles{pointer-events:none;z-index:52;position:fixed;inset:0;overflow:hidden}.clip-handle{--clip-color:#8fb8e8;--clip-r:15px;width:0;height:0;position:absolute;top:0;left:0}.clip-handle.active{--clip-color:#fbbf24;z-index:1}.clip-arrow{width:0;height:0;transform:rotate(var(--clip-angle,0deg));opacity:.85;position:absolute;top:0;left:0}.clip-arrow:before{content:"";left:calc(var(--clip-r) + 2px);background:var(--clip-color);width:26px;height:2px;position:absolute;top:-1px}.clip-arrow:after{content:"";left:calc(var(--clip-r) + 28px);border-left:9px solid var(--clip-color);border-top:5px solid #0000;border-bottom:5px solid #0000;position:absolute;top:-5px}.clip-handle.no-arrow .clip-arrow{display:none}.clip-grip{left:calc(var(--clip-r) * -1);top:calc(var(--clip-r) * -1);width:calc(var(--clip-r) * 2);height:calc(var(--clip-r) * 2);border:2px solid var(--clip-color);color:#f8fafc;opacity:.8;pointer-events:auto;cursor:grab;touch-action:none;background:#0f172aeb;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;box-shadow:0 1px 6px #00000073}.clip-handle.active .clip-grip{opacity:1}.clip-grip:hover{opacity:1;border-color:#fff}.clip-handle.dragging .clip-grip{cursor:grabbing}.clip-num{background:var(--clip-color);color:#0f172a;text-align:center;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:10px;font-weight:700;line-height:14px;position:absolute;bottom:-6px;right:-6px}.clip-del{left:calc(var(--clip-r) - 8px);top:calc(var(--clip-r) * -1 - 10px);border:1px solid var(--clip-color);color:#f8fafc;pointer-events:auto;cursor:pointer;opacity:.75;background:#0f172af2;border-radius:50%;width:18px;height:18px;padding:0;font-family:inherit;font-size:13px;line-height:1;position:absolute}.clip-handle.active .clip-del{opacity:1}.clip-del:hover{background:var(--danger);border-color:var(--danger);opacity:1}@media (pointer:coarse){.clip-handle{--clip-r:20px}.clip-del{width:26px;height:26px;left:calc(var(--clip-r) - 10px);top:calc(var(--clip-r) * -1 - 14px);font-size:16px}}.measure-badge{top:calc(var(--top-bar-height) + 44px);color:var(--warn);z-index:55;background:#fbbf241f;border:1px solid #fbbf244d;border-radius:8px;align-items:center;gap:8px;padding:6px 14px;font-size:12px;display:none;position:fixed;left:50%;transform:translate(-50%)}.measure-badge.visible{display:flex}.measure-badge button{color:var(--warn);cursor:pointer;background:#fbbf2426;border:1px solid #fbbf244d;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px}#measure-perp.active{color:#f472b6;background:#f472b638;border-color:#f472b6}#measure-snap.active{border-color:var(--accent);color:var(--accent);background:#4a9eff38}#measure-place{z-index:51;background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:999px;padding:7px 10px;font:600 12px inherit;display:none;position:fixed;transform:translateY(-50%);box-shadow:0 6px 18px #00000059}#measure-place.visible{display:inline-flex}.measure-preview-label{opacity:.92}#touch-cursor{z-index:50;pointer-events:none;color:var(--accent);filter:drop-shadow(0 0 3px #000000a6);display:none;position:fixed;transform:translate(-50%,-50%)}#touch-cursor.visible{display:block}#selection-box{z-index:45;pointer-events:none;border:1px solid var(--accent);background:var(--accent-dim);display:none;position:fixed}#selection-box.visible{display:block}.snap-settings{top:calc(var(--top-bar-height) + 86px);backdrop-filter:blur(12px);border:1px solid var(--border);z-index:57;color:var(--text-dim);background:#0f1117f5;border-radius:10px;flex-direction:column;gap:8px;min-width:190px;padding:10px 12px;font-size:12px;display:none;position:fixed;left:50%;transform:translate(-50%)}.snap-settings.visible{display:flex}.snap-settings .ss-title{color:var(--text);font-size:13px;font-weight:600}.snap-settings .ss-scope-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:10px}.snap-settings .ss-scope{gap:6px;display:flex}.snap-settings .ss-scope-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:5px;flex:1;padding:5px 8px;font-family:inherit;font-size:11px;transition:all .12s}.snap-settings .ss-scope-btn:hover{border-color:var(--accent);color:var(--text)}.snap-settings .ss-scope-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.snap-settings .ss-list{flex-direction:column;gap:4px;display:flex}.snap-settings .ss-list label{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:2px 0;display:flex}.snap-settings .ss-list input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.mdl-panel{top:calc(var(--top-bar-height) + 8px);width:316px;max-height:calc(100vh - var(--top-bar-height) - 20px);backdrop-filter:blur(12px);border:1px solid var(--border);z-index:56;color:var(--text-dim);scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:#0f1117f2;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;font-size:12px;display:none;position:fixed;right:12px;overflow-y:auto}.mdl-panel.visible{display:flex}.mdl-title{color:var(--text);justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.mdl-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.mdl-close:hover{color:var(--text)}.mdl-palette{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.mdl-tool{background:linear-gradient(180deg, var(--surface2), var(--surface));border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;font-family:inherit;transition:all .12s;display:flex;position:relative}.mdl-tool svg{width:22px;height:22px}.mdl-tool-label{font-size:11px;font-weight:600}.mdl-tool kbd{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:9px;position:absolute;top:3px;right:4px}.mdl-tool:hover{color:var(--text);border-color:#4a9eff73}.mdl-tool.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.mdl-palette.mdl-palette-cuts{grid-template-columns:repeat(2,1fr)}.mdl-subhead{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:2px 0 -2px;font-size:10px;font-weight:700}.mdl-editbar{flex-wrap:wrap;gap:4px;display:flex}.mdl-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:11px;transition:all .12s}.mdl-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mdl-btn:disabled{opacity:.4;cursor:not-allowed}.mdl-btn.mdl-primary{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.mdl-btn.active{color:#4ade80;background:#4ade802e;border-color:#4ade80}.mdl-workplane{grid-template-columns:1.6fr 1fr;gap:6px 8px;display:grid}.mdl-workplane-block{flex-direction:column;gap:6px;display:flex}.mdl-workplane-info{color:var(--text-dim);font-size:11px}.mdl-workplane-info.custom{color:#38bdf8}.mdl-workplane-panel{width:300px;max-height:none;overflow-y:visible}#modeling-panel.visible~.mdl-workplane-panel{right:340px}.mdl-field{flex-direction:column;gap:2px;min-width:0;display:flex}.mdl-field>span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim);font-size:10px}.mdl-field.dirty>span,.mdl-check.dirty{color:var(--warn)}.mdl-field.dirty>span:after{content:" •"}.mdl-select,.mdl-num,.mdl-text{background:var(--surface);border:1px solid var(--border);width:100%;min-width:0;color:var(--text);border-radius:5px;padding:4px 6px;font-family:inherit;font-size:12px}.mdl-select:focus,.mdl-num:focus,.mdl-text:focus{border-color:var(--accent);outline:none}.mdl-check{color:var(--text);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:flex}.mdl-check input{accent-color:var(--accent);margin:0}.mdl-grid{grid-template-columns:1fr 1fr;gap:6px 8px;display:grid}.mdl-wide{grid-column:1/-1}.mdl-axes{flex-direction:column;gap:4px;display:flex}.mdl-axis-row{grid-template-columns:52px 1fr 1fr .7fr;align-items:center;gap:4px;display:grid}.mdl-axis-head{color:var(--text-dim,var(--text));opacity:.75;font-size:10px}.mdl-axis-name{flex-direction:column;font-size:12px;line-height:1.15;display:flex}.mdl-axis-end{opacity:.7;white-space:nowrap;font-size:10px}.mdl-axis-note{opacity:.7;font-size:10px}.mdl-section{border-top:1px solid var(--border);padding-top:6px}.mdl-section>summary{cursor:pointer;color:var(--text);margin-bottom:6px;font-size:11px;font-weight:600;list-style-position:inside}.mdl-pane{flex-direction:column;gap:6px;display:flex}.mdl-pane-head{justify-content:space-between;align-items:center;display:flex}.mdl-pane-title{color:var(--accent);font-size:12px;font-weight:600}.mdl-presets{grid-template-columns:1.2fr 1fr auto auto;gap:4px;display:grid}.mdl-class-row{align-items:center;gap:6px;display:flex}.mdl-swatch{border:1px solid #ffffff59;border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.mdl-cp-grid{grid-template-rows:repeat(3,22px);grid-template-columns:repeat(3,22px);gap:3px;margin-top:2px;display:grid}.mdl-cp-cell{cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:4px;width:22px;height:22px;padding:0;position:relative}.mdl-cp-cell:after{content:"";background:var(--text-dim);opacity:.45;border-radius:50%;position:absolute;inset:7px}.mdl-cp-cell:hover{border-color:var(--accent)}.mdl-cp-cell.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.mdl-cp-cell.active:after{background:var(--accent);opacity:1}.mdl-field.dirty .mdl-cp-cell.active{border-color:var(--warn)}.mdl-rebar{flex-direction:column;gap:6px;display:flex}.mdl-pane-actions{border-top:1px solid var(--border);align-items:center;gap:6px;padding-top:8px;display:flex}.mdl-selection-info{min-width:0;color:var(--text-dim);flex:1;font-size:11px}.mdl-parts{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.mdl-parts-head{color:var(--text);font-size:11px;font-weight:600}.mdl-list{flex-direction:column;gap:3px;max-height:190px;display:flex;overflow-y:auto}.mdl-row{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:4px 8px;display:flex}.mdl-row:hover{border-color:#4a9eff73}.mdl-row.selected{border-color:var(--accent);background:var(--accent-dim)}.mdl-row-label{flex-direction:column;flex:1;min-width:0;display:flex}.mdl-row-label b{color:var(--text);font-size:11px;font-weight:600}.mdl-row-label span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.mdl-row button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:12px}.mdl-row button:hover{color:var(--danger)}.mdl-cut-row{color:var(--text-dim);cursor:pointer;border-left:2px solid #fb923c;align-items:center;gap:6px;margin-left:14px;padding:2px 6px;font-size:10px;display:flex}.mdl-cut-row:hover{color:var(--text)}.mdl-cut-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mdl-cut-row input[type=number]{background:var(--surface);border:1px solid var(--border);width:52px;color:var(--text);border-radius:4px;padding:1px 4px;font-size:10px}.mdl-cut-row input[type=number]:disabled{opacity:.4}.mdl-cut-row input[type=checkbox]{accent-color:var(--accent);margin:0}.mdl-cut-row button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:10px}.mdl-cut-row button:hover{color:var(--accent)}.mdl-cut-warning{cursor:default;border-left-color:var(--warn);color:var(--warn);white-space:normal}.mdl-empty{color:var(--text-muted);padding:4px 2px;font-size:11px}.mdl-footer{gap:6px;display:flex}.mdl-footer .mdl-export{flex:1;padding:6px 8px;font-size:12px}.mdl-help-body p{color:var(--text-dim);margin:4px 0;font-size:11px;line-height:1.5}.mdl-cmdbar{z-index:57;backdrop-filter:blur(12px);min-width:440px;max-width:calc(100vw - 24px);color:var(--text-dim);background:#0f1117f5;border:1px solid #4a9eff73;border-radius:10px;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;display:none;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 16px 30px #0000004d}.mdl-cmdbar.visible{display:flex}.mdl-cmd-row{align-items:center;gap:8px;min-width:0;display:flex}.mdl-cmd-title{background:var(--accent-dim);color:var(--accent);border-radius:5px;flex-shrink:0;padding:2px 8px;font-weight:700}.mdl-cmd-prompt{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdl-cmd-input{background:var(--surface);border:1px solid var(--border);min-width:140px;color:var(--text);border-radius:5px;flex:1;padding:5px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.mdl-cmd-input:focus{border-color:var(--accent);outline:none}.mdl-cmd-readout{color:var(--accent);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px}.mdl-cmd-linear{grid-template-columns:repeat(4,1fr) auto;align-items:end;gap:6px;display:grid}.mdl-cmd-cut{grid-template-columns:1.3fr auto 1fr 1fr;align-items:end;gap:6px 8px;display:grid}.mdl-cmd-cut.mdl-cmd-cut-part{grid-template-columns:1fr}.mdl-menu{z-index:85;border:1px solid var(--border);background:#0f1117f5;border-radius:10px;flex-direction:column;gap:4px;min-width:180px;padding:6px;display:none;position:fixed;box-shadow:0 16px 30px #00000047}.mdl-menu.visible{display:flex}@media (width<=600px){.mdl-panel{width:calc(100vw - 24px);max-height:46vh}#modeling-panel.visible~.mdl-workplane-panel{right:12px}.mdl-cmdbar{min-width:0;bottom:12px;left:12px;right:12px;transform:none}.mdl-cmd-row{flex-wrap:wrap}.mdl-cmd-readout{order:5}.measure-badge{top:calc(56px + env(safe-area-inset-top,0px));gap:10px;padding:8px 16px;font-size:13px}.measure-badge button{min-width:44px;min-height:40px;padding:8px 14px;font-size:12px}}.measure-label-3d{pointer-events:none;border:1px solid var(--warn);color:var(--warn);white-space:nowrap;background:#0f1117e6;border-radius:5px;margin-top:-8px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11px;position:absolute;transform:translate(-50%,-100%)}.dimension-label-3d{pointer-events:none;border:1px solid var(--accent);color:var(--accent);white-space:nowrap;background:#0f1117eb;border-radius:5px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:11px;position:absolute;transform:translate(-50%,-50%)}.dimension-label-3d .dim-name{color:var(--text-dim);margin-right:6px}#snap-indicator{pointer-events:none;z-index:46;display:none;position:fixed}#snap-indicator.visible{display:block}#snap-indicator svg{overflow:visible}#snap-label{pointer-events:none;z-index:46;color:#4a9eff;white-space:nowrap;background:#0f1117e0;border:1px solid #4a9eff;border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:10px;display:none;position:fixed;transform:translate(-50%,6px)}#snap-label.visible{display:block}#numbering-series-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#numbering-series-modal.open{display:flex}.numbering-series-dialog{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(760px,100%);max-height:min(84vh,700px);display:flex;overflow:hidden}.numbering-series-dialog h3{padding:16px 18px 6px;font-size:16px;font-weight:600}.numbering-series-dialog>p{color:var(--text-dim);padding:0 18px 12px;font-size:12px}#numbering-series-list{border:1px solid var(--border);background:#00000026;border-radius:8px;flex:auto;min-height:80px;max-height:420px;margin:0 18px;overflow:auto}.numbering-series-table{border-collapse:collapse;width:100%;font-size:12px}.numbering-series-table th,.numbering-series-table td{text-align:left;border-bottom:1px solid #2a2e3a80;padding:8px 10px}.numbering-series-table th{background:var(--surface2);color:var(--text-dim);z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.numbering-series-table td:nth-child(3){color:var(--accent);font-family:JetBrains Mono,monospace}.numbering-series-table td:nth-child(4),.numbering-series-table td:nth-child(6){font-family:JetBrains Mono,monospace}.numbering-series-pick-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:11px}.numbering-series-pick-btn:disabled{opacity:.45;border-color:var(--border);color:var(--text-dim);cursor:not-allowed}.numbering-series-table tr.row-disabled{opacity:.55}.numbering-hours-input{border:1px solid var(--border);background:var(--surface2);width:86px;color:var(--text);border-radius:6px;padding:5px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.numbering-series-summary td{background:#4a9eff14;font-weight:600}.numbering-series-empty{color:var(--text-muted);text-align:center;padding:20px 12px;font-size:12px}#numbering-series-meta{color:var(--text-dim);padding:12px 18px 10px;font-size:12px}.numbering-series-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;padding:0 18px 16px;display:flex}.quantity-tool-btn{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}.quantity-tool-btn.primary{border-color:var(--accent);color:var(--accent)}.quantity-tool-btn:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}.numbering-series-table th input[type=checkbox]{vertical-align:middle;margin:0}.quantity-tool-body{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.quantity-report-form{border:1px solid var(--border);background:#0000001f;border-radius:8px;flex:none;margin:0 18px 10px;font-size:12px}.quantity-report-form>summary{cursor:pointer;user-select:none;padding:7px 10px;font-weight:600}.quantity-report-fields{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 10px;max-height:min(34vh,240px);padding:2px 10px 10px;display:grid;overflow:auto}.quantity-report-field{flex-direction:column;gap:3px;min-width:0;display:flex}.quantity-report-field.wide{grid-column:span 2}.quantity-report-field>span{color:var(--text-dim);font-size:11px}.quantity-report-field input,.quantity-report-field textarea{border:1px solid var(--border);background:var(--surface2);width:100%;min-width:0;color:var(--text);resize:vertical;border-radius:6px;padding:5px 7px;font-family:inherit;font-size:12px}@media (width<=520px){.quantity-report-field.wide{grid-column:auto}}#numbering-series-quantities-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#numbering-series-quantities-modal.open{display:flex}#numbering-series-quantities-list{border:1px solid var(--border);background:#00000026;border-radius:8px;flex:auto;min-height:80px;max-height:420px;margin:0 18px;overflow:auto}#numbering-series-quantities-meta{color:var(--text-dim);padding:12px 18px 10px;font-size:12px}.grouping-bar{flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 18px 12px;display:flex}.grouping-bar-label{align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:600;display:flex}.grouping-bar-select{border:1px solid var(--border);background:var(--surface2);min-width:0;max-width:min(420px,100%);color:var(--text);border-radius:6px;padding:5px 8px;font-family:inherit;font-size:12px}.grouping-bar-hint{color:var(--text-dim);flex:200px;font-size:11px}.tekla-filter-bar{border:1px solid var(--border);background:#0000001f;border-radius:8px;flex-direction:column;gap:8px;margin:0 18px 12px;padding:8px 10px;display:flex}.tekla-filter-header{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.tekla-filter-heading{font-size:12px;font-weight:600}.tekla-filter-hint{color:var(--text-dim);flex:160px;font-size:11px}.tekla-filter-clear{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text-dim);border-radius:6px;padding:4px 8px;font-family:inherit;font-size:11px}.tekla-filter-clear:disabled{opacity:.45;cursor:not-allowed}.tekla-filter-row{align-items:flex-start;gap:8px;display:flex}.tekla-filter-label{color:var(--text-dim);flex:0 0 104px;padding-top:5px;font-size:11px}.tekla-filter-chips{flex-wrap:wrap;gap:6px;min-width:0;max-height:96px;display:flex;overflow:auto}.tekla-filter-chip{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:inline-flex}.tekla-filter-chip input{cursor:pointer;margin:0}.tekla-filter-chip.active{border-color:var(--accent);color:var(--accent);background:#4a9eff29}.tekla-filter-chip-count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:10px}@media (width<=520px){.tekla-filter-row{flex-direction:column;gap:4px}.tekla-filter-label{flex:none;padding-top:0}}#structural-types-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#structural-types-modal.open{display:flex}#structural-types-modal .numbering-series-dialog{width:min(940px,100%);max-height:min(86vh,760px)}.structural-types-filters{flex-wrap:wrap;gap:8px;padding:0 18px 12px;display:flex}.structural-types-filters input,.structural-types-filters select{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12px}.structural-types-filters input{flex:200px}.structural-types-filters select{flex:0 180px}#structural-types-list{border:1px solid var(--border);background:#00000026;border-radius:8px;max-height:440px;margin:0 18px;overflow:auto}.structural-types-table{border-collapse:collapse;width:100%;font-size:12px}.structural-types-table th,.structural-types-table td{text-align:left;border-bottom:1px solid #2a2e3a80;padding:8px 10px}.structural-types-table th{background:var(--surface2);color:var(--text-dim);z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.structural-types-code{color:var(--accent);cursor:pointer;font-family:JetBrains Mono,monospace}.structural-types-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px}.structural-types-row.expanded{background:#4a9eff0f}.structural-types-missing{color:var(--text-muted);font-style:italic}.structural-types-detail-row>td{background:#0003;padding:0 10px 8px 34px}.structural-types-detail-table{border-collapse:collapse;width:100%;font-size:11px}.structural-types-detail-table th,.structural-types-detail-table td{text-align:left;border-bottom:1px solid #2a2e3a66;padding:5px 8px}.structural-types-detail-table th{color:var(--text-dim);font-weight:600}.structural-types-detail-table td:first-child{font-family:JetBrains Mono,monospace}.structural-types-pick-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:11px}#structural-types-meta{color:var(--text-dim);padding:12px 18px 10px;font-size:12px}#view-filter-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#view-filter-modal.open{display:flex}#view-filter-modal .numbering-series-dialog{width:min(560px,100%);max-height:min(86vh,760px)}.view-filter-toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:0 18px 12px;display:flex}.view-filter-toolbar input{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;flex:200px;padding:6px 8px;font-family:inherit;font-size:12px}#view-filter-clear{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text-dim);border-radius:6px;padding:6px 10px;font-family:inherit;font-size:11px}.view-filter-mode{flex-wrap:wrap;align-items:center;gap:8px 10px;padding:0 18px 12px;display:flex}.view-filter-mode-label{color:var(--text-dim);font-size:12px}.view-filter-mode-buttons{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.view-filter-mode-btn{background:var(--surface2);color:var(--text-dim);cursor:pointer;border:none;padding:6px 12px;font-family:inherit;font-size:11px}.view-filter-mode-btn+.view-filter-mode-btn{border-left:1px solid var(--border)}.view-filter-mode-btn.active{color:var(--accent);background:#4a9eff2e;font-weight:600}#view-filter-list{border:1px solid var(--border);background:#00000026;border-radius:8px;max-height:440px;margin:0 18px;overflow:auto}.view-filter-group{border-bottom:1px solid #2a2e3a80}.view-filter-group:last-child{border-bottom:none}.view-filter-group-header{background:var(--surface2);align-items:center;gap:8px;padding:8px 10px;display:flex}.view-filter-group.has-selection .view-filter-group-header{background:#4a9eff1a}.view-filter-group-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex:none;width:16px;padding:0 2px;font-size:12px}.view-filter-group-all{cursor:pointer;flex:none}.view-filter-group-label{cursor:pointer;user-select:none;flex:1;font-size:12px;font-weight:600}.view-filter-group-count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.view-filter-group-body{padding:4px 0}.view-filter-option{cursor:pointer;align-items:center;gap:8px;padding:4px 12px 4px 30px;font-size:12px;display:flex}.view-filter-option:hover{background:#ffffff0a}.view-filter-option input{cursor:pointer;flex:none}.view-filter-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.view-filter-option-count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.view-filter-more{color:var(--text-muted);padding:6px 12px 6px 30px;font-size:11px}#view-filter-meta{color:var(--text-dim);padding:12px 18px 10px;font-size:12px}#view-filter-apply,#view-filter-show-all,#view-filter-close{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#view-filter-apply{border-color:var(--accent);color:var(--accent)}#view-filter-apply:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#floor-plan-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#floor-plan-modal.open{display:flex}#floor-plan-modal .floor-plan-dialog{width:min(1080px,100%);max-height:min(90vh,860px)}.floor-plan-body{flex:1;gap:14px;min-height:0;padding:0 18px 14px;display:flex;overflow:hidden}.floor-plan-controls{flex-direction:column;flex:0 0 320px;gap:12px;padding-right:4px;display:flex;overflow:auto}.floor-plan-section{border:1px solid var(--border);background:#00000026;border-radius:8px;padding:10px 12px}.floor-plan-section h4{color:var(--text);margin:0 0 8px;font-size:12px;font-weight:600}.floor-plan-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.floor-plan-section-head h4{margin:0}.floor-plan-mini-btns{gap:6px;display:flex}.floor-plan-mini-btns-wide{margin-top:8px}.floor-plan-mini-btns-wide .floor-plan-mini-btn{flex:1}.floor-plan-mini-btn{border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);cursor:pointer;border-radius:6px;padding:3px 8px;font-size:11px}.floor-plan-field{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.floor-plan-field:last-child{margin-bottom:0}.floor-plan-field>label{color:var(--text-dim);flex:1}.floor-plan-field select,.floor-plan-field input[type=number]{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;flex:0 0 130px;padding:5px 7px;font-family:inherit;font-size:12px}.floor-plan-field.floor-plan-checkbox{justify-content:flex-start}.floor-plan-field.floor-plan-checkbox input,.floor-plan-field.floor-plan-checkbox label{flex:none}.floor-plan-value{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:12px}#floor-plan-type-list,#floor-plan-series-list,#floor-plan-story-info-list{border:1px solid var(--border);background:var(--surface2);border-radius:6px;max-height:200px;overflow:auto}#floor-plan-series-search,#floor-plan-story-info-search{box-sizing:border-box;border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);border-radius:6px;margin-bottom:6px;padding:6px 8px;font-family:inherit;font-size:12px}.floor-plan-hint{color:var(--text-dim);margin:0 0 8px;font-size:11px}.floor-plan-type-option{cursor:pointer;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:flex}.floor-plan-type-option:hover{background:#ffffff0a}.floor-plan-type-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.floor-plan-type-count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.floor-plan-footer{flex-wrap:wrap;flex:none;align-items:center}.floor-plan-footer button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#floor-plan-generate{border-color:var(--accent);color:var(--accent)}.floor-plan-footer button:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}.floor-plan-progress{color:var(--text-dim);font-size:12px}.floor-plan-footer .floor-plan-progress{flex:160px;min-width:0;margin-right:auto}.floor-plan-stats{color:var(--text-dim);flex-direction:column;gap:8px;font-size:12px;display:flex}.floor-plan-stats-grid{border:1px solid var(--border);background:#00000026;border-radius:6px;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;display:grid}.floor-plan-stat-key{color:var(--text-dim)}.floor-plan-stat-val{color:var(--text);text-align:right;font-family:JetBrains Mono,monospace}.floor-plan-warning{color:#ffb38a;background:#b4552b1f;border:1px solid #b4552b;border-radius:6px;padding:8px 10px;font-size:12px}.floor-plan-warnings summary{cursor:pointer;color:var(--text-dim)}.floor-plan-warning-list{flex-direction:column;gap:2px;max-height:160px;margin-top:6px;display:flex;overflow:auto}.floor-plan-warning-list>div{color:var(--text-muted);font-size:11px}.floor-plan-warning-more{font-style:italic}.floor-plan-preview-col{flex-direction:column;flex:1;min-width:0;display:flex}.floor-plan-preview-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.floor-plan-mini-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.floor-plan-preview{border:1px solid var(--border);background:#d9d9d9;border-radius:8px;flex:1;justify-content:center;align-items:flex-start;min-width:0;min-height:120px;padding:12px;display:flex;overflow:auto}.floor-plan-preview svg{touch-action:none;cursor:grab;background:#fff;box-shadow:0 2px 12px #0006}.floor-plan-preview.floor-plan-align-active svg{cursor:crosshair}.floor-plan-preview.floor-plan-panning svg{cursor:grabbing}.floor-plan-annot-section .floor-plan-mini-btns{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.floor-plan-annot-section select{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;padding:3px 6px;font-family:inherit;font-size:12px}.floor-plan-annot-info{min-height:3em;line-height:1.4}.floor-plan-preview.floor-plan-annot-active svg{cursor:crosshair}.floor-plan-zoom{align-items:center;gap:4px;margin-left:auto;display:flex}.floor-plan-align-info{min-height:2.8em;margin:0 0 6px;line-height:1.4;display:block}.floor-plan-zoom-level{text-align:center;min-width:44px;color:var(--text-dim);font-size:12px}.floor-plan-segmented{margin-bottom:8px;display:flex}.floor-plan-segmented .view-filter-mode-btn{flex:1;padding:6px 4px}.floor-plan-subpanel{margin-top:8px}.floor-plan-subpanel[hidden],.floor-plan-field[hidden]{display:none}.floor-plan-hint-inline{margin:0}.floor-plan-hint-warn{color:var(--warn)}.floor-plan-model-list{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.floor-plan-model-row{border:1px solid var(--border);background:var(--surface2);border-radius:6px;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.floor-plan-model-row.active{border-color:var(--accent);background:#4a9eff1f}.floor-plan-model-row input{cursor:pointer;flex:none}.floor-plan-model-name{min-width:0;color:var(--text);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:3px 0;font-family:inherit;font-size:12px;overflow:hidden}.floor-plan-model-row.active .floor-plan-model-name{color:var(--accent);font-weight:600}.floor-plan-model-tag{color:var(--text-dim);flex:none;font-size:10px}.floor-plan-layer-options{flex-direction:column;gap:4px;display:flex}.floor-plan-layer-options[hidden]{display:none}.floor-plan-layer-options label{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.floor-plan-layer-caption{color:var(--accent);margin-bottom:6px;font-size:11px}.floor-plan-layer-caption:empty{display:none}.floor-plan-field input[type=text]{border:1px solid var(--border);background:var(--surface2);min-width:0;color:var(--text);border-radius:6px;flex:0 0 170px;padding:5px 7px;font-family:inherit;font-size:12px}.floor-plan-strip{border:1px solid var(--border);background:var(--surface2);cursor:ns-resize;touch-action:none;user-select:none;border-radius:6px;height:170px;margin-bottom:6px;overflow:hidden}.floor-plan-strip svg{display:block}.fp-strip-bg{fill:#0000002e}.fp-strip-tick{stroke:var(--border);stroke-width:1px}.fp-strip-axis{fill:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:9px}.fp-strip-bar{fill:#4a9eff73}.fp-strip-auto{fill:#34d39924;stroke:#34d39999;stroke-dasharray:3 3}.fp-strip-storey{stroke:var(--text-muted);stroke-width:1px;stroke-dasharray:4 3}.fp-strip-storey-label{fill:var(--text-dim);font-size:9px}.fp-strip-band{fill:#f871712e}.fp-strip-cut{stroke:var(--danger);stroke-width:2px}.fp-strip-cut-label{fill:var(--danger);font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.floor-plan-chips{flex-wrap:wrap;gap:4px;display:flex}.floor-plan-chip{border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;padding:2px 8px;font-family:inherit;font-size:11px;overflow:hidden}.floor-plan-chip:hover{color:var(--accent);border-color:var(--accent)}.floor-plan-extra-filters>summary{cursor:pointer;color:var(--text);justify-content:space-between;gap:8px;font-size:12px;font-weight:600;display:flex}.floor-plan-filter-summary{color:var(--text-dim);font-size:11px;font-weight:400}.floor-plan-extra-filters[open]>summary{margin-bottom:8px}.floor-plan-subhead{margin-top:10px}@media (width<=860px){.floor-plan-body{flex-direction:column;overflow-y:auto}.floor-plan-controls{flex:none;overflow:visible}.floor-plan-preview-col{flex:none}.floor-plan-preview{flex:none;min-height:60vh}}#floor-plan-controls-toggle{display:none}#floor-plan-modal.floor-plan-fullscreen #floor-plan-controls-toggle{display:inline-block}#floor-plan-modal.floor-plan-fullscreen .floor-plan-dialog:not(.popup-window-minimized){box-shadow:none;resize:none;border:0;border-radius:0;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;position:fixed!important;inset:0!important}#floor-plan-modal.floor-plan-fullscreen .popup-window-resize-handle{display:none}#floor-plan-modal.floor-plan-fullscreen .popup-window-titlebar{cursor:default}#floor-plan-modal.floor-plan-fullscreen .floor-plan-dialog>p{display:none}#floor-plan-modal.floor-plan-fullscreen .floor-plan-body{min-height:0;padding:0 10px 8px}#floor-plan-modal.floor-plan-fullscreen .floor-plan-footer{padding-bottom:10px}#floor-plan-modal.floor-plan-fullscreen .floor-plan-preview-col{min-height:0}#floor-plan-modal.floor-plan-fullscreen .floor-plan-align-info{min-height:1.4em}#floor-plan-modal.floor-plan-fullscreen .floor-plan-preview{flex:1;align-items:stretch;min-height:0;padding:0;overflow:hidden}#floor-plan-modal.floor-plan-fullscreen .floor-plan-preview svg{box-shadow:none;width:100%!important;height:100%!important;max-height:none!important}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-body{flex-direction:column;gap:8px;overflow:hidden}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-controls{flex-direction:row;flex:none;padding:0;overflow:visible}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-controls>:not(.floor-plan-annot-section){display:none}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-annot-section{flex-wrap:wrap;flex:1;align-items:center;gap:6px 12px;padding:6px 10px;display:flex}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-annot-section h4,#floor-plan-modal.floor-plan-controls-hidden .floor-plan-annot-section .floor-plan-mini-btns{margin:0}#floor-plan-modal.floor-plan-controls-hidden .floor-plan-annot-info{flex:240px;min-height:0}#element-2d-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#element-2d-modal.open{display:flex}#element-2d-modal .element-2d-dialog{width:min(920px,100%);height:min(82vh,700px);max-height:none}#element-2d-meta{color:var(--text-dim);padding:0 18px 8px;font-size:12px}#element-2d-preview{flex:1;min-height:0;margin:0 18px 16px}.element-2d-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 18px 12px;display:flex}.element-2d-scale-field{flex:none;margin-bottom:0}.element-2d-scale-field select{flex:0 0 150px}.element-2d-zoom-group{align-items:center;gap:6px;display:flex}#element-2d-zoom-level{text-align:center;min-width:42px;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}#precast-drawing-modal{z-index:211;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#precast-drawing-modal.open{display:flex}#precast-drawing-modal .precast-dialog{width:min(1180px,100%);height:min(90vh,880px);max-height:none}.precast-pages{flex-direction:column;gap:4px;display:flex}.precast-page-btn{text-align:left;padding:5px 8px;font-size:12px}.precast-section>summary{cursor:pointer;color:var(--text);font-size:12px;font-weight:600}.precast-section[open]>summary{margin-bottom:8px}.precast-page-label{min-width:86px}.precast-preview{min-height:320px}@media (width>=861px){.precast-preview{min-height:0}}#precast-drawing-modal .floor-plan-field input[type=text]{flex:0 0 180px}#precast-drawing-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#precast-drawing-modal .numbering-series-actions .precast-primary{border-color:var(--accent);color:var(--accent)}#precast-drawing-modal .precast-viewer-option{color:var(--text);cursor:pointer;align-items:center;gap:6px;margin-right:auto;font-size:12px;display:flex}#precast-drawing-modal .numbering-series-actions button:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#frame-concept-modal{z-index:211;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#frame-concept-modal.open{display:flex}#frame-concept-modal .frame-dialog{width:min(460px,100%);height:min(88vh,900px);max-height:none}.frame-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:0 18px 12px;display:flex;overflow:auto}.frame-section>summary{cursor:pointer;color:var(--text);font-size:12px;font-weight:600}.frame-section[open]>summary{margin-bottom:8px}.frame-section{flex-direction:column;gap:6px;display:flex}.frame-section .frame-section{background:0 0}.frame-note{color:var(--text-dim);font-size:11px;line-height:1.4}.frame-section .floor-plan-stats-grid{font-size:11px}.frame-section .floor-plan-stat-val{overflow-wrap:anywhere}.frame-section .floor-plan-warning{padding:6px 8px;font-size:11px}.frame-buttons{flex-wrap:wrap;gap:6px;display:flex}.frame-check{color:var(--text);cursor:pointer;align-items:flex-start;gap:6px;font-size:12px;display:flex}.frame-check input{margin-top:2px}.frame-candidate{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.frame-wall{border-top:1px solid #2a2e3a99;flex-direction:column;align-items:flex-start;gap:4px;padding-top:6px;display:flex}.frame-wall-detail{color:var(--text-dim);font-size:11px}.frame-tabs{gap:6px;display:flex}.frame-tab{text-align:left;flex:1;padding:6px 8px;font-size:12px}.frame-summary{color:var(--text);margin:0;font-size:12px}.frame-list-title{color:var(--text-dim);font-size:11px;font-weight:600}.frame-ai-status{color:var(--text);margin:0;font-size:12px}.frame-section .frame-code input{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;flex:0 0 200px;padding:5px 7px;font-family:inherit;font-size:12px}.frame-section textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12px}.frame-rules{white-space:pre-wrap;color:var(--text-dim);max-height:260px;margin:0;font-family:inherit;font-size:11px;overflow:auto}.frame-actions{flex-wrap:wrap;flex:none;align-items:center;padding-top:10px}.frame-status{color:var(--text-dim);flex:160px;min-width:0;margin:0 auto 0 0;font-size:12px}#frame-concept-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#frame-concept-modal .numbering-series-actions .precast-primary{border-color:var(--accent);color:var(--accent)}#frame-concept-modal .numbering-series-actions button:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#dwg-drawing-modal{z-index:211;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#dwg-drawing-modal.open{display:flex}#dwg-drawing-modal .dwg-dialog{width:min(420px,100%);height:min(80vh,760px);max-height:none}#dwg-drawing-modal .dwg-dialog>p{overflow-wrap:anywhere;padding-top:4px;font-size:11px;line-height:1.4}#dwg-drawing-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#dwg-drawing-modal .numbering-series-actions .precast-primary{border-color:var(--accent);color:var(--accent)}.dwg-field{color:var(--text);flex-direction:column;gap:4px;font-size:12px;display:flex}.dwg-field-label{color:var(--text-dim);font-size:11px;font-weight:600}.dwg-field select,.dwg-field input[type=text],#dwg-drawing-modal input[type=search]{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;min-width:0;padding:5px 7px;font-family:inherit;font-size:12px}.dwg-field input.invalid{border-color:var(--danger)}.dwg-inline{align-items:center;gap:6px;display:flex}.dwg-inline input{flex:1}.dwg-inline button,#dwg-drawing-modal .frame-buttons button{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 9px;font-family:inherit;font-size:11px}.dwg-inline button:hover:not(:disabled),#dwg-drawing-modal .frame-buttons button:hover{border-color:var(--accent);color:var(--accent)}.dwg-inline button:disabled{opacity:.45;cursor:not-allowed}.dwg-warn{color:var(--danger)}#dwg-drawing-modal .dwg-credit{flex-shrink:0;padding:6px 18px 0}#dwg-drawing-modal .dwg-credit a{color:var(--accent)}.dwg-notes{flex-direction:column;gap:6px;display:flex}.dwg-layers{border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:#00000026;border-radius:8px;min-height:80px;max-height:260px;padding:4px;overflow:auto}.dwg-layer{color:var(--text);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:3px 4px;font-size:12px;display:flex}.dwg-layer:hover{background:var(--surface-hover)}.dwg-layer input{accent-color:var(--accent);cursor:pointer;flex-shrink:0}.dwg-swatch{border:1px solid var(--border);border-radius:2px;flex-shrink:0;width:10px;height:10px}.dwg-layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dwg-layer-count{color:var(--text-dim);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:10px}#ifc-assistant-modal{z-index:211;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#ifc-assistant-modal.open{display:flex}#ifc-assistant-modal .assistant-dialog{width:min(480px,100%);height:min(88vh,900px);max-height:none}#ifc-assistant-modal .assistant-dialog>p{padding-top:10px;font-size:11px;line-height:1.4}.assistant-messages{flex-direction:column;flex:1;gap:8px;min-height:0;padding:0 18px 8px;display:flex;overflow:auto}.assistant-hint{color:var(--text-dim);margin:0;font-size:12px}.assistant-example{text-align:left;border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:7px 10px;font-family:inherit;font-size:12px}.assistant-example:hover{border-color:var(--accent);color:var(--accent)}.assistant-message{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;max-width:94%;padding:8px 10px;font-size:12.5px;line-height:1.45;display:flex}.assistant-user{background:var(--accent-dim);border-color:var(--accent);align-self:flex-end}.assistant-assistant{background:var(--surface2);align-self:flex-start}.assistant-error{border-color:var(--danger);color:var(--danger)}.assistant-pending{color:var(--text-dim)}.assistant-text{white-space:pre-wrap;overflow-wrap:anywhere}.assistant-set{border-top:1px solid #2a2e3a99;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding-top:6px;display:flex}.assistant-set-label{color:var(--text-dim);overflow-wrap:anywhere;min-width:0;font-size:11px}.assistant-set-buttons{flex-wrap:wrap;gap:6px;display:flex}.assistant-set-buttons button{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:11px}.assistant-set-buttons button:disabled{opacity:.45;border-color:var(--border);color:var(--text-dim);cursor:not-allowed}.assistant-steps{color:var(--text-dim);font-size:11px}.assistant-steps summary,.assistant-code summary{cursor:pointer}.assistant-steps ul,.assistant-live{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.assistant-live{font-size:11px}.assistant-step-error{color:var(--danger)}.assistant-meta{color:var(--text-dim);font-size:10px}.assistant-compose{flex-direction:column;flex:none;gap:6px;padding:6px 18px 0;display:flex}.assistant-compose textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--border);background:var(--surface2);width:100%;min-height:44px;max-height:160px;color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12.5px}.assistant-compose textarea:disabled{opacity:.6}.assistant-code{color:var(--text-dim);font-size:11px}.assistant-code input{border:1px solid var(--border);background:var(--surface2);width:200px;color:var(--text);border-radius:6px;margin-top:4px;padding:5px 7px;font-family:inherit;font-size:12px}#ifc-assistant-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#ifc-assistant-modal .numbering-series-actions .precast-primary{border-color:var(--accent);color:var(--accent)}#ifc-assistant-modal .numbering-series-actions .assistant-stop{border-color:var(--danger);color:var(--danger)}#ifc-assistant-modal .numbering-series-actions button:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#numbering-series-modal,#numbering-series-quantities-modal,#structural-types-modal,#view-filter-modal,#floor-plan-modal,#element-2d-modal,#precast-drawing-modal,#edit-part-modal,#frame-concept-modal,#ifc-assistant-modal,#dwg-drawing-modal{pointer-events:none;background:0 0}.popup-window{resize:both;pointer-events:auto;min-width:320px;max-width:calc(100vw - 24px);min-height:240px;max-height:calc(100vh - 24px);position:absolute;overflow:hidden;box-shadow:0 18px 48px #00000059}.popup-window-titlebar{cursor:move;user-select:none;touch-action:none;background:linear-gradient(#ffffff0a,#fff0);border-bottom:1px solid #2a2e3a8c;justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex;padding:0 0 0 18px!important}.popup-window-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.popup-window-controls{align-self:stretch;margin-left:auto;display:flex}.popup-window-control{width:46px;height:100%;color:var(--text-dim);cursor:default;background:0 0;border:0;border-left:1px solid #2a2e3a66;border-radius:0;place-items:center;font:16px/1 DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;display:grid}.popup-window-control:hover{color:var(--text);background:#ffffff14}.popup-window-close:hover{color:#fff;background:#c42b1c}.popup-window-dragging,.popup-window-resizing{opacity:.96}.popup-window-resize-handle{z-index:2;pointer-events:auto;touch-action:none;position:absolute}.popup-window-resize-top,.popup-window-resize-bottom{cursor:ns-resize;height:8px;left:12px;right:12px}.popup-window-resize-top{top:0}.popup-window-resize-bottom{bottom:0}.popup-window-resize-left,.popup-window-resize-right{cursor:ew-resize;width:8px;top:12px;bottom:12px}.popup-window-resize-left{left:0}.popup-window-resize-right{right:0}.popup-window-maximized{resize:none}.popup-window-maximized .popup-window-resize-handle,.popup-window-minimized .popup-window-resize-handle{display:none}.popup-window-minimized{resize:none;min-height:44px}.popup-window-minimized>:not(.popup-window-titlebar){display:none!important}.popup-window-detach{font-size:15px}.popup-window.popup-window-detached{box-shadow:none;resize:none;border:0!important;border-radius:0!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;position:fixed!important;inset:0!important}.popup-window-detached .popup-window-resize-handle,.popup-window-detached .popup-window-minimize,.popup-window-detached .popup-window-maximize{display:none}.popup-window-detached .popup-window-titlebar{cursor:default}body.popup-window-host>div{background:var(--bg,#0f1117)!important;pointer-events:auto!important;padding:0!important;position:fixed!important;inset:0!important}#fem-modal{z-index:211;pointer-events:none;display:none;position:fixed;inset:0}#fem-modal.open{display:block}#fem-menu{z-index:230;border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:220px;padding:6px;display:none;position:fixed;box-shadow:0 12px 36px #00000059}#fem-menu.visible{display:grid}#fem-menu button{text-align:left;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:7px;gap:2px;padding:9px 11px;display:grid}#fem-menu button:hover{background:var(--surface-hover)}#fem-menu button strong{font-size:12px}#fem-menu button span{color:var(--text-dim);font-size:10px}#fem-modal .fem-dialog{top:calc(var(--top-bar-height) + 8px);pointer-events:auto;border-radius:12px;width:min(460px,100vw - 24px);max-height:none;position:absolute;bottom:12px;right:12px;box-shadow:0 16px 44px #00000061}.fem-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:0 18px;display:flex}.fem-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:500}.fem-tab:hover{color:var(--text)}.fem-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.fem-content{flex:1;min-height:0;overflow:auto}.fem-panel{flex-direction:column;gap:12px;padding:16px 18px;display:none}.fem-panel.visible{display:flex}.fem-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-top:4px;font-size:12px;font-weight:600}.fem-hint{color:var(--text-dim);font-size:12px;line-height:1.5}.fem-mesh-info{color:var(--text);flex-direction:column;gap:4px;font-size:12px;line-height:1.5;display:flex}.fem-mesh-info>div:nth-child(2){color:var(--text-dim)}.fem-mesh-warning{color:var(--warn);font-size:12px;line-height:1.5}.fem-legend{border:1px solid var(--border);background:#00000026;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.fem-legend-title{font-size:12px;font-weight:600}.fem-legend-bar{border:1px solid var(--border);border-radius:4px;height:14px}.fem-legend-labels{height:16px;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px;position:relative}.fem-legend-labels span{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.fem-legend-labels span.start{transform:none}.fem-legend-labels span.end{transform:translate(-100%)}.fem-legend-extremes{color:var(--text-dim);flex-direction:column;gap:2px;font-size:12px;display:flex}.fem-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.fem-row-scale{align-items:center}.fem-scale-label{color:var(--text-dim);font-size:12px}.fem-field{color:var(--text-dim);flex-direction:column;gap:4px;font-size:11px;display:flex}.fem-field>span{font-weight:500}.fem-input{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;min-width:140px;padding:7px 8px;font-family:inherit;font-size:12px}input.fem-input[type=number]{min-width:96px;font-family:JetBrains Mono,monospace}.fem-range{width:220px;accent-color:var(--accent)}.fem-checks{flex-wrap:wrap;gap:12px;display:flex}.fem-check{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.fem-check input{accent-color:var(--accent)}.fem-dof-row{gap:8px}.fem-badge{border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:500;display:inline-block}.fem-subpanel{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.fem-btn{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);white-space:nowrap;border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}.fem-btn:hover:not(:disabled){background:var(--surface-hover)}.fem-btn:disabled{opacity:.45;cursor:not-allowed;color:var(--text-dim)}.fem-btn-primary{border-color:var(--accent);color:var(--accent)}.fem-nudge-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.fem-nudge-btn{touch-action:manipulation;min-height:38px}.fem-summary{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.fem-stat{border:1px solid var(--border);background:#00000026;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.fem-stat-label{color:var(--text-dim);font-size:11px}.fem-stat strong{font-family:JetBrains Mono,monospace;font-size:14px}.fem-issues{flex-direction:column;gap:6px;display:flex}.fem-issue{border-left:3px solid var(--border);background:#00000026;border-radius:6px;padding:7px 10px;font-size:12px}.fem-issue-error{border-left-color:var(--danger);color:var(--danger)}.fem-issue-warning{border-left-color:var(--warn);color:var(--warn)}.fem-issue-info{border-left-color:var(--success);color:var(--success)}.fem-issue-code{letter-spacing:.02em;opacity:.85;background:#ffffff14;border-radius:3px;margin-right:6px;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;display:inline-block}.fem-list{border:1px solid var(--border);background:#00000026;border-radius:8px;max-height:320px;overflow:auto}.fem-empty{color:var(--text-muted);text-align:center;padding:16px 12px;font-size:12px}.fem-node-row{cursor:pointer;border-bottom:1px solid #2a2e3a80;grid-template-columns:20px 70px 1fr 80px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:grid}.fem-node-row:hover{background:var(--surface-hover)}.fem-node-row input{accent-color:var(--accent)}.fem-node-label{font-weight:500}.fem-node-support{color:var(--accent);text-align:right;font-size:11px}.fem-lc-row{border-bottom:1px solid #2a2e3a80;align-items:center;gap:8px;display:flex}.fem-lc-row.active{background:var(--accent-dim)}.fem-lc-select{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 10px;font-family:inherit;font-size:12px}.fem-lc-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:13px}.fem-lc-remove:hover{color:var(--danger)}.fem-load-row,.fem-combo-row{border-bottom:1px solid #2a2e3a80;padding:7px 10px;font-size:12px}.fem-combo-row{flex-direction:column;gap:2px;display:flex}.fem-combo-row .fem-mono{color:var(--text-dim);font-size:11px}.fem-mono{font-family:JetBrains Mono,monospace}.fem-log{border:1px solid var(--border);max-height:260px;color:var(--text-dim);background:#00000040;border-radius:8px;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:11px;overflow:auto}.fem-log-line{padding:2px 0}.fem-status{color:var(--text-dim);min-height:20px;padding:10px 18px 0;font-size:12px}.fem-status-error{color:var(--danger)}.fem-status-success{color:var(--success)}@media (width<=720px){#fem-modal .fem-dialog{width:auto;height:min(68vh,680px);inset:auto 8px 8px}.fem-input{min-width:120px}.fem-range{width:100%}.fem-node-row{grid-template-columns:20px 60px 1fr}.fem-node-support{display:none}.fem-nudge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fem-nudge-btn{min-height:44px}}.fem-tooldock{top:calc(var(--top-bar-height) + 8px);pointer-events:none;z-index:1;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;left:12px;right:calc(min(460px,100vw - 24px) + 24px)}#fem-modal.fem-panel-collapsed .fem-dialog{display:none}#fem-modal.fem-panel-collapsed .fem-tooldock{right:12px}.fem-ribbon,.fem-tooloptions,.fem-cmdbar,.fem-dock-status{pointer-events:auto;backdrop-filter:blur(12px);border:1px solid var(--border);background:#0f1117f2;border-radius:10px;max-width:100%;box-shadow:0 10px 28px #0000004d}.fem-ribbon{scrollbar-width:thin;align-items:stretch;gap:2px;width:100%;padding:4px 6px;display:flex;overflow-x:auto}.fem-rgroup{border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:2px;padding:0 3px;display:flex}.fem-rgroup:last-child{border-right:none}.fem-rgroup-accent .fem-rb .fem-rb-label{color:var(--text)}.fem-rgroup-body{flex:1;align-items:center;gap:2px;display:flex}.fem-rgroup-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:9.5px}.fem-ribbon-spacer{flex:1;min-width:0}.fem-rb{min-width:46px;color:var(--text-dim);cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:7px;flex-direction:column;align-items:center;gap:2px;padding:5px 2px 3px;font-family:inherit;display:flex;position:relative}.fem-rb svg{width:20px;height:20px}.fem-rb-label{white-space:nowrap;font-size:10.5px;font-weight:600}.fem-rb kbd{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:8.5px;position:absolute;top:2px;right:3px}.fem-rb:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.fem-rb.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.fem-rb:disabled{opacity:.4;cursor:not-allowed}.fem-rb-small{justify-content:center;min-width:30px;padding:4px 6px;font-size:16px;font-weight:600}.fem-rb-lc{flex-direction:column;gap:3px;padding-left:4px;display:flex}.fem-rb-lc-row{align-items:center;gap:4px;display:flex}.fem-rgroup-compact .fem-rb{min-width:34px}.fem-rgroup-compact .fem-rb-label,.fem-rgroup-compact .fem-rb kbd{display:none}.fem-rgroup-compact .fem-rb svg{width:19px;height:19px;margin:4px 0}.fem-rb-lc-label{color:var(--text-dim);font-size:10px}.fem-lc-picker{min-width:110px;max-width:150px;padding:5px 6px}.fem-tooloptions{padding:8px 10px;display:none}.fem-tooloptions.visible{display:block}.fem-opts{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:none}.fem-opts.visible{display:flex}.fem-opts-hint{color:var(--text-dim);font-size:12px;line-height:1.45}.fem-opts-hint:empty{display:none}.fem-section-picker{flex-direction:column;gap:6px;display:flex}.fem-section-picker-compact .fem-input{min-width:96px}.fem-custom-section .fem-input{width:110px;min-width:90px}.fem-input-narrow,input.fem-input.fem-input-narrow[type=number]{width:84px;min-width:64px}.fem-row-tight{gap:6px}.fem-segmented{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.fem-seg-btn{border:none;border-right:1px solid var(--border);color:var(--text-dim);cursor:pointer;touch-action:manipulation;background:0 0;padding:6px 10px;font-family:inherit;font-size:12px}.fem-seg-btn:last-child{border-right:none}.fem-seg-btn:hover{background:var(--surface-hover);color:var(--text)}.fem-seg-btn.active{background:var(--accent-dim);color:var(--accent)}.fem-dof-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 12px;width:100%;display:grid}.fem-dof-cell{align-items:center;gap:6px;display:flex}.fem-dof-label{width:22px;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.fem-dof-cell select.fem-input{min-width:88px}.fem-brush-bar{align-items:center;width:100%}.fem-brush-summary{min-width:160px;color:var(--warn);flex:1;font-family:JetBrains Mono,monospace;font-size:11px}.fem-cmdbar{color:var(--text-dim);border-color:#4a9eff73;flex-direction:column;gap:6px;padding:7px 10px;font-size:12px;display:none}.fem-cmdbar.visible{display:flex}.fem-cmdbar.fem-cmdbar-brush .fem-cmd-row+.fem-cmd-row{display:none}.fem-cmd-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.fem-cmd-title{background:var(--accent-dim);color:var(--accent);border-radius:5px;flex-shrink:0;padding:2px 8px;font-weight:700}.fem-cmd-prompt{color:var(--text)}.fem-cmd-input{background:var(--surface);border:1px solid var(--border);min-width:180px;color:var(--text);-webkit-user-select:text;user-select:text;border-radius:5px;flex:1;padding:5px 8px;font-family:JetBrains Mono,monospace;font-size:12px}.fem-cmd-input:focus{border-color:var(--accent);outline:none}.fem-cmd-plane{align-items:center;gap:4px;font-size:11px;display:inline-flex}.fem-cmd-readout{color:var(--accent);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px}.fem-cmdbar .fem-btn{padding:5px 10px}.fem-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.fem-btn-danger{color:var(--danger);border-color:#f8717173}.fem-dock-status{color:var(--text-dim);padding:5px 10px;font-size:12px}.fem-dock-status:empty{display:none}.fem-inspector{gap:10px}.fem-insp-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.fem-insp-title{color:var(--text);font-size:15px;font-weight:600}.fem-insp-dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:12px;display:grid}.fem-insp-dl dt{color:var(--text-dim)}.fem-insp-dl dd{color:var(--text);overflow-wrap:anywhere;margin:0}.fem-insp-details{border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px}.fem-insp-details summary{cursor:pointer;color:var(--text-dim)}.fem-insp-details[open] summary{margin-bottom:8px}.fem-insp-details .fem-row{margin-top:6px}.fem-insp-actions{margin-top:2px}.fem-insp-end{flex-direction:column;gap:6px;display:flex}.fem-insp-end-label{color:var(--text-dim);align-self:center;min-width:60px;font-size:11px}.fem-insp-edges{flex-direction:column;gap:4px;display:flex}.fem-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.fem-chip{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:999px;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:11px}.fem-chip:hover{border-color:var(--accent);color:var(--accent)}.fem-list-compact{max-height:200px}.fem-load-text{flex:1;padding:7px 10px;font-size:12px}.fem-empty-small{text-align:left;padding:8px 10px}.fem-stale-note{grid-column:1/-1}@media (width<=720px){.fem-tooldock{left:8px;right:8px;top:calc(var(--top-bar-height) + 4px)}.fem-rb{min-width:48px}.fem-rb kbd{display:none}.fem-tooloptions,.fem-cmdbar{max-height:30vh;overflow:auto}.fem-tooloptions:has(.fem-opts.visible) .fem-opts-hint,.fem-opts-hint,.fem-tooloptions:not(:has(.fem-opts.visible)){display:none}#fem-modal .fem-dialog{height:min(60vh,620px)}.fem-cmd-input{min-width:120px}}#bcf-panel{z-index:215;width:min(720px,100vw - 24px);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;display:none;position:fixed;top:66px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 18px 48px #0000006b}#bcf-panel.open{display:flex}.bcf-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;padding:15px 16px 11px;display:flex}.bcf-header h2{margin:0;font-size:16px}.bcf-header p{color:var(--text-dim);margin:4px 0 0;font-size:11px}.bcf-close{color:var(--text-dim);cursor:pointer;background:0 0;border:0;font-size:22px}.bcf-toolbar,.bcf-actions{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:7px;padding:10px 12px;display:flex}.bcf-btn{border:1px solid var(--border);color:var(--text);background:var(--surface2);font:inherit;cursor:pointer;border-radius:7px;padding:7px 10px;font-size:11px}.bcf-btn:hover:not(:disabled){background:var(--surface-hover)}.bcf-btn.primary{border-color:var(--accent);color:var(--accent)}.bcf-btn.danger{color:var(--danger);margin-left:auto}.bcf-btn:disabled{opacity:.4;cursor:default}.bcf-body{flex:1;grid-template-columns:230px 1fr;min-height:0;display:grid}.bcf-topic-list{border-right:1px solid var(--border);background:#0000001f;overflow:auto}.bcf-topic{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;gap:4px;padding:11px 12px;display:grid}.bcf-topic:hover,.bcf-topic.active{background:var(--surface-hover)}.bcf-topic.active{box-shadow:inset 3px 0 var(--accent)}.bcf-topic strong{text-overflow:ellipsis;font-size:12px;overflow:hidden}.bcf-topic span{color:var(--text-dim);font-size:10px}.bcf-editor{min-width:0;padding:14px;overflow:auto}.bcf-editor.empty .bcf-instructions,.bcf-editor.empty .bcf-form,.bcf-editor.empty .bcf-snapshot,.bcf-editor.empty .bcf-actions,.bcf-editor.empty .bcf-action-feedback,.bcf-editor:not(.empty) .bcf-empty{display:none}.bcf-empty{color:var(--text-dim);text-align:center;margin-top:48px;font-size:12px}.bcf-instructions{border-left:3px solid var(--accent);background:#00000029;border-radius:5px;margin-bottom:12px;padding:9px 10px;font-size:11px;line-height:1.45}.bcf-instructions strong{margin-bottom:3px;display:block}.bcf-instructions p{color:var(--text-dim);margin:0}.bcf-form{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bcf-field{color:var(--text-dim);gap:4px;font-size:10px;display:grid}.bcf-field:first-child,.bcf-field:nth-child(2){grid-column:1/-1}.bcf-field input,.bcf-field textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface2);font:inherit;border-radius:6px;padding:8px;font-size:12px}.bcf-field textarea{resize:vertical;min-height:80px}.bcf-snapshot{object-fit:contain;background:#111;border-radius:7px;width:100%;max-height:220px;margin-top:12px;display:block}.bcf-editor .bcf-actions{border-top:1px solid var(--border);border-bottom:0;margin-top:12px;padding:12px 0 0}.bcf-action-feedback{min-height:16px;color:var(--text-dim);margin:7px 0 0;font-size:10px}@media (width<=620px){#bcf-panel{width:calc(100vw - 12px);top:58px;bottom:6px;right:6px}.bcf-body{grid-template-columns:120px 1fr}.bcf-form{grid-template-columns:1fr}.bcf-field{grid-column:1!important}}.bcf-comment-title{color:var(--text-dim);text-transform:uppercase;margin:14px 0 7px;font-size:11px}.bcf-comments{gap:7px;display:grid}.bcf-comments article{border-left:3px solid var(--accent);background:#00000029;border-radius:5px;padding:8px 10px}.bcf-comments strong{color:var(--text-dim);font-size:10px}.bcf-comments p{white-space:pre-wrap;margin:5px 0 0;font-size:12px;line-height:1.45}.bcf-editor.empty .bcf-comment-title,.bcf-editor.empty .bcf-comments{display:none}#revision-modal{z-index:260;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#revision-modal.open{display:flex}#revision-modal .numbering-series-dialog{width:min(520px,100%)}.revision-fields{grid-template-columns:1fr 1fr;gap:10px 12px;padding:0 18px 16px;display:grid}.revision-field{color:var(--text-dim);flex-direction:column;gap:4px;font-size:11px;display:flex}.revision-field:nth-child(-n+2){grid-column:1/-1}.revision-field input{border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;padding:7px 8px;font-family:inherit;font-size:12px}#revision-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#revision-modal #revision-create{border-color:var(--accent);color:var(--accent)}.revision-outputs{flex-direction:column;gap:8px;padding:0 18px 16px;display:flex}.revision-output{cursor:pointer;border:1px solid var(--border);background:var(--surface2);border-radius:8px;align-items:flex-start;gap:10px;padding:9px 10px;display:flex}.revision-output input{accent-color:var(--accent);margin-top:2px}.revision-output span{flex-direction:column;gap:2px;display:flex}.revision-output strong{color:var(--text);font-size:12px;font-weight:600}.revision-output small{color:var(--text-dim);font-size:11px}#revision-modal #revision-create:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#project-state{min-width:0;max-width:170px;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;align-self:center;padding:0 10px;font-size:11px;overflow:hidden}#project-state:empty{display:none}#project-state.dirty{color:#f5b942}@media (width<=920px){#project-state{display:none}}.project-embed{cursor:pointer;border:1px solid var(--border);background:var(--surface2);border-radius:8px;flex:100%;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.project-embed input{accent-color:var(--accent);margin-top:2px}.project-embed span{flex-direction:column;gap:2px;display:flex}.project-embed strong{color:var(--text);font-size:12px;font-weight:600}.project-embed small{color:var(--text-dim);font-size:11px}#project-modal{z-index:260;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#project-modal.open{display:flex}#project-modal .numbering-series-dialog{width:min(520px,100%)}.project-files{flex-direction:column;gap:6px;min-height:0;margin:0 18px 16px;padding:0;list-style:none;display:flex;overflow:auto}.project-file{border:1px solid var(--border);background:var(--surface2);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.project-file.same{border-color:#3fb27f}.project-file.different{border-color:#f5b942}.project-file strong{color:var(--text);word-break:break-all;font-size:12px;font-weight:600}.project-file small{color:var(--text-dim);font-size:11px}#project-modal .numbering-series-actions button{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}#project-modal #project-open-confirm{border-color:var(--accent);color:var(--accent)}#project-modal #project-open-confirm:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}#open-project-btn{margin-top:16px}#ifc-state{color:#f5b942;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;align-self:center;min-width:0;max-width:220px;padding:0 10px;font-size:11px;overflow:hidden}#ifc-state:empty{display:none}@media (width<=920px){#ifc-state{display:none}}.ifc-target{color:var(--text-dim);flex:100%;padding:0 2px 2px;font-size:11px}.model-dirty{color:#f5b942;margin-left:4px;font-size:12px}.model-save{border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);cursor:pointer;border-radius:6px;margin-left:4px;padding:2px 6px;font-size:11px}.model-save:hover{border-color:var(--accent);color:var(--accent)}#edit-part-modal{z-index:215;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#edit-part-modal.open{display:flex}#edit-part-modal.busy .edit-body{opacity:.6;pointer-events:none}.edit-dialog{width:min(560px,100%);max-height:min(88vh,860px)}.edit-body{flex-direction:column;gap:10px;min-height:0;padding:0 18px 4px;display:flex;overflow:auto}.edit-head{flex-direction:column;gap:2px;display:flex}.edit-head strong{font-size:14px}.edit-sub{color:var(--text-dim);margin:0;font-size:11px}.edit-guid{user-select:all;word-break:break-all;font-family:JetBrains Mono,monospace}.edit-badge{border:1px solid var(--border);color:var(--text-dim);vertical-align:middle;border-radius:10px;margin-left:4px;padding:1px 6px;font-size:10px;display:inline-block}.edit-badge-edited{color:#f5b942;border-color:#f5b942}.edit-caps-wrap{color:var(--text-dim);font-size:11px}.edit-caps-wrap summary{cursor:pointer}.edit-caps{flex-direction:column;gap:3px;margin:6px 0 0;padding:0;list-style:none;display:flex}.edit-caps li.off strong{color:#f59e0b}.edit-caps li.on strong{color:#3fb27f}.edit-section{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0;padding:8px 10px 10px}.edit-section legend{color:var(--text);padding:0 6px;font-size:12px;font-weight:600}.edit-section-off{opacity:.85}.edit-section-off .edit-input{opacity:.55}.edit-note{border-radius:6px;margin:4px 0 6px;padding:6px 8px;font-size:11px;line-height:1.4}.edit-note-info{color:var(--text-dim);background:#4a9eff1a}.edit-note-warn{color:#f5b942;background:#f59e0b1f}.edit-note-ok{color:#3fb27f;background:#3fb27f1f}.edit-row{grid-template-columns:150px 1fr 34px;align-items:center;gap:8px;padding:3px 0;font-size:12px;display:grid}.edit-label{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.edit-unit{color:var(--text-muted,var(--text-dim));font-size:11px}.edit-input{border:1px solid var(--border);background:var(--surface2);width:100%;min-width:0;color:var(--text);border-radius:6px;padding:5px 7px;font-family:inherit;font-size:12px}textarea.edit-input{resize:vertical}.edit-input:focus{border-color:var(--accent);outline:none}.edit-input:disabled{cursor:not-allowed}.edit-check{width:16px;height:16px;accent-color:var(--accent);justify-self:start}.edit-pset{color:var(--text-dim);margin:8px 0 2px;font-size:11px;font-weight:600}.edit-qty{color:var(--text-dim);justify-content:space-between;padding:1px 0;font-size:11px;display:flex}.edit-qty-value{color:var(--text);font-family:JetBrains Mono,monospace}.edit-outline-row{grid-template-columns:22px 1fr 1fr 28px;align-items:center;gap:6px;padding:2px 0;display:grid}.edit-btn{border:1px solid var(--border);cursor:pointer;background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}.edit-btn-primary{border-color:var(--accent);color:var(--accent)}.edit-btn:disabled{opacity:.45;cursor:not-allowed}.edit-small{padding:3px 8px;font-size:11px}.edit-actions{background:var(--surface);padding:8px 0 12px;position:sticky;bottom:0}.edit-copy-actions{justify-content:flex-end;padding-top:6px;display:flex}.edit-copy-scopes{flex-direction:column;gap:6px;margin:6px 0 2px;display:flex}.edit-radio{color:var(--text);cursor:pointer;align-items:flex-start;gap:8px;font-size:12px;line-height:1.35;display:flex}.edit-radio input{flex-shrink:0;margin-top:2px}.edit-radio:has(input:disabled){opacity:.55;cursor:not-allowed}.edit-message:empty{display:none}#model-merge-modal{z-index:262;background:#00000073;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}#model-merge-modal.open{display:flex}.merge-dialog{width:min(680px,100%);max-height:min(90vh,820px)}.merge-body{gap:10px;padding:0 18px 4px}.merge-intro{color:var(--text-dim);margin:0;font-size:12px;line-height:1.45}.merge-intro code{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:11px}.merge-models{flex-direction:column;gap:6px;display:flex}.merge-model{border:1px solid var(--border);background:var(--surface2);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.merge-model.off{opacity:.55}.merge-model input[type=checkbox],.merge-model input[type=radio]{accent-color:var(--accent)}.merge-model-main{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.merge-model-main small{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.merge-label-input,.merge-name-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;min-width:0;padding:6px 8px;font-family:inherit;font-size:12px}.merge-base{color:var(--text-dim);cursor:pointer;flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:flex}.merge-options,.merge-problems{flex-direction:column;gap:6px;display:flex}.merge-note{border-radius:6px;margin:0;padding:7px 9px;font-size:11.5px;line-height:1.4}.merge-note-error{color:var(--danger);background:#f871711f}.merge-note-warning{color:var(--warn);background:#fbbf241f}.merge-note-info{color:var(--text-dim);background:#4a9eff1a}.merge-progress{color:var(--text-dim);flex-direction:column;gap:4px;font-size:11px;display:none}.merge-progress.visible{display:flex}.merge-progress-bar{background:var(--surface2);border-radius:3px;height:5px;overflow:hidden}.merge-progress-fill{background:var(--accent);width:0;height:100%;transition:width .15s}.merge-progress.indeterminate .merge-progress-fill{width:40%;animation:1.1s ease-in-out infinite alternate merge-slide}@keyframes merge-slide{0%{margin-left:0}to{margin-left:60%}}.merge-result{flex-direction:column;gap:6px;display:flex}.merge-result h4{margin:4px 0 0;font-size:13px}.merge-report{border-collapse:collapse;width:100%;font-size:11.5px}.merge-report th,.merge-report td{text-align:left;border-bottom:1px solid #2a2e3a80;padding:5px 8px}.merge-report th{color:var(--text-dim);font-weight:600}
