@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Instrument+Sans:wght@400;500;600&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-void:#0a0b0e;--bg-base:#0f1115;--bg-surface:#161a20;--bg-raised:#1c222b;--bg-elevated:#242c38;--bg-hover:#2d3745;--bd-faint:#ffffff0a;--bd-dim:#ffffff14;--bd-mid:#ffffff21;--bd-bright:#ffffff38;--tx-primary:#f1f5f9;--tx-secondary:#94a3b8;--tx-muted:#64748b;--amber:#f59e0b;--amber-dim:#f59e0b1a;--green:#10b981;--green-dim:#10b9811a;--red:#ef4444;--red-dim:#ef44441a;--blue:#3b82f6;--blue-dim:#3b82f61a;--font-ui:"Instrument Sans", system-ui, sans-serif;--font-data:"DM Mono", monospace;--font-display:"Plus Jakarta Sans", system-ui, sans-serif;--topbar-h:105px;--statusbar-h:24px;--sidebar-w:260px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--glass-bg:#161a20b3;--glass-bd:#ffffff0f}@media (width<=1440px){:root{--sidebar-w:220px}}.app.theme-white{--bg-void:#f8fafc;--bg-base:#fff;--bg-surface:#f1f5f9;--bg-raised:#e2e8f0;--bg-elevated:#dee5ed;--bg-hover:#f1f5f9;--bd-faint:#0000000d;--bd-dim:#00000014;--bd-mid:#0000001f;--bd-bright:#0003;--tx-primary:#0f172a;--tx-secondary:#475569;--tx-muted:#94a3b8;--glass-bg:#fffc;--glass-border:#0000001a}.app.theme-black{--bg-void:#000;--bg-base:#0a0a0a;--bg-surface:#121212;--bg-raised:#181818;--bg-elevated:#222;--bg-hover:#2a2a2a;--bd-faint:#ffffff08;--bd-dim:#ffffff0f;--bd-mid:#ffffff1f;--bd-bright:#fff3;--tx-primary:#fff;--tx-secondary:#94a3b8;--tx-muted:#475569;--glass-bg:#000c;--glass-border:#ffffff1a}html,body{background:var(--bg-void);width:100dvw;height:100dvh;min-height:100dvh;color:var(--tx-primary);font-family:var(--font-ui);font-size:calc(13px / var(--app-scale,1));margin:0;padding:0;line-height:1.4;overflow:hidden}#root{zoom:var(--app-scale,1);min-width:calc(100dvw / var(--app-scale,1));width:calc(100dvw / var(--app-scale,1));min-height:calc(100dvh / var(--app-scale,1));height:calc(100dvh / var(--app-scale,1));flex-direction:column;display:flex;position:relative;overflow:hidden}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bd-mid);border-radius:10px}.premium-card{background:var(--bg-surface);border:1px solid var(--bd-dim);border-radius:var(--radius-md);padding:20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.premium-card:hover{border-color:var(--bd-mid);background:var(--bg-raised);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.premium-btn{cursor:pointer;letter-spacing:.3px;text-transform:none;border:none;border-radius:6px;align-items:center;gap:8px;padding:5px 14px;font-size:13px;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.premium-btn.amber{background:linear-gradient(135deg, var(--amber) 0%, #fbbf24 100%);color:#000}.premium-btn.amber:hover{background:linear-gradient(135deg,#fbbf24 0%,#fcd34d 100%);transform:translateY(-2px)scale(1.02);box-shadow:0 8px 25px #f59e0b66}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-bd)}.app{grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h);width:100%;min-width:0;height:100%;min-height:0;max-height:100%;display:grid;overflow:hidden}.main-row{grid-template-columns:var(--sidebar-w) 1fr;z-index:10;border-top:1px solid var(--bd-faint);flex:1;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.center{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.topbar{background:var(--bg-base);border-bottom:1px solid var(--bd-faint);height:var(--topbar-h);z-index:100;align-items:center;gap:0;display:flex;position:relative;overflow:visible}.tb-logo{border-right:1px solid var(--bd-faint);flex-shrink:0;align-items:center;gap:8px;height:100%;padding:0 14px;display:flex}.logo-mark{background:var(--amber);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);width:26px;height:26px}.logo-text{font-family:var(--font-display);color:var(--tx-primary);white-space:nowrap;font-size:15px;font-weight:700}.logo-text em{color:var(--tx-muted);margin-left:3px;font-size:9px;font-style:normal}.tb-projects{border-right:1px solid var(--bd-faint);align-items:center;gap:2px;padding:0 6px;display:flex}.proj-tab{cursor:pointer;white-space:nowrap;color:var(--tx-secondary);font-size:12.5px;font-family:var(--font-ui);background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 10px;transition:all .15s}.proj-tab:hover{color:var(--tx-primary);background:var(--bg-elevated)}.proj-tab.active{color:var(--amber);background:var(--amber-dim);border-color:#f5a62333}.proj-tab-wrapper{align-items:center;display:flex;position:relative}.proj-close-btn{width:14px;height:14px;color:var(--tx-muted);cursor:pointer;background:#0003;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:8px;transition:all .15s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.proj-tab-wrapper.active .proj-tab{padding-right:22px}.proj-close-btn:hover{background:var(--red);color:#fff}.tool-drop-wrapper{position:relative}.ribbon-drop-panel{background:var(--bg-surface);border:1px solid var(--bd-dim);z-index:2000;border-radius:8px;flex-direction:column;gap:1px;min-width:200px;padding:4px;animation:.15s cubic-bezier(.16,1,.3,1) dropdownSlideIn;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 4px 6px -1px #0000001f,0 10px 24px -4px #0000002e}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.drop-section-header{letter-spacing:.6px;text-transform:uppercase;color:var(--tx-muted);user-select:none;padding:8px 12px 4px;font-size:10px;font-weight:600}.drop-item{color:var(--tx-secondary);cursor:pointer;text-align:left;white-space:nowrap;letter-spacing:.1px;background:0 0;border:none;border-radius:5px;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:12.5px;font-weight:400;line-height:1.4;transition:background .12s,color .12s;display:flex}.drop-item:hover{background:var(--bg-hover);color:var(--tx-primary)}.drop-item:active{background:var(--bg-elevated)}.drop-item .drop-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:13px;display:flex}.drop-item:hover .drop-icon{opacity:1}.drop-item .drop-label{flex:1}.drop-item .drop-shortcut{color:var(--tx-muted);font-size:10.5px;font-family:var(--font-data);letter-spacing:0;margin-left:auto;padding-left:16px}.ai-drop-item{border-radius:8px;gap:14px;margin-bottom:2px;padding:10px 14px}.ai-drop-item:hover{background:#3b82f614}.ai-drop-item.active{color:var(--brand-primary);background:#3b82f626}.ai-drop-icon{width:28px;height:28px;color:var(--tx-primary);background:#ffffff0d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.ai-drop-item:hover .ai-drop-icon,.ai-drop-item.active .ai-drop-icon{background:var(--brand-primary);color:#fff}.ai-drop-text{flex-direction:column;gap:2px;display:flex}.ai-drop-label{color:var(--tx-primary);font-size:13px;font-weight:600;transition:color .2s}.ai-drop-item.active .ai-drop-label{color:var(--brand-primary)}.ai-drop-desc{color:var(--tx-muted);letter-spacing:.1px;font-size:11px;font-weight:400}.drop-item.danger{color:#e05252}.drop-item.danger:hover{color:#e05252;background:#e0525214}.drop-divider{background:var(--bd-dim);flex-shrink:0;height:1px;margin:4px 8px}.tool-ribbon{border-right:1px solid var(--bd-faint);scroll-behavior:smooth;flex:1;justify-content:center;align-items:center;gap:clamp(4px,.8vw,12px);min-width:0;padding:0 1vw;display:flex;overflow:visible}.tool-ribbon::-webkit-scrollbar{height:0}@media (width<=1400px){.tool-ribbon{min-width:0}}.tool-ribbon-sep{background:var(--bd-dim);flex-shrink:0;width:1px;height:40px;margin:0 clamp(2px,.4vw,8px)}.tool-group-cluster{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.tool-cluster-label{font-size:calc(10px / var(--app-scale,1));color:var(--tx-muted);text-transform:uppercase;letter-spacing:.8px;font-weight:700;transition:opacity .2s}.compact-ui .tool-cluster-label{display:none}.tool-cluster-btns{gap:2px;display:flex}.tool-big{width:auto;min-width:48px;height:44px;color:var(--tx-muted);cursor:pointer;font-family:var(--font-ui);background:0 0;border:1px solid #0000;border-radius:6px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;padding:0 4px;transition:all .15s;display:flex}.tool-big:hover{background:var(--bg-elevated);color:var(--tx-primary);border-color:var(--bd-dim)}.tool-big.active{background:var(--amber-dim);color:var(--amber);border-color:#f5a62359}.tool-big[data-tool=area].active{color:#93c5fd;background:#3b82f626;border-color:#3b82f64d}.tool-big[data-tool=linear].active,.tool-big[data-tool=polyline].active,.tool-big[data-tool=arc].active{color:#86efac;background:#22c55e26;border-color:#22c55e4d}.tool-big[data-tool=count].active,.tool-big[data-tool=autocount].active{color:#fcd34d;background:#f5a62326;border-color:#f5a6234d}.tool-big[data-tool=volume].active{color:#c4b5fd;background:#a78bfa26;border-color:#a78bfa4d}.tool-label{font-size:calc(10.5px / var(--app-scale,1));letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;max-width:60px;font-weight:600;transition:opacity .2s;overflow:hidden}.compact-ui .tool-label{display:none}.compact-ui .tool-big{height:calc(36px / var(--app-scale,1));min-width:calc(36px / var(--app-scale,1));padding:0}.tool-icon{font-size:calc(20px / var(--app-scale,1));line-height:1}.tb-right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;padding:0 12px;display:flex}.rule-sel{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-primary);cursor:pointer;font-size:11px;font-family:var(--font-data);border-radius:4px;padding:4px 8px}.rule-sel:focus{border-color:var(--amber);outline:none}.cur-btn{border:1px solid var(--bd-mid);background:var(--amber-dim);color:var(--amber);cursor:pointer;font-size:12.5px;font-weight:700;font-family:var(--font-data);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:4px 9px}.cur-btn:hover{background:var(--amber);color:#111}.bg-btn{border:1px solid var(--bd-dim);width:26px;height:22px;color:var(--tx-muted);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;transition:all .15s;display:flex}.bg-btn.active{color:var(--amber);border-color:var(--amber);background:var(--amber-dim)}.btn-ghost{border:1px solid var(--bd-mid);color:var(--tx-secondary);cursor:pointer;font-size:11px;font-family:var(--font-ui);white-space:nowrap;background:0 0;border-radius:4px;flex-shrink:0;padding:4px 10px;transition:all .15s}.btn-ghost.menu-btn{border:1px solid var(--bd-mid);color:var(--tx-secondary);letter-spacing:.2px;background:0 0;border-radius:5px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:flex}.btn-ghost.menu-btn:hover{background:var(--bg-elevated);border-color:var(--bd-bright);color:var(--tx-primary);box-shadow:none;transform:none}.btn-ghost.menu-btn.active{background:var(--bg-elevated);border-color:var(--bd-bright);color:var(--tx-primary);box-shadow:none}.btn-ghost:hover{border-color:var(--bd-bright);color:var(--tx-primary);background:var(--bg-elevated)}.btn-ghost:disabled{opacity:.3;cursor:not-allowed}.btn-primary{border:1px solid var(--amber);background:var(--amber);color:#111;cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-ui);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:4px 12px;transition:all .15s}.btn-primary:hover{color:var(--amber);background:0 0}.btn-danger{border:1px solid var(--red);background:var(--red);color:#fff;cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-ui);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:4px 12px;transition:all .15s}.btn-danger:hover{color:var(--red);background:0 0}.sidebar{background:var(--bg-base);border-right:1px solid var(--bd-faint);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.layer-panel{background:var(--bg-surface);border-bottom:1px solid var(--bd-faint);padding:4px 0}.layer-row{color:var(--tx-secondary);align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:flex}.layer-row:hover{background:var(--bg-elevated)}.layer-eye{cursor:pointer;color:var(--tx-muted);background:0 0;border:none;padding:0 2px;font-size:13px;transition:color .15s}.layer-eye:hover{color:var(--amber)}.layer-swatch{border-radius:1px;flex-shrink:0;width:8px;height:8px}.sb-section{flex-shrink:0}.sb-hdr{letter-spacing:.8px;color:var(--tx-muted);text-transform:uppercase;justify-content:space-between;align-items:center;padding:8px 12px 4px;font-size:11.5px;font-weight:600;display:flex}.sb-hdr-action{text-transform:none;letter-spacing:0;color:var(--amber);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 4px;font-size:14px;font-weight:700}.sb-hdr-action:hover{background:var(--amber-dim)}.sb-item.active{border-left:2px solid var(--amber)!important;color:var(--tx-primary)!important;background:#3b82f626!important}.mca-btn.is-deduction{color:var(--red)!important;background:#ef44441a!important;border-color:#ef44444d!important}.sb-hdr-action-pill{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-secondary);white-space:nowrap;cursor:pointer;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;transition:all .2s;display:flex}.sb-hdr-action-pill:hover{background:var(--bg-hover);color:var(--tx-primary);border-color:var(--bd-mid);transform:translateY(-1px)}.sb-hdr-action-pill.ai-btn{background:var(--amber-dim);color:var(--amber);border-color:#f5a6234d}.sb-hdr-action-pill.ai-btn:hover{background:var(--amber);color:#111;border-color:var(--amber)}.pill-icon{font-size:11px}.sb-item{cursor:pointer;color:var(--tx-secondary);border-left:2px solid #0000;align-items:center;gap:5px;padding:5px 8px;font-size:11px;transition:all .1s;display:flex}.sb-item:hover{background:var(--bg-elevated);color:var(--tx-primary)}.sb-item-action{border:1px solid var(--bd-faint);background:var(--bg-elevated);min-width:24px;height:24px;color:var(--tx-secondary);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0 6px;font-size:10px;display:inline-flex}.sb-item-action:hover{background:var(--bg-surface);color:var(--tx-primary)}.sb-item.has-meas{color:var(--tx-primary)}.expand-btn{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;width:14px;padding:0;font-size:10px}.expand-btn:hover{color:var(--amber)}.group-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.sb-item-count{font-family:var(--font-data);color:var(--tx-muted);background:var(--bg-elevated);border-radius:2px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:9px}.sb-divider{background:var(--bd-faint);height:1px;margin:3px 0}.rp-hdr-count{font-family:var(--font-data);color:var(--tx-muted);background:var(--bg-elevated);border-radius:2px;margin-left:auto;padding:1px 5px;font-size:10px}.center{background:var(--bg-void);flex-direction:column;height:100%;display:flex;overflow:hidden}.tab-bar{background:var(--bg-base);border-bottom:1px solid var(--bd-faint);flex-shrink:0;align-items:center;height:36px;padding:0 8px;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{height:0}.ctab{cursor:pointer;height:100%;color:var(--tx-muted);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:5px;padding:0 14px;font-size:13px;transition:all .12s;display:flex}.ctab:hover{color:var(--tx-secondary)}.ctab.active{color:var(--tx-primary);border-bottom-color:var(--amber)}.ctab-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.tab-spacer{flex:1}.add-meas-btn{border:1px solid var(--amber);background:var(--amber-dim);color:var(--amber);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-ui);white-space:nowrap;border-radius:5px;padding:4px 12px;transition:all .15s}.add-meas-btn:hover{background:var(--amber);color:#111}.panel-drawing{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.canvas-wrap{flex:1;position:relative;overflow:hidden}.bg-canvas{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.paper-canvas{opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.svg-overlay{overflow:visible;pointer-events:none!important}.meas-canvas{pointer-events:all;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-hud{backdrop-filter:blur(8px);border:1px solid var(--bd-mid);color:var(--tx-secondary);pointer-events:none;font-size:12px;font-family:var(--font-data);z-index:10;background:#0a0c0fe6;border-radius:8px;align-items:center;gap:8px;padding:6px 14px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.hud-chip{border-radius:100px;padding:2px 8px;font-size:10px;font-weight:700}.hud-chip.area,.hud-chip.oneclick,.hud-chip.volume{color:#93c5fd;background:#3b82f633}.hud-chip.linear,.hud-chip.polyline,.hud-chip.arc,.hud-chip.curve{color:#86efac;background:#22c55e33}.hud-chip.count,.hud-chip.autocount{color:#fcd34d;background:#f5a62333}.hud-val{color:var(--tx-primary);font-weight:600}.canvas-prompt{border:1px solid var(--amber);color:var(--amber);pointer-events:none;white-space:nowrap;z-index:10;background:#0a0c0fe6;border-radius:8px;padding:7px 16px;font-size:12px;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.osnap-badge{border:1px solid var(--amber);font-size:10px;font-family:var(--font-data);color:var(--amber);pointer-events:none;background:#f5a62333;border-radius:4px;padding:3px 8px;position:absolute;top:10px;right:60px}.canvas-controls{z-index:10;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:14px;right:14px}.cc-btn{background:var(--bg-raised);border:1px solid var(--bd-mid);width:32px;height:32px;color:var(--tx-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.cc-btn:hover{background:var(--bg-elevated);color:var(--tx-primary);border-color:var(--bd-bright)}.zoom-pct{background:var(--bg-raised);border:1px solid var(--bd-dim);font-size:9px;font-family:var(--font-data);color:var(--tx-muted);text-align:center;border-radius:4px;padding:2px 4px}.scale-bar{font-family:var(--font-data);color:var(--tx-muted);z-index:10;align-items:center;gap:7px;font-size:10px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.scale-line{background:var(--tx-muted);border-radius:1px;width:60px;height:3px;position:relative}.scale-line:before,.scale-line:after{content:"";background:var(--tx-muted);width:1.5px;height:9px;position:absolute;top:-3px}.scale-line:before{left:0}.scale-line:after{right:0}.cursor-readout{font-family:var(--font-data);color:var(--tx-muted);z-index:10;font-size:10px;position:absolute;bottom:10px;left:14px}.cc-divider{background:var(--bd-mid);width:100%;height:1px;margin:4px 0}.cc-btn-wide{background:var(--amber);color:#111;cursor:pointer;font-size:11px;font-weight:700;font-family:var(--font-ui);white-space:nowrap;border:none;border-radius:6px;padding:6px 12px;transition:all .15s}.cc-btn-wide:hover{color:var(--amber);background:#fff;box-shadow:0 0 15px #f5a62366}.meas-card{border:1px solid var(--bd-dim);background:var(--bg-surface);cursor:pointer;border-left:3px solid var(--mcard-col,#3b82f6);border-radius:6px;margin-bottom:4px;transition:all .15s;overflow:hidden}.meas-card:hover{background:var(--bg-raised)}.meas-card.selected{border-color:var(--amber);background:var(--bg-raised)}.meas-card.expanded{border-color:var(--bd-bright)}.meas-card-header{cursor:pointer;border-bottom:1px solid var(--bd-faint);align-items:center;gap:8px;padding:8px 10px;display:flex}.meas-type-badge{text-transform:uppercase;background:var(--bg-elevated);color:var(--tx-muted);border-radius:3px;padding:1px 4px;font-size:8px;font-weight:700}.meas-label{color:var(--tx-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;font-weight:600;overflow:hidden}.meas-card-actions{opacity:.3;gap:2px;transition:opacity .2s;display:flex}.meas-card:hover .meas-card-actions{opacity:1}.mca-btn{width:20px;height:20px;color:var(--tx-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:10px;transition:all .1s;display:flex}.mca-btn:hover{background:var(--bg-hover);color:var(--tx-primary)}.mca-btn.del:hover{background:var(--red-dim);color:var(--red)}.meas-card-body{cursor:pointer;padding:6px 10px}.meas-kv{justify-content:space-between;margin-bottom:2px;font-size:10px;display:flex}.meas-kv-key{color:var(--tx-muted)}.meas-kv-val{color:var(--tx-secondary);font-family:var(--font-data);align-items:center;gap:4px;display:flex}.card-unit-mini{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-muted);cursor:pointer;border-radius:2px;padding:0 2px;font-size:9px}.card-unit-mini:hover{border-color:var(--amber);color:var(--amber)}.card-group-mini{background:var(--bg-surface);border:1px solid var(--bd-dim);color:var(--tx-primary);cursor:pointer;border-radius:4px;min-width:96px;padding:1px 6px;font-size:10px;line-height:1.8}.card-group-mini:hover,.card-group-mini:focus{border-color:var(--amber);color:var(--amber);background:var(--bg-elevated);outline:none}.card-group-mini option{background:var(--bg-surface);color:var(--tx-primary)}.is-deduction{color:var(--red);font-weight:600}.meas-detail-row{color:var(--tx-muted);border-bottom:1px dotted var(--bd-dim);align-items:center;gap:6px;margin-bottom:4px;padding-bottom:2px;font-size:9px;display:flex}.mdr-name{flex:1}.mdr-val{font-family:var(--font-data);color:var(--tx-secondary)}.mdr-btn{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px}.mdr-btn:hover{color:var(--amber)}.add-seg-inline-btn{width:100%;color:var(--amber);background:var(--amber-dim);cursor:pointer;border:1px dashed #f5a62366;border-radius:4px;margin-top:6px;padding:3px;font-size:9px;font-weight:600;transition:all .2s}.add-seg-inline-btn:hover{background:var(--amber);color:#111;border-style:solid}.meas-card.pending{border-color:var(--green);background:#22c55e0f;animation:1.5s ease-in-out infinite pulseBorder}@keyframes pulseBorder{0%,to{border-color:var(--green)}50%{border-color:#22c55e4d}}.meas-card-header{align-items:center;gap:5px;padding:6px 8px;display:flex}.meas-color-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.meas-type-badge{text-transform:uppercase;font-size:9px;font-weight:700;font-family:var(--font-data);border-radius:2px;flex-shrink:0;padding:1px 5px}.badge-area{color:#93c5fd;background:#3b82f626}.badge-linear{color:#86efac;background:#22c55e26}.badge-count{color:#fcd34d;background:#f5a62326}.badge-volume{color:#c4b5fd;background:#a78bfa26}.meas-label{color:var(--tx-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;font-weight:500;overflow:hidden}.meas-card-body{gap:8px;padding:0 8px 5px;font-size:10px;display:flex}.meas-kv{flex:1}.meas-kv-key{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px}.meas-kv-val{font-family:var(--font-data);color:var(--tx-primary);font-size:11px}.meas-card-footer{border-top:1px solid var(--bd-faint);background:#00000026;align-items:center;gap:4px;padding:3px 8px;display:flex}.meas-boq-link{font-size:9px;font-family:var(--font-data);background:var(--green-dim);color:var(--green);cursor:pointer;border:1px solid #22c55e33;border-radius:2px;align-items:center;gap:2px;padding:1px 5px;display:inline-flex}.meas-add-btn{border:1px solid var(--bd-mid);color:var(--tx-muted);cursor:pointer;font-size:9px;font-family:var(--font-ui);background:0 0;border-radius:2px;padding:1px 6px;transition:all .15s}.meas-add-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-dim)}.pending-indicator{color:var(--green);font-size:9px;font-family:var(--font-data);animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.boq-excel,.cp-excel{background:var(--bg-void);flex-direction:column;flex:1;display:flex;overflow:hidden}.excel-toolbar{background:var(--bg-base);border-bottom:1px solid var(--bd-faint);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;padding:5px 8px;display:flex}.etb-group{align-items:center;gap:3px;display:flex}.etb-sep{background:var(--bd-dim);width:1px;height:20px;margin:0 3px}.etb-label{color:var(--tx-muted);margin-right:2px;font-size:10px}.etb-btn{border:1px solid var(--bd-dim);background:var(--bg-elevated);color:var(--tx-secondary);cursor:pointer;font-size:11px;font-family:var(--font-ui);white-space:nowrap;border-radius:4px;padding:3px 8px;transition:all .15s}.etb-btn:hover{color:var(--tx-primary);border-color:var(--bd-bright)}.etb-btn.act{color:var(--amber);border-color:var(--amber);background:var(--amber-dim)}.etb-btn.bold{font-weight:900}.etb-btn.tiny{padding:2px 5px;font-size:9px}.etb-btn.muted{opacity:.35}.etb-color-dot{border:1px solid var(--bd-dim);cursor:pointer;border-radius:3px;width:18px;height:18px;transition:transform .15s}.etb-color-dot:hover{transform:scale(1.2)}.etb-total{font-family:var(--font-data);color:var(--amber);background:var(--amber-dim);border:1px solid #f5a62340;border-radius:4px;padding:3px 10px;font-size:13px;font-weight:700}.formula-bar{background:var(--bg-surface);border-bottom:1px solid var(--bd-dim);flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;display:flex}.formula-label{font-family:var(--font-data);color:var(--blue);text-align:center;width:20px;font-size:14px;font-weight:700}.formula-cell{font-family:var(--font-data);color:var(--tx-muted);background:var(--bg-elevated);border:1px solid var(--bd-dim);text-align:center;border-radius:3px;width:60px;padding:2px 6px;font-size:11px}.formula-input{background:var(--bg-elevated);border:1px solid var(--bd-mid);color:var(--tx-primary);font-family:var(--font-data);border-radius:4px;outline:none;flex:1;padding:3px 8px;font-size:12px}.formula-input:focus{border-color:var(--blue)}.excel-grid-wrap{flex:1;position:relative;overflow:auto}.excel-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.excel-header-row{z-index:20;position:sticky;top:0}.excel-th{background:var(--bg-base);color:var(--tx-muted);letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid var(--bd-mid);border-right:1px solid var(--bd-faint);font-size:10px;font-weight:600;font-family:var(--font-ui);user-select:none;white-space:nowrap;padding:5px 6px;position:relative;overflow:hidden}.excel-th-inner{justify-content:space-between;align-items:center;width:100%;display:flex;overflow:hidden}.excel-th-inner span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.col-resize-handle{cursor:col-resize;background:0 0;width:4px;position:absolute;top:0;bottom:0;right:0}.col-resize-handle:hover{background:var(--amber)}.row-num-th{background:var(--bg-surface);width:50px}.excel-row{transition:background .1s}.excel-row:hover .excel-td{background:#ffffff05}.excel-row.excel-row-sel .excel-td{background:#3b82f612!important}.excel-row.drag-over .excel-td{border-top:2px solid var(--amber);background:#f5a6231a!important}.excel-row.section-row .excel-td{font-family:var(--font-display);letter-spacing:.4px;text-transform:uppercase;border-top:1px solid var(--bd-dim);font-size:11px;font-weight:600}.excel-row.formula-row .excel-td{font-family:var(--font-data);background:#2dd4bf0a}.excel-row.auto-detect-row .excel-td{background:#22c55e0a}.excel-td{border-bottom:1px solid var(--bd-faint);border-right:1px solid var(--bd-faint);color:var(--tx-primary);vertical-align:middle;max-width:0;padding:4px 6px;position:relative;overflow:hidden}.excel-td.cell-sel{outline:2px solid var(--amber);outline-offset:-1px;z-index:5}.excel-td.num-col{text-align:right;font-family:var(--font-data)}.row-num{background:var(--bg-surface);width:50px;min-width:50px;max-width:50px;color:var(--tx-muted);text-align:right;font-family:var(--font-data);user-select:none;border-right:1px solid var(--bd-dim);padding:4px 6px;font-size:10px}.drag-handle{cursor:grab;color:var(--tx-muted);margin-right:4px;font-size:12px;display:inline-block}.drag-handle:hover{color:var(--amber)}.row-num-text{font-size:9px}.cell-val{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.cell-val.amount-val{color:var(--tx-primary);font-family:var(--font-data);font-weight:600}.cell-input{background:var(--bg-void);width:100%;color:var(--tx-primary);font-family:var(--font-data);text-align:inherit;border:none;outline:none;padding:0;font-size:12px}.ctx-menu{z-index:1000;background:var(--bg-raised);border:1px solid var(--bd-mid);border-radius:8px;min-width:180px;animation:.15s modalIn;position:fixed;overflow:hidden;box-shadow:0 8px 30px #00000080}.ctx-item{width:100%;color:var(--tx-primary);cursor:pointer;text-align:left;font-size:12.5px;font-family:var(--font-ui);background:0 0;border:none;padding:8px 14px;transition:background .1s;display:block}.ctx-item:hover{background:var(--bg-hover);color:var(--amber)}.boq-toolbar{border-bottom:1px solid var(--bd-faint);background:var(--bg-base);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.cp-title{font-family:var(--font-display);color:var(--tx-primary);white-space:nowrap;font-size:12px;font-weight:600}.tb-spacer{flex:1;min-width:4px}.filter-select{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-primary);cursor:pointer;font-size:11px;font-family:var(--font-ui);border-radius:4px;padding:3px 7px}.filter-select:focus{border-color:var(--amber);outline:none}.boq-scroll{flex:1;overflow:auto}.boq-tbl{border-collapse:collapse;width:100%;font-size:12px}.boq-tbl th{text-align:left;letter-spacing:.5px;text-transform:uppercase;color:var(--tx-muted);background:var(--bg-base);border-bottom:1px solid var(--bd-dim);z-index:10;white-space:nowrap;font-size:9.5px;font-weight:600;font-family:var(--font-ui);padding:6px 8px;position:sticky;top:0}.boq-tbl th.num{text-align:right}.boq-tbl td{border-bottom:1px solid var(--bd-faint);vertical-align:middle;padding:5px 8px}.boq-tbl tr:hover td{background:var(--bg-elevated)}.boq-tbl tr.sel-row td{background:#f5a6230f}.boq-tbl tr.grand-total-row td{background:var(--amber-dim);font-family:var(--font-data);color:var(--amber);border-top:2px solid #f5a6234d;font-weight:500}.ref-code{font-family:var(--font-data);color:var(--tx-muted);font-size:10px}.num-cell{text-align:right;font-family:var(--font-data);color:var(--tx-secondary)}.inline-edit{border:none;border-bottom:1px solid var(--bd-mid);color:var(--tx-primary);font-family:var(--font-data);text-align:right;background:0 0;outline:none;padding:1px 2px;font-size:11.5px;transition:border-color .15s}.inline-edit:focus{border-bottom-color:var(--amber)}.inline-sel{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-primary);font-family:var(--font-data);cursor:pointer;border-radius:3px;padding:2px 4px;font-size:11px}.inline-sel:focus{border-color:var(--amber);outline:none}.link-tag{font-size:10px;font-family:var(--font-data);cursor:pointer;white-space:nowrap;letter-spacing:.2px;border-radius:2px;align-items:center;gap:2px;padding:2px 5px;font-weight:600;transition:all .15s;display:inline-flex}.link-tag.linked{color:var(--green);background:#22c55e1f;border:1px solid #22c55e33}.link-tag.unlinked{background:var(--bg-elevated);color:var(--tx-muted);border:1px solid var(--bd-dim)}.icon-del{cursor:pointer;opacity:.4;color:var(--red);background:0 0;border:none;border-radius:3px;padding:2px;font-size:12px;transition:opacity .15s}.icon-del:hover{opacity:1}.cp-grid .excel-td:nth-child(4),.cp-grid .excel-td:nth-child(5){text-align:right;font-family:var(--font-data)}.prog-wrap{background:var(--bg-elevated);border-radius:100px;width:70px;height:4px;overflow:hidden}.prog-bar{border-radius:100px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.prog-label{color:var(--tx-muted);font-size:9px;font-family:var(--font-data);margin-top:2px}.var-badge{font-size:10px;font-family:var(--font-data);border-radius:100px;padding:2px 7px;font-weight:500;display:inline-block}.var-ok{background:var(--green-dim);color:var(--green)}.var-warn{color:var(--amber);background:#f5a6231f}.var-over{background:var(--red-dim);color:var(--red)}.rebar-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.rebar-total-pill{font-family:var(--font-data);color:var(--red);background:#f43f5e1f;border:1px solid #f43f5e40;border-radius:4px;padding:3px 10px;font-size:12px}.rebar-info{border-top:1px solid var(--bd-faint);background:var(--bg-base);flex-shrink:0;display:flex}.rebar-stat{border-right:1px solid var(--bd-faint);flex-direction:column;flex:1;gap:2px;padding:7px 12px;display:flex}.rebar-stat span{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.4px;font-size:9.5px}.rebar-stat strong{font-family:var(--font-data);color:var(--tx-primary);font-size:13px}.rebar-svg{width:100%;height:100%;padding:4px}.scanner-suite .etb-btn{align-items:center;gap:6px;height:32px;padding:0 12px;display:flex}.scanner-suite .etb-btn:disabled{opacity:.5;cursor:not-allowed}.scan-progress-container{animation:.3s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.threed-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.threed-toolbar{background:var(--bg-base);border-bottom:1px solid var(--bd-faint);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.threed-label{font-family:var(--font-display);color:var(--tx-primary);flex-shrink:0;font-size:13px;font-weight:600}.threed-controls{gap:3px;margin-left:auto;display:flex}.threed-canvas{cursor:grab;flex:1;width:100%;min-height:0;display:block}.threed-legend{background:var(--bg-base);border-top:1px solid var(--bd-faint);flex-shrink:0;gap:12px;padding:6px 12px;display:flex}.legend-item{color:var(--tx-secondary);align-items:center;gap:5px;font-size:11px;display:flex}.legend-dot{border-radius:2px;width:8px;height:8px}.statusbar{background:var(--bg-void);border-top:1px solid var(--bd-faint);height:var(--statusbar-h);color:var(--tx-muted);font-size:10px;font-family:var(--font-data);align-items:center;gap:10px;padding:0 10px;display:flex}.sb-chip{white-space:nowrap;align-items:center;gap:3px;display:flex}.sb-chip-dot{border-radius:50%;width:4px;height:4px}.sb-sep{background:var(--bd-faint);width:1px;height:10px}.modal-overlay{backdrop-filter:blur(4px);z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-raised);border:1px solid var(--bd-mid);border-radius:12px;flex-direction:column;max-width:95vw;max-height:90vh;animation:.2s cubic-bezier(.4,0,.2,1) modalIn;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000080}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:none}}.modal-hdr{border-bottom:1px solid var(--bd-faint);background:var(--bg-elevated);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-title{font-family:var(--font-display);color:var(--tx-primary);font-size:14px;font-weight:600}.modal-close{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;transition:all .15s}.modal-close:hover{color:var(--tx-primary);background:var(--bg-hover)}.modal-body{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.mfoot{border-top:1px solid var(--bd-faint);background:var(--bg-elevated);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.mf{flex-direction:column;gap:5px;display:flex}.mf label{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.mi{background:var(--bg-elevated);border:1px solid var(--bd-mid);color:var(--tx-primary);font-size:12.5px;font-family:var(--font-ui);border-radius:6px;outline:none;padding:7px 10px;transition:border-color .15s}.mi:focus{border-color:var(--amber)}.ms{background:var(--bg-elevated);border:1px solid var(--bd-mid);color:var(--tx-primary);font-size:12.5px;font-family:var(--font-ui);cursor:pointer;border-radius:6px;outline:none;padding:6px 10px}.ms:focus{border-color:var(--amber)}.type-grid-big{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.type-btn-big{border:1px solid var(--bd-dim);background:var(--bg-elevated);color:var(--tx-secondary);cursor:pointer;font-size:11px;font-family:var(--font-ui);border-radius:8px;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;transition:all .15s;display:flex}.type-btn-big:hover{border-color:var(--bd-bright);color:var(--tx-primary)}.type-btn-big.act{border-color:var(--amber);color:var(--amber);background:var(--amber-dim)}.cpick{flex-wrap:wrap;gap:5px;display:flex}.csw{cursor:pointer;background:var(--sc,#3b82f6);border:2px solid #0000;border-radius:6px;width:26px;height:26px;transition:all .15s}.csw:hover{transform:scale(1.15)}.csw.sel{box-shadow:0 0 0 2px var(--sc), 0 0 0 4px #fff3;border-color:#fff}.modal-body select.ms{background:var(--bg-elevated);border:1px solid var(--bd-mid);width:100%;color:var(--tx-primary);border-radius:4px;outline:none;padding:6px}.modal-body select.ms:focus{border-color:var(--amber)}.team-manager{background:var(--bg-elevated);border:1px solid var(--bd-dim);border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex}.team-list{flex-direction:column;gap:4px;max-height:120px;display:flex;overflow-y:auto}.team-row{background:var(--bg-surface);border:1px solid var(--bd-faint);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:11.5px;display:flex}.team-n{color:var(--tx-primary);flex:1;font-weight:600}.team-r{color:var(--tx-muted);background:var(--bg-elevated);font-size:10px;font-family:var(--font-data);border-radius:4px;padding:2px 6px}.team-del{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;transition:color .15s}.team-del:hover{color:var(--red)}.team-add-form{border-top:1px solid var(--bd-faint);gap:6px;padding-top:8px;display:flex}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:4px;display:flex;position:fixed;bottom:30px;right:12px}.toast{background:var(--bg-elevated);border:1px solid var(--bd-mid);color:var(--tx-primary);opacity:0;border-radius:7px;max-width:320px;padding:8px 12px;font-size:11.5px;transition:all .28s cubic-bezier(.4,0,.2,1);transform:translate(50px);box-shadow:0 4px 20px #00000080}.toast.show{opacity:1;transform:translate(0)}.toast.t-success{border-left:3px solid var(--green)}.toast.t-info{border-left:3px solid var(--blue)}.toast.t-warn{border-left:3px solid var(--amber)}.sb-hint{background:var(--bg-elevated);border-top:1px solid var(--bd-faint);color:var(--tx-muted);text-align:center;border-radius:0 0 8px 8px;padding:10px 14px;font-size:10px;font-style:italic;line-height:1.3}.meas-card-details{background:#0f1216;border-top:1px solid #ffffff0d;padding:12px}.mcd-header-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.mcd-title{color:var(--tx-muted);letter-spacing:.05em;font-size:11px;font-weight:600}.mcd-add-btn{color:#3b82f6;cursor:pointer;background:#3b82f61a;border:1.5px solid #3b82f6;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.mcd-add-btn:hover{color:#fff;background:#3b82f6}.mcd-list{flex-direction:column;gap:8px;display:flex}.mcd-item-card{background:#1a202c;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex;box-shadow:0 2px 8px #0003}.mcd-item-info{flex-direction:column;gap:2px;display:flex}.mcd-item-name{color:#a0aec0;font-size:12px;font-weight:600}.mcd-item-val{font-size:11px;font-family:var(--font-data);color:#f7fafc;font-weight:500}.mcd-item-val span{margin-left:2px;font-size:9px}.mcd-item-actions{gap:6px;display:flex}.mcd-act-btn{color:#718096;cursor:pointer;background:#11141a;border:1px solid #2d3748;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;transition:all .2s;display:flex}.mcd-act-btn:hover{color:#e2e8f0;background:#2d3748}.mcd-act-btn.del:hover{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.mcd-act-btn.inactive{color:#4a5568;opacity:.5}.meas-edit-btn{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-muted);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;transition:all .15s;display:none;position:absolute;top:8px;right:8px}.meas-card:hover .meas-edit-btn{display:flex}.meas-edit-btn:hover{color:var(--amber);border-color:var(--amber);background:var(--amber-dim)}.draw-tree{flex-direction:column;max-height:220px;display:flex;overflow-y:auto}.cur-row{border:1px solid var(--bd-dim);transition:all .15s}.cur-row:hover{background:var(--bg-hover)!important;border-color:var(--bd-bright)!important}.cur-row.active{border-color:var(--amber)!important;background:var(--amber-dim)!important}@keyframes scanningRipple{0%{opacity:1;border-width:8px;transform:scale(.1)}to{opacity:0;border-width:1px;transform:scale(4)}}.scan-ripple{border:2px solid var(--amber);pointer-events:none;border-radius:50%;width:100px;height:100px;animation:1s cubic-bezier(0,0,.2,1) infinite scanningRipple;position:absolute}.scan-overlay{font-family:var(--font-display);color:var(--amber);z-index:50;backdrop-filter:blur(2px);pointer-events:none;background:#0003;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:absolute;inset:0}.ai-detect-indicator{border:2px solid var(--green);width:40px;height:40px;box-shadow:0 0 15px var(--green);pointer-events:none;background:#22c55e1a;border-radius:4px;position:absolute}.meas-history-btn{border:1px solid var(--bd-dim);color:var(--tx-muted);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:2px 5px;font-size:10px;transition:all .2s;display:flex}.meas-history-btn:hover{border-color:var(--teal);color:var(--teal);background:#2dd4bf0d}.meas-log-detail{border-left:2px solid var(--teal);font-family:var(--font-data);background:#0003;border-radius:0 4px 4px 0;margin:6px 8px 10px;padding:8px;animation:.2s ease-out slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.meas-log-title{color:var(--teal);letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-size:9px;font-weight:800}.meas-log-row{border-bottom:1px solid #ffffff08;gap:8px;margin-bottom:4px;padding-bottom:4px;display:flex}.meas-log-row:last-child{border-bottom:none}.log-time{color:var(--tx-muted);background:var(--bg-surface);white-space:nowrap;border-radius:3px;height:fit-content;padding:1px 4px;font-size:8.5px}.log-msg{color:var(--tx-secondary);font-size:10.5px;line-height:1.3}.grp-organizer-ctrls{opacity:0;align-items:center;gap:2px;transition:opacity .2s ease-in-out;display:flex}.sb-item:hover .grp-organizer-ctrls{opacity:1}.grp-organizer-btn,.grp-del-btn{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px 4px;font-size:10px;transition:all .15s;display:flex}.grp-organizer-btn:hover{background:var(--bg-hover);color:var(--amber)}.grp-del-btn:hover{background:var(--red-dim);color:var(--red)}.sb-item-label{white-space:nowrap;text-overflow:ellipsis;margin-right:4px;overflow:hidden}.active-meas-sidebar{background:var(--bg-surface);flex-direction:column;height:100%;animation:.2s ease-out slideInLeft;display:flex}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:none}}.ams-header{background:var(--bg-base);border-bottom:1px solid var(--bd-mid);align-items:center;gap:8px;padding:12px;display:flex}.ams-back-btn{border:1px solid var(--bd-mid);color:var(--tx-muted);cursor:pointer;background:0 0;border-radius:4px;padding:3px 8px;font-size:10px}.ams-back-btn:hover{color:var(--amber);border-color:var(--amber)}.ams-title{flex:1;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;display:flex}.ams-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ams-title small{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.detail-body{background:var(--bg-surface);flex:1;gap:10px;padding:14px 12px 8px;display:grid;overflow-y:auto}.field{gap:6px;display:grid}.field label{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.sb-input{border:1px solid var(--bd-dim);background:var(--bg-base);width:100%;color:var(--tx-primary);border-radius:8px;padding:8px 10px;font-size:12px}.sb-input:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 3px #f5a62324}.sb-val-box{background:var(--bg-elevated);border:1px solid var(--bd-dim);min-height:34px;color:var(--tx-primary);border-radius:10px;align-items:center;padding:8px 10px;font-size:12px;display:inline-flex}.sb-footer{background:var(--bg-base);border-top:1px solid var(--bd-mid);padding:12px}.btn-danger.full-width{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:12px 14px;font-size:12px;font-weight:700;transition:background .15s}.btn-danger.full-width:hover{background:#e11d48}.ams-summary{background:var(--bd-faint);border-bottom:1px solid var(--bd-dim);grid-template-columns:1fr 1fr;gap:1px;padding:12px;display:grid}.premium-volume-box{background:var(--bg-surface);border:1px solid var(--bd-mid);border-radius:10px;margin:12px 0;overflow:hidden;box-shadow:0 8px 24px #0000004d}.pvb-header{background:var(--bg-elevated);border-bottom:1px solid var(--bd-dim);align-items:center;gap:8px;padding:8px 12px;display:flex}.pvb-icon{font-size:16px}.pvb-title{color:var(--tx-primary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.pvb-grid{grid-template-columns:1fr 1fr;gap:12px;padding:12px;display:grid}.pvb-field label{color:var(--tx-muted);margin-bottom:4px;font-size:10px;font-weight:500;display:block}.pvb-input-wrap{background:var(--bg-void);border:1px solid var(--bd-dim);border-radius:6px;align-items:center;padding:2px 8px;transition:all .2s;display:flex}.pvb-input-wrap:focus-within{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-dim)}.pvb-input-wrap input{color:var(--tx-primary);font-size:12px;font-family:var(--font-data);background:0 0;border:none;width:100%;padding:4px 0}.pvb-input-wrap input:focus{outline:none}.pvb-unit{color:var(--tx-muted);margin-left:4px;font-size:10px}.pvb-footer{background:var(--bg-raised);color:var(--tx-secondary);border-top:1px solid var(--bd-faint);text-align:right;padding:8px 12px;font-size:11px}.pvb-footer strong{color:var(--amber)}.ams-stat{flex-direction:column;display:flex}.ams-stat-label{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px}.ams-stat-val{color:var(--amber);font-size:14px;font-weight:700;font-family:var(--font-data)}.ams-list-hdr{color:var(--tx-muted);background:var(--bg-base);padding:8px 12px;font-size:10px;font-weight:700}.ams-list{flex-direction:column;flex:1;gap:4px;padding:4px;display:flex;overflow-y:auto}.ams-item{background:var(--bg-elevated);border:1px solid var(--bd-dim);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;transition:all .15s;display:flex}.ams-item:hover{border-color:var(--bd-bright)}.ams-item-num{color:var(--tx-muted);font-size:9px;font-family:var(--font-data)}.ams-item-info{flex:1}.ams-item-val{color:var(--tx-primary);font-size:11.5px;font-weight:600}.ams-item-meta{color:var(--tx-muted);font-size:9px}.ams-item-del{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .15s;display:flex}.ams-item-del:hover{background:var(--red-dim);color:var(--red)}.ams-empty{text-align:center;color:var(--tx-muted);padding:40px 20px;font-style:italic}.ams-footer{border-top:1px solid var(--bd-dim);padding:12px}.ams-hint{color:var(--tx-muted);text-align:center;font-size:10px;font-style:italic;line-height:1.4}.ams-color-bar{background:var(--bg-surface);border-bottom:1px solid var(--bd-dim);flex-wrap:wrap;gap:6px;padding:8px 12px;display:flex}.ams-color-circle{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;height:18px;transition:all .15s}.ams-color-circle:hover{transform:scale(1.2)}.ams-color-circle.active{border-color:var(--tx-primary);transform:scale(1.1)}.ams-item.highlighted{box-shadow:0 0 10px #f5a62333;border-color:var(--amber)!important;background:#f5a6231a!important}.ams-title-input{color:var(--tx-primary);background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:2px 4px;font-size:12px;font-weight:600}.ams-title-input:hover{border-color:var(--bd-dim)}.ams-title-input:focus{border-color:var(--amber);background:var(--bg-base);outline:none}.ams-meta-grid{background:var(--bg-surface);grid-template-columns:1fr 1fr;gap:8px;padding:12px;display:grid}.ams-meta-item{flex-direction:column;gap:4px;display:flex}.ams-meta-item label{color:var(--tx-muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px}.ams-meta-item input{background:var(--bg-elevated);border:1px solid var(--bd-dim);color:var(--tx-primary);font-family:var(--font-data);border-radius:4px;width:100%;padding:4px 8px;font-size:12px}.ams-meta-item input:focus{border-color:var(--amber);outline:none}.ams-item.deduction{border-left:2px solid var(--red);background:#ef444405}.ams-empty.tiny{padding:12px;font-size:10px}.legends-tbl{border-collapse:collapse;width:100%;font-family:var(--font-ui)}.legends-tbl th{text-align:left;color:var(--tx-muted);text-transform:uppercase;border-bottom:2px solid var(--bd-mid);padding:10px;font-size:10px;font-weight:700}.legends-tbl td{border-bottom:1px solid var(--bd-faint);vertical-align:middle;padding:10px;font-size:12px}.leg-color-box{border-radius:3px;width:14px;height:14px}.leg-val{font-family:var(--font-data);color:var(--amber);font-weight:600}.level2-sheet{flex-direction:column;gap:16px;min-width:600px;display:flex}.sheet-meta{background:var(--bg-elevated);border:1px solid var(--bd-dim);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:12px;padding:12px;display:grid}.sheet-stat{flex-direction:column;gap:2px;display:flex}.sheet-stat label{color:var(--tx-muted);text-transform:uppercase;font-size:9px}.sheet-stat b{font-size:13px;font-family:var(--font-data);color:var(--tx-primary)}.sheet-tbl{border-collapse:collapse;background:var(--bg-surface);border-radius:6px;width:100%;overflow:hidden}.sheet-tbl th{text-align:left;background:var(--bg-base);color:var(--tx-muted);text-transform:uppercase;border-bottom:1px solid var(--bd-mid);padding:8px 12px;font-size:10px}.sheet-tbl td{border-bottom:1px solid var(--bd-faint);padding:8px 12px;font-size:12px}.sheet-tbl tr:hover{background:var(--bg-elevated)}.sheet-input{border:1px solid var(--bd-dim);color:var(--tx-primary);font-family:var(--font-data);text-align:right;background:0 0;border-radius:4px;width:80px;padding:4px 8px}.sheet-input:focus{border-color:var(--amber);outline:none}.level2-modal .modal-body{background:#0f172a;padding:0!important}.l2-badge{color:#fff;text-transform:uppercase;background:#3b82f6;border-radius:4px;margin-right:8px;padding:2px 6px;font-size:10px;font-weight:700}.sheet-summary-bar{background:#1e293b;border-bottom:1px solid #334155;gap:24px;padding:12px 20px;display:flex}.ss-item{align-items:center;gap:8px;font-size:13px;display:flex}.ss-item label{color:#94a3b8}.ss-item b{color:#f8fafc;font-family:DM Mono,monospace}.l2-grid-wrap{background:#0f172a;max-height:60vh;overflow:auto}.l2-grid{border-collapse:collapse;table-layout:fixed;color:#e2e8f0;width:100%}.l2-th{color:#94a3b8;text-transform:uppercase;text-align:left;z-index:10;background:#1e293b;border:1px solid #334155;padding:8px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.l2-td{vertical-align:middle;border:1px solid #334155;height:32px;padding:0;font-size:13px}.l2-td.row-sel{background:#3b82f61a}.l2-td.cell-sel{outline-offset:-2px;background:#3b82f60d;outline:2px solid #3b82f6}.l2-cell-val{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:4px 12px;display:flex;overflow:hidden}.l2-input{color:#fff;background:#1e293b;border:none;outline:none;width:100%;height:100%;padding:4px 12px;font-size:13px}.l2-td.num{text-align:right;font-family:DM Mono,monospace}.l2-td.row-num{color:#64748b;text-align:center;background:#1e293b;width:40px;font-size:11px}.l2-tag{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.l2-tag.manual{color:#94a3b8;background:#94a3b833}.l2-tag.linked{color:#60a5fa;background:#3b82f633}.l2-tag.scanned{color:#fbbf24;background:#f59e0b33}.link-icon{color:#3b82f6;font-size:12px}.l2-row-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;transition:all .2s}.l2-row-btn:hover{color:#fb7185;background:#f43f5e1a}.l2-shortcuts{color:#64748b;gap:16px;font-size:11px;display:flex}.l2-shortcuts b{color:#94a3b8;margin-right:4px}.active-meas-sidebar{background:var(--bg-surface);flex-direction:column;height:100%;display:flex}.ams-header{border-bottom:1px solid var(--bd-faint);background:var(--bg-base);padding:14px}.ams-back-btn{color:var(--amber);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.ams-title{flex-direction:column;display:flex}.ams-title span{color:var(--tx-primary);font-size:14px;font-weight:700}.ams-title small{text-transform:uppercase;letter-spacing:.5px;color:var(--tx-muted);font-size:9px;font-weight:600}.ams-summary{background:var(--bg-elevated);border-bottom:1px solid var(--bd-faint);gap:12px;padding:12px;display:flex}.ams-stat{flex-direction:column;flex:1;display:flex}.ams-stat-label{color:var(--tx-muted);text-transform:uppercase;font-size:9px;font-weight:700}.ams-stat-val{font-family:var(--font-data);color:var(--tx-primary);font-size:13px;font-weight:500}.detail-body{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--tx-secondary);font-size:10px;font-weight:600}.field-group{grid-template-columns:1fr 1fr;gap:10px;display:grid}.color-picker-row{align-items:center;gap:8px;display:flex}.color-picker-row input[type=color]{border:1px solid var(--bd-mid);cursor:pointer;background:0 0;border-radius:4px;width:32px;height:32px;padding:0}.color-picker-row input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}.hex-input{font-family:var(--font-data);flex:1}.segment-list-container{margin-top:10px}.segment-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.segment-item{background:var(--bg-elevated);border:1px solid var(--bd-faint);border-radius:6px;transition:all .15s;overflow:hidden}.segment-item:hover{border-color:var(--bd-bright)}.segment-item.hidden{opacity:.5}.seg-main{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.seg-info{flex-direction:column;display:flex}.seg-name{color:var(--tx-secondary);font-size:11px;font-weight:600}.seg-info .seg-val{font-family:var(--font-data);color:var(--tx-primary);font-size:10px}.seg-actions{gap:4px;display:flex}.seg-btn{border:1px solid var(--bd-faint);background:var(--bg-surface);width:24px;height:24px;color:var(--tx-muted);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:11px;transition:all .15s;display:flex}.seg-btn:hover{background:var(--bg-hover);color:var(--tx-primary);border-color:var(--bd-mid)}.seg-btn.del:hover{color:var(--red);border-color:var(--red-dim);background:var(--red-dim)}.full-width{width:100%}.active-meas-sidebar.is-locked{opacity:.85}.ams-header-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lock-toggle{color:#9ca3af;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:4px 8px;font-size:14px;transition:all .2s}.lock-toggle:hover{background:#ffffff1a}.lock-toggle.active{color:#ef4444;background:#ef444433;border-color:#ef4444}.unit-warning{color:#000;cursor:help;background:#f59e0b;border-radius:3px;margin-top:4px;padding:2px 4px;font-size:10px;font-weight:700;display:inline-block}.sb-hdr{justify-content:space-between;align-items:center;display:flex}.sb-hdr-action{color:#3b82f6;cursor:pointer;background:#3b82f633;border:1px solid #3b82f6;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-weight:700;display:flex}.sb-hdr-action:hover{color:#fff;background:#3b82f6}.sb-hdr-action:disabled{opacity:.3;cursor:not-allowed}.sb-textarea{color:#fff;resize:vertical;background:#0003;border:1px solid #ffffff1a;border-radius:6px;outline:none;width:100%;padding:8px;font-size:12px;transition:border-color .2s}.sb-textarea:focus{border-color:#3b82f6}.sb-textarea:disabled{opacity:.5;cursor:not-allowed}.rev-drift-flag{color:#ef4444;background:#ef444426;border:1px solid #ef4444;border-radius:99px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:700;display:flex}.ams-header-actions{align-items:center;gap:8px;display:flex}.ams-action-btn{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .2s;display:flex}.ams-action-btn:hover{background:#ffffff1a}.ams-title-input{color:#fff;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;width:100%;margin-bottom:4px;padding:0;font-size:16px;font-weight:600}.ams-title-input:focus{border-bottom-color:var(--brand-primary)}.ams-stat.main{border-right:1px solid #ffffff1a;flex:2}.ams-stat-row{align-items:baseline;gap:8px;display:flex}.ams-stat-val.is-deduction{color:#ef4444}.unit-select{color:#9ca3af;background:#0003;border:1px solid #ffffff1a;border-radius:3px;outline:none;padding:1px 4px;font-size:10px}.deduction-toggle{color:#10b981;cursor:pointer;white-space:nowrap;text-transform:uppercase;background:#10b9811a;border:1px solid #10b981;border-radius:4px;justify-content:center;align-items:center;gap:4px;height:20px;padding:0 8px;font-size:10px;font-weight:600;transition:all .2s;display:flex}.deduction-toggle.active{color:#ef4444;background:#ef44441a;border-color:#ef4444}.volume-config-box{background:#3b82f60d;border:1px solid #3b82f633;border-radius:8px;margin-top:16px;padding:12px}.vcb-header{color:#3b82f6;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:700}.tool-big[style*="color: var(--brand-primary)"]{background:#3b82f60d}.tool-big.active[style*="color: var(--brand-primary)"]{background:var(--brand-primary);color:#fff!important}.excel-th{position:relative}.excel-th-inner{justify-content:space-between;align-items:center;width:100%;display:flex}.col-resize-handle{cursor:col-resize;z-index:10;background:0 0;width:4px;transition:background .2s;position:absolute;top:0;bottom:0;right:0}.col-resize-handle:hover,.col-resize-handle:active{background:#3b82f6}.excel-td.cell-sel{outline-offset:-2px;z-index:5;outline:2px solid #3b82f6}.excel-row.drag-over{border-top:2px solid #3b82f6}.threed-panel.fullscreen-mode{z-index:99999!important;background:#060708!important;width:100%!important;height:100%!important;position:fixed!important;top:0!important;left:0!important}.fullscreen-mode .threed-canvas{width:100%!important;height:calc(100% - 50px)!important}@media (height<=820px) or (width<=1440px){:root{--topbar-h:74px;--sidebar-w:230px}.logo-text{font-size:13.5px}.tb-logo{padding:0 10px}.proj-tab{padding:0 8px;font-size:11.5px}.topbar-right{gap:6px}.sb-hdr{padding:4px 10px;font-size:10.5px}.sb-item{min-height:26px;padding:4px 8px}.sb-item-label{font-size:12px}.meas-card{margin:3px 0;padding:6px 8px}.meas-card-header{gap:6px}.meas-label{font-size:11px}.meas-type-badge{padding:1px 4px;font-size:8.5px}.mca-btn{width:16px;height:16px;font-size:8.5px}.premium-btn{padding:4px 10px;font-size:12px}.etb-btn{height:28px;padding:0 8px;font-size:11px}.boq-tbl th{padding:4px 6px;font-size:9px}.boq-tbl td{padding:3px 6px;font-size:11px}}@media (width<=1360px),(height<=820px){:root{--topbar-h:68px;--sidebar-w:210px}#root{min-width:calc(100dvw / var(--app-scale,1));min-height:calc(100dvh / var(--app-scale,1))}.app-sidebar{padding:24px 16px}.app-footer{padding:14px 24px}}@media (width>=2000px){:root{--topbar-h:130px;--sidebar-w:320px;font-size:16px}.tool-big{width:70px;min-width:70px;height:60px}.tool-icon{font-size:26px}.tool-label{max-width:65px;font-size:11px}}.cp-modal-overlay{z-index:9999;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cp-modal{background:var(--bg-card,#1e293b);border:1px solid var(--bd-dim,#334155);border-radius:10px;flex-direction:column;gap:14px;width:90%;min-width:320px;max-width:420px;padding:24px 28px 20px;display:flex;box-shadow:0 8px 32px #00000080}.cp-modal-title{color:var(--text-primary,#f1f5f9);font-size:15px;font-weight:700}.cp-modal-body{color:var(--text-secondary,#94a3b8);margin:0;font-size:13px;line-height:1.5}.cp-modal-input{background:var(--bg-input,#0f172a);border:1px solid var(--bd-dim,#334155);color:var(--text-primary,#f1f5f9);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:13px;transition:border-color .15s}.cp-modal-input:focus{border-color:var(--accent,#3b82f6)}.cp-modal-actions{justify-content:flex-end;gap:8px;display:flex}.cp-modal-btn-cancel{border:1px solid var(--bd-dim,#334155);color:var(--text-secondary,#94a3b8);cursor:pointer;background:0 0;border-radius:6px;padding:7px 16px;font-size:13px;transition:background .15s}.cp-modal-btn-cancel:hover{background:var(--bg-hover,#1e293b)}.cp-modal-btn-ok{background:var(--accent,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:600;transition:background .15s}.cp-modal-btn-ok:hover:not(:disabled){background:#2563eb}.cp-modal-btn-ok:disabled{opacity:.4;cursor:not-allowed}.cp-modal-btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:7px 18px;font-size:13px;font-weight:600;transition:background .15s}.cp-modal-btn-danger:hover{background:#b91c1c}.premium-ai-module{backdrop-filter:blur(12px);border:1px solid var(--bd-dim);background:linear-gradient(145deg,#1e293b66 0%,#0f172a99 100%);box-shadow:0 8px 32px #0000004d}.premium-dropzone{background:linear-gradient(to bottom right,#1e293b4d,#0f172a4d);border:2px dashed #3b82f680;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 0 20px #0003}.premium-dropzone:hover{border-color:var(--blue);background:linear-gradient(to bottom right,#1e293b80,#0f172a80);transform:translateY(-2px);box-shadow:0 8px 24px #3b82f626,inset 0 0 20px #0006}.premium-dropzone:active{transform:translateY(0)}.premium-btn{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:none;transition:all .3s;box-shadow:0 4px 12px #3b82f64d}.premium-btn:hover{background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);transform:translateY(-1px);box-shadow:0 6px 16px #3b82f666}.premium-row{transition:all .2s}.premium-row:hover{background-color:#ffffff08;transform:scale(1.002)}:root{--glass-bg:#0f141cbf;--glass-border:#ffffff1a;--accent-glow:#f5a62366}.floating-toolbar{background:var(--glass-bg);backdrop-filter:blur(12px);border:1px solid var(--glass-border);z-index:100;border-radius:12px;flex-direction:column;gap:4px;padding:6px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:20px;left:20px;box-shadow:0 8px 32px #0006}.toolbar-sep{background:var(--glass-border);height:1px;margin:4px 8px}.toolbar-handle{height:12px;color:var(--tx-muted);cursor:grab;justify-content:center;align-items:center;margin-bottom:2px;font-size:14px;display:flex}.toolbar-content{flex-direction:column;gap:4px;display:flex}.toolbar-btn{width:42px;height:42px;color:var(--tx-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:20px;transition:all .2s;display:flex}.toolbar-btn:hover{background:var(--bg-hover);color:var(--tx-primary)}.toolbar-btn.active{background:var(--amber-dim);color:var(--amber);border-color:var(--amber);box-shadow:0 0 12px var(--accent-glow)}.panel-manager-dock{pointer-events:none;z-index:100;flex-direction:column;gap:12px;width:420px;display:flex;position:absolute;top:20px;bottom:20px;right:20px}.dock-panel{pointer-events:all;background:var(--glass-bg);backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;flex-direction:column;flex:1;min-height:200px;transition:all .3s;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000080}.dock-panel .boq-excel,.dock-panel .rebar-panel{background:0 0;font-size:11px}.dock-panel .excel-toolbar,.dock-panel .boq-toolbar,.dock-panel .scanner-suite{flex-wrap:nowrap;gap:2px;padding:4px 8px;overflow-x:auto}.dock-panel .etb-btn,.dock-panel .btn-ghost,.dock-panel .btn-primary{padding:2px 6px;font-size:10px}.dock-panel .excel-td,.dock-panel .boq-tbl td{padding:2px 4px}.dock-panel .formula-bar{padding:2px 6px}.panel-header{border-bottom:1px solid var(--glass-border);background:#ffffff08;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-title{font-family:var(--font-display);letter-spacing:.5px;color:var(--tx-primary);font-size:13px;font-weight:600}.panel-controls{gap:8px;display:flex}.ctrl-btn{color:var(--tx-muted);cursor:pointer;background:0 0;border:none;padding:2px;font-size:14px;transition:color .2s}.ctrl-btn:hover{color:var(--tx-primary)}.panel-body{flex:1;padding:16px;overflow-y:auto}.placeholder-content{height:100%;color:var(--tx-muted);border:1px dashed var(--bd-dim);border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-style:italic;display:flex}.canvas-hud{background:var(--glass-bg);backdrop-filter:blur(8px);border:1px solid var(--glass-border);z-index:100;border-radius:100px;align-items:center;gap:24px;padding:8px 24px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000004d}.hud-section{align-items:center;gap:12px;display:flex}.hud-tool-badge{color:var(--amber);align-items:center;gap:8px;font-weight:700;display:flex}.hud-stat{font-family:var(--font-data);align-items:center;gap:6px;font-size:11px;display:flex}.stat-label{color:var(--tx-muted)}.stat-value{color:var(--tx-primary)}.canvas-navigation{background:var(--glass-bg);backdrop-filter:blur(8px);border:1px solid var(--glass-border);z-index:100;border-radius:8px;align-items:center;gap:8px;padding:6px 14px;font-size:12px;display:flex;position:absolute;bottom:20px;left:20px}.nav-item{color:var(--tx-secondary)}.nav-item.active{color:var(--amber);font-weight:600}.nav-sep{color:var(--tx-muted)}.ai-insights-container{flex-direction:column;gap:16px;display:flex}.insight-header{color:var(--tx-primary);align-items:center;gap:10px;margin-bottom:4px;font-size:14px;font-weight:700;display:flex}.insights-list{flex-direction:column;gap:10px;display:flex}.insight-card{background:#ffffff0d;border:1px solid #0000;border-radius:12px;gap:12px;padding:12px;transition:all .2s;display:flex}.insight-card:hover{background:#ffffff14}.insight-card.warning{border-left:4px solid var(--amber)}.insight-card.success{border-left:4px solid var(--green)}.insight-card.error{border-left:4px solid var(--red)}.insight-card.info{border-left:4px solid var(--blue)}.insight-icon{font-size:18px}.insight-content{color:var(--tx-secondary);flex-direction:column;gap:8px;font-size:12px;display:flex}.apply-btn{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;padding:4px 10px;font-size:11px;transition:opacity .2s}.apply-btn:hover{opacity:.9}.summary-card{background:#f5a6230d;border:1px solid #f5a6231a;border-radius:12px;margin-top:8px;padding:16px}.summary-card h4{text-transform:uppercase;letter-spacing:1px;color:var(--amber);margin-bottom:12px;font-size:11px}.summary-stat{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.summary-stat span{color:var(--tx-secondary)}.summary-stat strong{color:var(--tx-primary);font-family:var(--font-data)}.qto-canvas-container.qmetrix-2-0{z-index:1;width:100%;height:100%;position:absolute;inset:0}.drawings-panel{flex-direction:column;gap:16px;height:100%;display:flex}.draw-tree{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.draw-item{cursor:pointer;color:var(--tx-secondary);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;transition:all .2s;display:flex;position:relative}.draw-item:hover{color:var(--tx-primary);background:#ffffff0d}.draw-item.active{background:var(--amber-dim);color:var(--amber)}.active-indicator{background:var(--amber);border-radius:50%;width:6px;height:6px;position:absolute;right:12px}.takeoff-panel{flex-direction:column;gap:20px;height:100%;display:flex}.section-hdr{text-transform:uppercase;letter-spacing:1px;color:var(--tx-muted);margin-bottom:12px;font-size:11px;font-weight:700}.layers-grid{flex-wrap:wrap;gap:8px;display:flex}.layer-chip{border:1px solid var(--glass-border);color:var(--tx-secondary);cursor:pointer;background:#ffffff0d;border-radius:100px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;transition:all .2s;display:flex}.layer-chip.active{border-color:var(--blue);color:var(--blue);background:#3b82f61a}.layer-chip .swatch{border-radius:50%;width:8px;height:8px}.meas-tree{flex-direction:column;gap:8px;display:flex}.group-row{cursor:pointer;color:var(--tx-primary);align-items:center;gap:8px;padding:6px 0;font-size:12px;font-weight:600;display:flex}.group-row .count{color:var(--tx-muted);background:#ffffff1a;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:10px}.group-content{border-left:1px solid var(--glass-border);flex-direction:column;gap:4px;margin-top:4px;margin-left:12px;padding-left:12px;display:flex}.meas-item{cursor:pointer;background:#ffffff08;border-radius:8px;align-items:center;gap:10px;padding:8px;transition:all .2s;display:flex}.meas-item:hover{background:#ffffff0f}.meas-item.selected{border:1px solid var(--glass-border);background:#ffffff1a}.meas-dot{border-radius:2px;width:10px;height:10px}.meas-info{flex-direction:column;flex:1;display:flex}.m-label{font-size:11px;font-weight:600}.m-val{color:var(--tx-muted);font-size:10px}.edit-btn{color:var(--tx-muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:4px;font-size:12px;transition:opacity .2s}.meas-item:hover .edit-btn{opacity:1}.toolbar.ribbon-pro{user-select:none;color:#94a3b8;background:#0f1318;border-bottom:1px solid #2a2f3a;flex-shrink:0;align-items:stretch;gap:0;height:105px;padding:0 16px;display:flex}.ribbon-brand{border-right:1px solid #2a2f3a;align-items:center;gap:10px;margin-right:10px;padding-right:20px;display:flex}.logo-hex{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpolygon points='16,3 28,9.5 16,16 4,9.5' fill='%23ffb703'/%3E%3Cpolygon points='4,9.5 16,16 16,29 4,22.5' fill='%23f59e0b'/%3E%3Cpolygon points='16,16 28,9.5 28,22.5 16,29' fill='%23d97706'/%3E%3Cpolygon points='16,3 28,9.5 16,16 4,9.5' stroke='%23ffe082' stroke-width='0.5' fill='none'/%3E%3Cpolygon points='4,9.5 16,16 16,29 4,22.5' stroke='%23fbbf24' stroke-width='0.5' fill='none'/%3E%3Cpolygon points='16,16 28,9.5 28,22.5 16,29' stroke='%23f59e0b' stroke-width='0.5' fill='none'/%3E%3C/svg%3E") 50%/contain no-repeat;flex-shrink:0;width:28px;height:28px}.logo-text{color:#fff;letter-spacing:-.5px;font-family:Syne,sans-serif;font-size:16px;font-weight:700}.logo-text span{color:#f5a623}.ribbon-group{border-right:1px solid #2a2f3a;flex-direction:column;padding:6px 12px;display:flex}.group-header{text-transform:uppercase;color:#4b5563;text-align:center;letter-spacing:.1em;margin-bottom:8px;font-size:9px;font-weight:700}.group-content{flex:1;justify-content:center;align-items:flex-start;gap:4px;display:flex}.ribbon-btn.big{background:#ffffff08;border:1px solid #ffffff0d;min-width:70px;height:60px;padding:8px}.ribbon-btn.big .ribbon-icon{margin-bottom:4px;font-size:28px}.ribbon-btn.big .ribbon-label{font-size:11px;font-weight:700}.ribbon-btn.sm{min-width:54px;height:54px;padding:4px}.ribbon-btn.sm .ribbon-icon{font-size:18px}.ribbon-btn.sm .ribbon-label{font-size:9px}.ribbon-btn{cursor:pointer;color:#94a3b8;background:0 0;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:all .2s;display:flex}.ribbon-btn:hover{color:#fff;background:#ffffff14;border-color:#ffffff1a}.ribbon-btn.active{color:#60a5fa;background:#3b82f626;border-color:#3b82f6}.ribbon-btn.home{color:#f5a623;background:#f5a6231a;border:1px solid #f5a6234d;height:54px;padding:8px 12px}.ribbon-sep{background:#2a2f3a;align-self:center;width:1px;height:40px;margin:0 10px}.ribbon-drop-wrapper--legacy-unused{position:relative}.ribbon-drop-panel--legacy-unused{z-index:1000;background:#1a2130;border:1px solid #334155;border-radius:8px;flex-direction:column;gap:2px;min-width:200px;margin-top:5px;padding:6px;animation:.2s ease-out dropIn;display:flex;position:absolute;top:100%;left:0;box-shadow:0 10px 25px #00000080}@keyframes dropIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.drop-item{color:#94a3b8;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.drop-item:hover{color:#fff;background:#334155}.ribbon-group.settings{border-right:none;flex:none;justify-content:center}.osnap-btn.active{color:#f5a623;background:#f5a6231a;border-color:#f5a623}.ribbon-select{color:#fff;background:#1a2130;border:1px solid #334155;border-radius:4px;margin:0 4px;padding:6px 8px;font-size:11px}.ribbon-chip{color:#f5a623;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:4px;padding:6px 12px;font-size:11px;font-weight:700}.ribbon-action-btn{color:#94a3b8;cursor:pointer;background:#1e293b;border:1px solid #334155;border-radius:4px;margin-left:4px;padding:6px 12px;font-size:11px}.ribbon-action-btn.setup{color:#000;background:#f5a623;border:none;font-weight:700}.ribbon-action-btn.setup:hover{background:#fff}:root{--sidebar-w:260px;--sidebar-bg:#0a0f1abf;--sidebar-border:#ffffff0d;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}.app-layout{grid-template-columns:var(--sidebar-w) 1fr;width:100%;height:100%;color:var(--tx-primary,#f1f5f9);font-family:var(--font-ui,"Instrument Sans", sans-serif);background:#030712;display:grid;position:relative;overflow:hidden}.app-layout.full-screen{grid-template-columns:1fr}.app-layout.full-screen .app-main{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.app-layout:before{content:"";filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#f59e0b14 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:-200px;left:-200px}.app-layout:after{content:"";filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#3b82f60f 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;bottom:-150px;right:-150px}.app-sidebar{background:var(--sidebar-bg);-webkit-backdrop-filter:blur(24px);border-right:1px solid var(--sidebar-border);z-index:10;flex-direction:column;height:100%;padding:32px 20px;display:flex;position:relative;box-shadow:10px 0 30px #00000080}.sidebar-brand{align-items:center;gap:14px;margin-bottom:40px;padding:0 4px;display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--amber,#f59e0b) 0%, #ff8c00 100%);color:#030712;width:38px;height:38px;transition:var(--transition-smooth);border-radius:12px;place-items:center;font-size:18px;font-weight:800;display:grid;box-shadow:0 0 20px #f59e0b59}.sidebar-brand:hover .sidebar-logo{transform:rotate(15deg)scale(1.05);box-shadow:0 0 25px #f59e0b80}.sidebar-title{font-family:var(--font-display,"Syne", sans-serif);letter-spacing:-.02em;background:linear-gradient(135deg,#fff 40%,#a1a1aa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:17px;font-weight:750}.sidebar-nav{flex-direction:column;gap:8px;margin-bottom:auto;display:flex}.sidebar-link{color:var(--tx-secondary,#94a3b8);transition:var(--transition-smooth);border:1px solid #0000;border-radius:14px;align-items:center;gap:14px;padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar-link:before{content:"";background:linear-gradient(to bottom, var(--amber,#f59e0b), #ff7b00);transform-origin:50%;width:3px;height:100%;transition:var(--transition-smooth);border-radius:0 4px 4px 0;position:absolute;top:0;left:0;transform:scaleY(0)}.sidebar-link:hover{color:#fff;background:#ffffff08;border-color:#ffffff08;transform:translate(4px)}.sidebar-link.active{color:#fff;background:#f59e0b14;border-color:#f59e0b26;box-shadow:inset 0 0 12px #f59e0b08}.sidebar-link.active:before{transform:scaleY(1)}.sidebar-link.active .sidebar-icon{filter:drop-shadow(0 0 8px var(--amber));transform:scale(1.1)}.sidebar-icon{transition:var(--transition-smooth);font-size:18px}.sidebar-footer{border-top:1px solid #ffffff0a;margin-top:auto;padding-top:24px}.sidebar-logout{color:#f87171;cursor:pointer;width:100%;transition:var(--transition-smooth);background:#ef44440a;border:1px solid #ef44441f;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:13px 18px;font-size:13px;font-weight:700;display:flex}.sidebar-logout:hover{color:#ff8787;background:#ef44441f;border-color:#ef444440;transform:translateY(-2px);box-shadow:0 6px 15px #ef444426}.sidebar-logout:active{transform:translateY(0)}.app-shell{z-index:5;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.app-main{background:0 0;flex:1;padding:0;position:relative;overflow-y:auto}.app-main::-webkit-scrollbar{width:6px}.app-main::-webkit-scrollbar-track{background:0 0}.app-main::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:20px}.app-main::-webkit-scrollbar-thumb:hover{background:#ffffff26}.app-footer{-webkit-backdrop-filter:blur(12px);z-index:10;background:#060a12d9;border-top:1px solid #ffffff08;padding:16px 40px}.footer-content{color:var(--tx-muted,#475569);letter-spacing:.02em;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;display:flex}.footer-content span{transition:var(--transition-smooth)}.footer-content span:hover{color:var(--tx-secondary,#94a3b8)}.premium-modal-overlay{backdrop-filter:blur(12px);z-index:9999;background:#030712d9;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.premium-modal-content{background:var(--sidebar-bg);-webkit-backdrop-filter:blur(24px);width:100%;max-width:420px;color:var(--tx-primary,#f1f5f9);border:1px solid #ffffff14;border-radius:16px;padding:32px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;box-shadow:0 25px 50px -12px #00000080}.premium-modal-title{color:#fff;letter-spacing:-.01em;margin-top:0;margin-bottom:24px;font-size:1.5rem;font-weight:700}.premium-input-group{margin-bottom:20px}.premium-label{color:var(--tx-secondary,#94a3b8);margin-bottom:8px;font-size:.875rem;font-weight:500;display:block}.premium-input{color:#fff;background:#0003;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:12px 16px;font-size:.95rem;transition:all .2s}.premium-input:focus{background:#0000004d;border-color:#f59e0b80;outline:none;box-shadow:0 0 0 3px #f59e0b1a}.premium-modal-actions{justify-content:flex-end;gap:12px;margin-top:32px;display:flex}.premium-btn-cancel{color:var(--tx-secondary,#94a3b8);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:10px;padding:10px 18px;font-weight:600;transition:all .2s}.premium-btn-cancel:hover{color:#fff;background:#ffffff0d}.premium-btn-submit{background:linear-gradient(135deg, var(--amber,#f59e0b) 0%, #ff8c00 100%);color:#030712;cursor:pointer;border:none;border-radius:10px;padding:10px 20px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px #f59e0b40}.premium-btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #f59e0b59}.premium-btn-submit:disabled{opacity:.5;cursor:not-allowed;color:#ffffff4d;box-shadow:none;background:#ffffff1a}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}
