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