.help-overlay{position:fixed;inset:0;background:var(--backdrop);z-index:9999;display:flex;align-items:center;justify-content:center;animation:help-fade-in .2s ease-out}.help-dialog{background:var(--surface-raised);border-radius:8px;box-shadow:var(--shadow-lg);width:1320px;max-width:95vw;height:92vh;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;animation:help-slide-up .25s ease-out;font-family:SF Pro Display,Segoe UI Variable,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}.help-header{background:var(--brand);color:#fff;padding:10px 16px;display:flex;align-items:center;justify-content:space-between}.help-header h2{margin:0;font-size:13px;font-weight:600;color:#fff}.help-close{background:none;border:none;font-size:18px;cursor:pointer;color:#fff9;padding:0 2px;line-height:1}.help-close:hover{color:#fff}.help-content{display:flex;flex:1;min-height:0;overflow:hidden}.help-sidebar{width:232px;min-width:232px;background:var(--surface-hover);border-right:1px solid var(--border);overflow-y:auto;padding:8px 0;display:flex;flex-direction:column}.help-group{display:flex;flex-direction:column}.help-group+.help-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.help-group-label{padding:6px 14px 4px;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);opacity:.75}.help-topic{background:none;border:none;text-align:left;padding:8px 14px;font-size:11.5px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .15s;border-left:3px solid transparent;line-height:1.3}.help-topic:hover:not(.active){background:var(--surface-sunken);color:var(--text)}.help-topic.active{background:var(--accent-bg);color:var(--accent-strong);border-left-color:var(--accent-strong);font-weight:600}.help-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}.help-stage{background:var(--surface-sunken);border:1px solid var(--border);border-radius:6px;margin:12px auto 0;position:relative;overflow:hidden;width:calc(100% - 32px);flex:0 1 auto;max-height:72vh;min-height:0;display:flex;align-items:center;justify-content:center;padding:10px}.help-shot-zoom{display:flex;max-width:100%;max-height:100%;padding:0;border:none;background:none;cursor:zoom-in}.help-shot{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;border:1px solid var(--border);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .12));user-select:none}.help-zoom{position:fixed;inset:0;z-index:10000;background:#080c14e0;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:help-fade-in .15s ease-out}.help-zoom img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 12px 40px #00000080}.help-zoom-close{position:absolute;top:14px;right:18px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:#ffffff1f;color:#fff;font-size:20px;line-height:1;cursor:pointer}.help-zoom-close:hover{background:#ffffff3d}.help-body{padding:10px 16px 6px}.help-body-title{font-size:13px;font-weight:600;color:var(--text);margin:0 0 3px}.help-body-desc{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0}@keyframes help-fade-in{0%{opacity:0}to{opacity:1}}@keyframes help-slide-up{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cc-popover{position:absolute;bottom:100%;left:0;margin-bottom:6px;width:280px;background:var(--surface-raised, #fff);border:1px solid var(--border, #ddd);border-radius:var(--radius, 6px);box-shadow:var(--shadow-lg);padding:10px 12px;z-index:100;animation:ccSlideUp .15s ease}@keyframes ccSlideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.cc-mode-tabs{display:flex;gap:2px;margin-bottom:6px}.cc-mode-tab{flex:1;padding:3px 4px;font-size:9px;font-family:inherit;border:1px solid var(--border, #ddd);border-radius:var(--radius, 4px);background:var(--surface, #fff);color:var(--text-muted, #888);cursor:pointer;white-space:nowrap}.cc-mode-tab:hover{background:var(--surface-inset, #f5f5f5)}.cc-mode-active{background:var(--accent, #1e88e5);color:#fff;border-color:var(--accent, #1e88e5)}.cc-mode-active:hover{background:var(--accent, #1e88e5)}.cc-help{font-size:9px;color:var(--text-muted, #999);margin-bottom:8px;line-height:1.3}.cc-field{margin-bottom:6px}.cc-label{display:block;font-size:10px;color:var(--text-muted, #888);margin-bottom:2px}.cc-input-row{display:flex;gap:4px}.cc-input{flex:1;min-width:0;padding:4px 6px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 4px);font-size:12px;font-family:inherit;background:var(--surface, #fff);color:var(--text, #333)}.cc-input:focus{outline:none;border-color:var(--accent, #1e88e5);box-shadow:0 0 0 1px var(--accent, #1e88e5)}.cc-input-full{width:100%}.cc-unit{width:52px;padding:4px 2px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 4px);font-size:11px;font-family:inherit;background:var(--surface, #fff);color:var(--text, #333);cursor:pointer}.cc-ends{width:100%;padding:4px 6px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 4px);font-size:12px;font-family:inherit;background:var(--surface, #fff);color:var(--text, #333);cursor:pointer}.cc-working{margin:8px 0;padding:6px 8px;background:var(--surface-inset, #f5f5f5);border-radius:var(--radius, 4px);font-size:10px;font-family:monospace;text-align:center;color:var(--text, #333);white-space:pre-line;line-height:1.5}.cc-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}.cc-btn{padding:4px 10px;border-radius:var(--radius, 4px);font-size:11px;font-family:inherit;cursor:pointer;border:1px solid var(--border, #ddd)}.cc-btn-cancel{background:var(--surface, #fff);color:var(--text-muted, #888)}.cc-btn-cancel:hover{background:var(--surface-inset, #f5f5f5)}.cc-btn-confirm{background:var(--accent, #1e88e5);color:#fff;border-color:var(--accent, #1e88e5)}.cc-btn-confirm:hover:not(:disabled){opacity:.9}.cc-btn-confirm:disabled{opacity:.4;cursor:not-allowed}.library-picker-overlay{z-index:1000}.library-picker-modal{width:640px;max-width:calc(100vw - 48px);height:520px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.library-picker-header{display:flex;align-items:center;justify-content:space-between}.library-picker-close{border:none;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;font-size:14px;line-height:1;padding:4px 6px;border-radius:3px}.library-picker-close:hover{background:var(--surface-sunken)}.library-picker-body{flex:1 1 auto;min-height:0;padding:0;display:flex;flex-direction:column}.library-picker-body .colview{flex:1 1 auto;min-height:0}.library-picker-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;color:var(--text-secondary, #64748b);font-size:12px;text-align:center}.library-picker-modal .colview{display:flex;flex-direction:column;height:100%;min-height:0;user-select:none;padding:4px;gap:4px;background:var(--surface-sunken)}.library-picker-modal .colview-pane{flex:0 0 auto;max-height:140px;min-height:44px;overflow-y:auto;padding:0;border:1px solid var(--border-strong);border-radius:3px;background:var(--surface)}.library-picker-modal .colview-pane-active{flex:1 1 auto;max-height:none}.library-picker-modal .colview-pane::-webkit-scrollbar{width:6px}.library-picker-modal .colview-pane::-webkit-scrollbar-track{background:transparent}.library-picker-modal .colview-pane::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.library-picker-modal .colview-pane::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.library-picker-modal .colview-pane-empty{padding:4px 10px;color:var(--text-secondary, #64748b);font-size:10px;font-style:italic}.library-picker-modal .colview-row{display:flex;align-items:center;padding:2px 6px;cursor:pointer;white-space:nowrap;border-left:2px solid transparent;min-height:20px}.library-picker-modal .colview-row:hover{background:var(--surface-hover)}.library-picker-modal .colview-row.selected{background:var(--warning-bg);border-left-color:var(--warning)}.library-picker-modal .colview-row-label{flex:1;overflow:hidden;text-overflow:ellipsis;padding:0 4px;font-size:12px;line-height:1.3}.library-picker-modal .colview-row-unit{flex-shrink:0;font-size:10px;font-weight:700;line-height:1;padding:2px 5px;border-radius:6px;background:var(--success-bg);color:var(--success);letter-spacing:.01em;margin-left:4px}.dp-desc-library-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:4px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-secondary, #64748b);cursor:pointer;font-size:14px;line-height:1;padding:0;transition:background .12s,border-color .12s,color .12s}.dp-desc-library-btn:hover{background:var(--accent-bg);border-color:var(--border);color:var(--accent, #3b82f6)}.dp-desc-wrap{display:flex;align-items:center;gap:0}.dp-desc-wrap>.dp-desc-input{flex:1 1 auto;min-width:0}.dp-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface);border-left:1px solid var(--border)}.dp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--brand);color:#fff;flex-shrink:0}.dp-header-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.dp-header-close{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:#ffffff26;color:#fff;font-size:11px;border-radius:3px;cursor:pointer;transition:background var(--transition)}.dp-header-close:hover{background:#ffffff4d}.dp-body{display:flex;flex-direction:column;padding:8px;gap:6px;overflow:hidden;flex:1;min-height:0;background:var(--surface)}.dp-body::-webkit-scrollbar{width:5px}.dp-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.dp-section{flex-shrink:0}.dp-desc-input{width:100%;padding:5px 8px;font-size:11px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.dp-desc-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f626}.dp-desc-wrap{position:relative}.dp-desc-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;max-height:180px;overflow-y:auto;background:var(--surface-raised);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow)}.dp-desc-option{display:flex;align-items:center;padding:4px 8px;font-size:11px;cursor:pointer}.dp-desc-option:hover{background:var(--accent-bg)}.dp-desc-option-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-desc-option-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:0 2px;line-height:1;flex-shrink:0}.dp-desc-option-del:hover{color:var(--danger)}.dp-desc-clear{display:flex;align-items:center;gap:6px;padding:4px 8px;border-top:1px solid var(--border);font-size:10px;color:var(--text-secondary)}.dp-desc-clear-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:10px;padding:0}.dp-desc-clear-btn:hover{color:var(--danger)}.dp-desc-clear-yes{background:var(--danger);color:#fff;border:none;border-radius:3px;padding:1px 6px;font-size:10px;cursor:pointer}.dp-desc-clear-no{background:none;border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:10px;cursor:pointer}.dp-grid-header{display:flex;align-items:center;gap:2px;padding:3px 2px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);border-bottom:2px solid var(--border);flex-shrink:0}.dp-grid-header .dp-col-dim{text-align:center}.dp-col-t{width:42px;flex-shrink:0}.dp-col-dim{flex:1;min-width:36px}.dp-col-total{width:52px;flex-shrink:0;text-align:right}.dp-col-del{width:20px;flex-shrink:0}.dp-col-name{flex:1;min-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-secondary)}.dp-grid-rows{flex:1;min-height:60px;overflow-y:auto}.dp-grid-rows::-webkit-scrollbar{width:4px}.dp-grid-rows::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.dp-grid-row{display:flex;align-items:center;gap:2px;padding:1px 2px;border-bottom:1px solid var(--border-light);transition:background var(--transition)}.dp-grid-row:hover{background:var(--surface-hover)}.dp-grid-input{width:100%;padding:3px 4px;font-size:11px;font-family:var(--mono);border:1px solid transparent;border-radius:2px;outline:none;background:transparent;transition:border-color var(--transition),background var(--transition)}.dp-grid-input:hover{border-color:var(--border);background:var(--surface)}.dp-grid-input:focus{border-color:var(--accent-strong);background:var(--surface);box-shadow:0 0 0 2px #2563eb38}.dp-grid-input::placeholder{color:var(--text-faint);font-family:var(--font);font-size:10px}.dp-grid-input-dim{text-align:center}.dp-col-link{width:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.dp-source-dot{width:7px;height:7px;border-radius:50%;background:var(--success);cursor:pointer;flex-shrink:0;opacity:.8;transition:opacity var(--transition),transform var(--transition)}.dp-source-dot:hover{opacity:1;transform:scale(1.3)}.dp-source-dot-broken{background:transparent;border:1.5px dashed var(--warning);width:8px;height:8px;cursor:help}.dp-source-dot-broken:hover{transform:none}.dp-row-linked-highlight{background:var(--surface-selected)!important}.dp-total-value{font-size:11px;font-family:var(--mono);color:var(--text);display:block;text-align:right;padding-right:2px}.dp-negative{color:var(--danger)!important}.dp-row-delete{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);font-size:10px;border-radius:2px;cursor:pointer;transition:color var(--transition),background var(--transition)}.dp-row-delete:hover{color:var(--danger);background:var(--danger-bg)}.dp-add-row{padding:3px 8px;font-size:10px;font-family:var(--font);color:var(--accent);background:transparent;border:1px dashed rgba(59,130,246,.25);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition);align-self:flex-start;flex-shrink:0}.dp-add-row:hover{background:var(--accent-bg);border-color:var(--accent)}.dp-item-total{display:flex;align-items:baseline;gap:6px;padding-top:6px;border-top:2px solid var(--border);flex-shrink:0}.dp-roundup{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--text-secondary);cursor:pointer;user-select:none}.dp-btn-centres{background:none;border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:10px;cursor:pointer;color:var(--text-secondary);margin-right:auto}.dp-btn-centres:hover{background:var(--surface-inset);color:var(--text)}.dp-roundup input{margin:0;cursor:pointer}.dp-selection-count{font-size:10px;color:var(--accent);font-weight:500;white-space:nowrap}.dp-total-label{font-size:11px;font-weight:600;color:var(--text-secondary)}.dp-total-big{font-size:14px;font-weight:700;font-family:var(--mono);color:var(--accent)}.dp-unit-select{margin-left:4px;padding:1px 2px;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text-secondary);cursor:pointer;outline:none}.dp-unit-select:focus{border-color:var(--accent)}.dp-actions{display:flex;gap:4px;flex-shrink:0}.dp-list-btn-wrap{position:relative;display:inline-flex;flex:1}.dp-page-pop-overlay{position:fixed;inset:0;z-index:40}.dp-page-pop{position:fixed;z-index:50;width:220px;max-width:80vw;padding:12px;background:var(--surface-raised);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:10px}.dp-page-pop-title{font-size:12px;font-weight:700;color:var(--text)}.dp-page-pop-row{display:flex;align-items:center;gap:8px;font-size:12px}.dp-page-pop-label{color:var(--text-secondary);flex-shrink:0}.dp-page-pop-select{flex:1;min-width:0;padding:5px 6px;font-size:12px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.dp-page-pop-actions{display:flex;gap:6px;justify-content:flex-end}.dp-page-pop-actions .dp-btn{flex:0 0 auto;padding:5px 12px}.dp-btn{flex:1;padding:5px 8px;font-size:11px;font-weight:500;font-family:var(--font);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition);border:1px solid var(--border)}.dp-btn:disabled{opacity:.4;cursor:default}.dp-btn-save{background:var(--accent);color:#fff;border-color:var(--accent)}.dp-btn-save:hover:not(:disabled){background:var(--accent-light)}.dp-btn-queue{background:var(--surface);color:var(--text)}.dp-btn-queue:hover:not(:disabled){background:var(--surface-hover)}.dp-target{display:flex;align-items:center;gap:6px;padding:4px 6px;background:var(--surface-inset);border-radius:var(--radius-sm);font-size:10px;flex-shrink:0}.dp-target-label{color:var(--text-muted);font-weight:600}.dp-target-cell{color:var(--text);font-family:var(--mono);font-size:10px}.dp-queue{border-top:1px solid var(--border);padding-top:6px;flex-shrink:0}.dp-queue-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);margin-bottom:4px}.dp-queue-list{display:flex;flex-direction:column;gap:2px;max-height:120px;overflow-y:auto}.dp-queue-list::-webkit-scrollbar{width:4px}.dp-queue-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.dp-queue-item{display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--surface-raised);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:11px}.dp-queue-desc{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.dp-queue-val{font-family:var(--mono);font-weight:600;color:var(--accent);flex-shrink:0}.dp-queue-remove{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);font-size:10px;border-radius:2px;cursor:pointer;flex-shrink:0}.dp-queue-remove:hover{color:var(--danger);background:var(--danger-bg)}.dp-btn-insert-all{width:100%;margin-top:4px;background:var(--accent);color:#fff;border-color:var(--accent);text-align:center}.dp-btn-insert-all:hover:not(:disabled){background:var(--accent-light)}.dp-btn-add-list{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.dp-btn-add-list:hover:not(:disabled){background:var(--success-border);border-color:var(--success)}.dp-cell-selected{background:var(--surface-selected);border-left:3px solid var(--accent-strong)}.dp-cell-selected .dp-grid-input{background:var(--accent-bg);border-color:var(--accent-light);box-shadow:inset 0 0 0 1px #2563eb40}.dp-col-clickable{cursor:pointer;user-select:none;border-radius:2px;transition:color var(--transition),background var(--transition)}.dp-col-clickable:hover{color:var(--accent-strong);background:var(--accent-bg-hover)}.dp-col-selected{color:var(--accent-strong);background:var(--accent-bg-hover);font-weight:700}.dp-resize-handle{width:5px;background:var(--border);cursor:ew-resize;flex-shrink:0}.dp-resize-handle:hover{background:var(--accent)}.dp-cell-ctx-menu{position:fixed;z-index:3000;min-width:150px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.dp-cell-ctx-item{display:block;width:100%;padding:7px 10px;border:0;border-radius:4px;background:transparent;color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer}.dp-cell-ctx-item:hover{background:var(--accent-bg-hover);color:var(--accent-strong)}.dp-fill-pop{position:fixed;z-index:3000;width:210px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.dp-fill-pop-title{font-size:11px;font-weight:700;color:var(--text-secondary);margin-bottom:6px}.dp-fill-pop-row{display:flex;gap:6px}.dp-fill-pop-input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--accent-light);border-radius:4px;font:inherit;font-size:12.5px;outline:none}.dp-fill-pop-apply{padding:6px 12px;border:0;border-radius:4px;background:var(--accent-strong);color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.dp-fill-pop-apply:hover{background:var(--accent)}.tm-backdrop{position:fixed;inset:0;z-index:1500;background:var(--backdrop);display:flex;align-items:center;justify-content:center;padding:24px}.tm-dialog{position:relative;display:flex;flex-direction:column;width:min(1140px,calc(100vw - 48px));height:min(780px,calc(100vh - 48px));min-width:min(640px,calc(100vw - 48px));min-height:min(420px,calc(100vh - 48px));max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);resize:both;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px #0f172a47;overflow:hidden;font-family:var(--font);color:var(--text)}.tm-header{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.tm-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;white-space:nowrap}.tm-search{flex:1;display:flex;align-items:center;gap:6px;max-width:380px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text-muted);transition:border-color var(--transition)}.tm-search:focus-within{border-color:var(--accent);background:var(--surface)}.tm-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font:inherit;font-size:12.5px;color:var(--text)}.tm-search-clear{border:0;background:transparent;color:var(--text-muted);font-size:15px;line-height:1;cursor:pointer;padding:0 2px}.tm-search-clear:hover{color:var(--text)}.tm-close{margin-left:auto;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:20px;line-height:1;cursor:pointer}.tm-close:hover{background:var(--surface-hover);color:var(--text)}.tm-body{flex:1;display:flex;min-height:0}.tm-nav{width:232px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface-hover);padding:8px 6px 6px;min-height:0}.tm-nav-tree{flex:1;overflow-y:auto;min-height:0}.tm-nav-divider{height:1px;background:var(--border);margin:6px 4px;flex-shrink:0}.tm-folder{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:var(--radius-sm);font-size:12.5px;cursor:pointer;user-select:none;color:var(--text)}.tm-folder:hover{background:#94a3b829}.tm-folder.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.tm-folder.drop-target{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-bg)}.tm-folder-chevron{width:12px;flex-shrink:0;font-size:9px;color:var(--text-muted);transition:transform var(--transition);text-align:center}.tm-folder-chevron.open{transform:rotate(90deg)}.tm-folder-chevron.hidden{visibility:hidden}.tm-folder-icon{flex-shrink:0;color:var(--text-muted)}.tm-folder.active .tm-folder-icon{color:var(--accent)}.tm-folder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-folder-count{flex-shrink:0;font-size:10.5px;color:var(--text-muted);background:#94a3b82e;border-radius:9px;padding:1px 6px;min-width:20px;text-align:center}.tm-folder.active .tm-folder-count{color:var(--accent);background:#3b82f624}.tm-folder-actions{display:none;align-items:center;gap:1px;flex-shrink:0}.tm-folder:hover .tm-folder-actions{display:flex}.tm-folder:hover .tm-folder-count{display:none}.tm-folder-all{font-weight:600}.tm-folder-add{cursor:default}.tm-nav-empty{padding:10px 8px;font-size:11.5px;color:var(--text-muted)}.tm-new-folder-btn{flex-shrink:0;margin-top:6px;padding:7px 8px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:border-color var(--transition),color var(--transition)}.tm-new-folder-btn:hover{border-color:var(--accent);color:var(--accent)}.tm-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.tm-toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border-light);min-height:46px;flex-shrink:0}.tm-current-folder{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-selected-count{font-size:12.5px;font-weight:700;color:var(--accent);white-space:nowrap}.tm-type-chips{display:flex;align-items:center;gap:4px;margin-left:auto}.tm-chip{display:flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.tm-chip:hover{border-color:var(--accent);color:var(--accent)}.tm-chip.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.tm-toolbar-btn{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition)}.tm-toolbar-btn:hover{border-color:var(--accent);color:var(--accent)}.tm-toolbar-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.tm-toolbar-btn.primary:hover{background:var(--accent-light)}.tm-toolbar-btn.danger{color:var(--danger)}.tm-toolbar-btn.danger:hover{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.tm-toolbar-btn.subtle{border-color:transparent;color:var(--text-secondary)}.tm-toolbar-btn.subtle:hover{color:var(--text);background:var(--surface-hover)}.tm-list-head,.tm-row{display:grid;grid-template-columns:34px 24px minmax(160px,1fr) 104px 128px;align-items:center;padding:0 14px 0 8px}.tm-list-head.with-path,.tm-row.with-path{grid-template-columns:34px 24px minmax(140px,1fr) 104px minmax(110px,200px) 128px}.tm-list-head{flex-shrink:0;height:30px;border-bottom:1px solid var(--border-light);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}.tm-list{flex:1;overflow-y:auto;min-height:0;padding-bottom:8px}.tm-row{height:36px;border-bottom:1px solid var(--border-light);cursor:default;position:relative;user-select:none}.tm-row:hover{background:var(--surface-hover)}.tm-row.selected{background:var(--surface-selected)}.tm-row.dragging{opacity:.45}.tm-row.drop-above:before,.tm-row.drop-below:after{content:"";position:absolute;left:8px;right:8px;height:2px;background:var(--accent);border-radius:1px;z-index:1}.tm-row.drop-above:before{top:-1px}.tm-row.drop-below:after{bottom:-1px}.tm-cell-check{display:flex;align-items:center;justify-content:center}.tm-cell-check input{cursor:pointer;accent-color:var(--accent)}.tm-cell-swatch{display:flex;align-items:center}.tm-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(15,23,42,.18);flex-shrink:0}.tm-cell-name{min-width:0;display:flex;align-items:center;padding-right:10px}.tm-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500}.tm-search-hit{background:#3b82f638;color:inherit;border-radius:2px;padding:0 1px}.tm-cell-type{min-width:0}.tm-type-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--text-secondary);background:#94a3b824;border-radius:4px;padding:2px 7px;white-space:nowrap}.tm-cell-path{min-width:0;overflow:hidden;padding-right:8px}.tm-path-link{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;padding:0;font:inherit;font-size:11.5px;color:var(--text-secondary);cursor:pointer;text-align:left}.tm-path-link:hover{color:var(--accent);text-decoration:underline}.tm-path-root{font-size:11.5px;color:var(--text-muted)}.tm-cell-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;visibility:hidden}.tm-row:hover .tm-cell-actions,.tm-row.selected .tm-cell-actions{visibility:visible}.tm-icon-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition);flex-shrink:0}.tm-icon-btn:hover{background:#94a3b833;color:var(--text)}.tm-icon-btn.danger:hover{background:var(--danger-bg);color:var(--danger)}.tm-folder-actions .tm-icon-btn{width:20px;height:20px}.tm-rename-input{width:100%;min-width:0;padding:3px 6px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:12.5px;color:var(--text);outline:none}.tm-empty{padding:40px 24px;text-align:center;font-size:12.5px;color:var(--text-muted)}.tm-footer{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--border);background:var(--surface-hover);font-size:11.5px;color:var(--text-secondary);min-height:44px}.tm-footer-stats{font-weight:600;white-space:nowrap}.tm-footer-hint{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.tm-footer>.tm-toolbar-btn{margin-left:auto}.tm-confirm{flex:1;display:flex;align-items:center;gap:10px}.tm-confirm-text{flex:1;font-size:12px;font-weight:600;color:var(--danger)}.tm-picker-backdrop{position:absolute;inset:0;z-index:10;background:var(--backdrop);display:flex;align-items:flex-start;justify-content:center;padding-top:80px}.tm-picker{width:min(340px,calc(100% - 32px));max-height:min(420px,calc(100% - 110px));overflow-y:auto;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 18px 45px #0f172a38}.tm-picker-title{padding:4px 6px 8px;font-size:12px;font-weight:700;color:var(--text)}.tm-picker-target{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-size:12px;text-align:left}.tm-picker-target:hover{background:var(--surface-hover)}.tm-picker-name{font-weight:600}.tm-picker-path{font-size:10.5px;color:var(--text-muted)}.tm-picker-empty{padding:10px 8px;font-size:11.5px;color:var(--text-muted)}@media(max-width:760px){.tm-nav{width:180px}.tm-list-head,.tm-row{grid-template-columns:30px 22px minmax(120px,1fr) 90px 104px}.tm-list-head.with-path,.tm-row.with-path{grid-template-columns:30px 22px minmax(110px,1fr) 90px minmax(80px,130px) 104px}.tm-footer-hint{display:none}}.tm-toolbar-btn:disabled{opacity:.45;cursor:default;pointer-events:none}.tm-toolbar-sep{width:1px;align-self:stretch;margin:6px 2px;background:var(--border-light)}.tm-io-status{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.tm-io-status.ok{color:var(--success)}.tm-io-status.error{color:var(--danger)}.tm-file-drop-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:none;background:var(--accent-bg);border:2px dashed var(--accent);border-radius:var(--radius)}.tm-file-drop-overlay span{padding:10px 18px;background:var(--surface);border:1px solid var(--accent);border-radius:999px;font-size:13px;font-weight:700;color:var(--accent);box-shadow:var(--shadow-lg)}.slv-overlay{position:fixed;inset:0;z-index:3000;background:var(--backdrop);display:flex;align-items:center;justify-content:center}.slv-dialog{width:min(440px,calc(100vw - 48px));background:var(--surface-raised);border-radius:10px;box-shadow:0 24px 60px #0f172a47;padding:18px 20px;font-family:-apple-system,Segoe UI,sans-serif;color:var(--text)}.slv-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;margin-bottom:10px}.slv-dot{width:10px;height:10px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.slv-dot.live{background:var(--danger);animation:slv-pulse 1.6s ease-in-out infinite}@keyframes slv-pulse{0%,to{box-shadow:0 0 #e5393566}50%{box-shadow:0 0 0 6px #e5393500}}.slv-text{font-size:13px;line-height:1.5;margin:0 0 12px;color:var(--text)}.slv-error{color:var(--danger)}.slv-hint{font-size:11px;color:var(--text-secondary);margin:8px 0 12px}.slv-link-row{display:flex;gap:8px;margin-bottom:4px}.slv-link{flex:1;min-width:0;font-size:12px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:6px;color:var(--text);background:var(--surface-hover)}.slv-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.slv-btn{font-size:13px;padding:7px 14px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer}.slv-btn:hover{background:var(--surface-hover)}.slv-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.slv-btn.primary:hover{background:var(--accent-strong)}.slv-btn.danger{background:var(--danger);border-color:var(--danger);color:var(--text-on-accent)}.slv-btn.danger:hover{background:#b91c1c}.pitch-backdrop{position:fixed;z-index:5000;inset:0;display:flex;align-items:center;justify-content:center;background:#0f172a73}.pitch-dialog{--pitch-ink: #1f2937;--pitch-muted: #64748b;--pitch-border: #cbd5e1;--pitch-soft: #e2e8f0;--pitch-accent: #2563eb;display:flex;width:min(460px,calc(100vw - 40px));max-height:calc(100vh - 48px);overflow:hidden;flex-direction:column;border:1px solid #9fb0c5;border-radius:10px;background:#f5f7fa;box-shadow:0 24px 70px #0f172a52;color:var(--pitch-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.pitch-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--pitch-soft);background:#fff}.pitch-header h2{margin:0 0 3px;font-size:15px;font-weight:650}.pitch-header p{margin:0;color:var(--pitch-muted);font-size:11px;line-height:1.45}.pitch-close{flex:0 0 auto;width:26px;height:26px;border:0;border-radius:6px;background:none;color:var(--pitch-muted);font-size:18px;line-height:1;cursor:pointer}.pitch-close:hover{background:#eef2f7;color:var(--pitch-ink)}.pitch-body{display:flex;min-height:0;flex-direction:column;gap:12px;overflow:auto;padding:14px 16px}.pitch-modes{display:inline-flex;align-self:flex-start;padding:2px;border:1px solid var(--pitch-soft);border-radius:7px;background:#eef2f7}.pitch-modes button{padding:6px 13px;border:0;border-radius:5px;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--pitch-muted);cursor:pointer}.pitch-modes button.selected{background:#fff;color:var(--pitch-accent);box-shadow:0 1px 2px #0f172a1f}.pitch-field{display:flex;flex-direction:column;gap:4px}.pitch-field>span{color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.pitch-input-row{display:flex;align-items:center;gap:8px}.pitch-input-row em{flex:0 0 auto;color:var(--pitch-muted);font-size:11px;font-style:normal}.pitch-riserun{align-items:flex-end}.pitch-field input{width:100%;min-width:0;padding:8px 10px;border:1px solid var(--pitch-border);border-radius:6px;background:#fff;font:inherit;font-size:13px;color:var(--pitch-ink);font-variant-numeric:tabular-nums}.pitch-field input:focus{outline:none;border-color:var(--pitch-accent);box-shadow:0 0 0 3px #2563eb1f}.pitch-common{display:flex;flex-wrap:wrap;gap:5px}.pitch-common button{padding:4px 9px;border:1px solid var(--pitch-soft);border-radius:999px;background:#fff;font:inherit;font-size:10.5px;color:var(--pitch-muted);cursor:pointer}.pitch-common button:hover{border-color:#bfdbfe;color:var(--pitch-accent)}.pitch-result{display:flex;align-items:baseline;gap:10px;padding:9px 11px;border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff}.pitch-result strong{font-size:20px;font-weight:700;color:#1e40af;font-variant-numeric:tabular-nums}.pitch-result span{color:#3b82f6;font-size:11px;font-variant-numeric:tabular-nums}.pitch-preview{display:flex;flex-direction:column;gap:5px}.pitch-preview>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:6px 9px;border:1px solid var(--pitch-soft);border-radius:6px;background:#fff}.pitch-preview span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.pitch-preview small{flex:0 0 auto;color:var(--pitch-muted);font-size:10.5px;font-variant-numeric:tabular-nums}.pitch-preview b{color:var(--pitch-ink)}.pitch-warn{margin:0;color:#b45309;font-size:10.5px;line-height:1.5}.pitch-footer{display:flex;align-items:center;gap:8px;padding:11px 16px;border-top:1px solid var(--pitch-soft);background:#fff}.pitch-spacer{flex:1 1 auto}.pitch-btn{padding:8px 14px;border:1px solid var(--pitch-border);border-radius:6px;background:#fff;font:inherit;font-size:11px;font-weight:600;color:#334155;cursor:pointer}.pitch-btn:hover{background:#f8fafc}.pitch-btn-primary{border-color:var(--pitch-accent);background:var(--pitch-accent);color:#fff}.pitch-btn-primary:hover{background:#1d4ed8}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}:root[data-theme=dark]:not([data-pdf-invert=off]) .pdf-tile-layer,:root[data-theme=dark]:not([data-pdf-invert=off]) .pdf-hepr-layer canvas,:root[data-theme=dark]:not([data-pdf-invert=off]) .pdf-loupe-page{filter:invert(.9) hue-rotate(180deg)}.pdf-loupe-box{background:#fff}:root[data-theme=dark]:not([data-pdf-invert=off]) .pdf-loupe-box{background:#1a1a1a}.to-app{display:flex;flex-direction:column;height:100vh;font-family:var(--font);font-size:13px;color:var(--text);background:var(--surface);overflow:hidden}.vo-bar{display:flex;align-items:center;gap:10px;padding:0 12px;height:36px;background:var(--brand);color:#fff;flex-shrink:0;font-size:12px}.vo-badge{background:#334155;border:1px solid #475569;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;letter-spacing:.03em;white-space:nowrap;flex-shrink:0}.vo-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.vo-hint{color:#94a3b8;font-size:11px;white-space:nowrap;flex-shrink:0}.vo-hint.error{color:#fca5a5}.vo-scale-btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:28px;height:28px;padding:0 10px;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:4px;font-size:11px;font-weight:600;font-family:var(--font);cursor:pointer;flex-shrink:0;white-space:nowrap}.vo-scale-btn:hover{background:#ffffff24;border-color:#ffffff3d;color:#fff}.vo-scale-btn.active{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 1px #ffffff26}.vo-scale-readout{color:#e2e8f0;background:#ffffff14}.to-toolbar{display:flex;align-items:center;gap:6px;padding:4px 8px;background:linear-gradient(180deg,var(--surface),var(--surface-hover));flex-shrink:0;border-bottom:1px solid var(--border);box-shadow:0 1px #ffffffe6 inset}.to-btn-group{display:flex;align-items:center;gap:2px;background:linear-gradient(180deg,var(--surface-hover),var(--surface-sunken));border:1px solid rgba(148,163,184,.22);border-radius:12px;padding:2px;box-shadow:0 1px 2px #0f172a0a}.to-tool-rail{border-radius:14px}.to-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:30px;height:30px;padding:0 10px;border:1px solid transparent;background:var(--surface);border-radius:10px;cursor:pointer;color:var(--text);font-size:12px;font-weight:700;font-family:var(--font);transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition);white-space:nowrap;box-shadow:0 1px 1px #0f172a05}.to-toolbar-btn:hover{background:var(--surface-hover);border-color:#3b82f624;color:var(--text);box-shadow:0 4px 10px #0f172a0f}.to-toolbar-btn:active{transform:translateY(.5px);box-shadow:0 2px 5px #0f172a0d}.to-toolbar-btn:disabled{opacity:.38;cursor:default;box-shadow:none}.to-toolbar-btn.active{background:linear-gradient(180deg,var(--accent-light),var(--accent));border-color:#2563eb94;color:#fff;box-shadow:inset 0 1px #ffffff2e,0 8px 18px #3b82f633}.to-toolbar-btn.active:hover{color:#fff;border-color:#2563eb94}.to-3d-toggle{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid rgba(148,163,184,.28);background:var(--surface);color:var(--text);font-size:12px;font-weight:700;font-family:var(--font);border-radius:10px;cursor:pointer;transition:all var(--transition);box-shadow:0 1px 1px #0f172a05}.to-3d-toggle:hover{background:var(--surface-hover);border-color:#3b82f624;color:var(--text);box-shadow:0 4px 10px #0f172a0f}.to-3d-toggle.active{border-color:#3b82f638;background:var(--accent-bg);color:var(--accent);box-shadow:inset 0 0 0 1px #3b82f60f}.to-toolbar-sep{width:1px;height:20px;background:linear-gradient(180deg,transparent,rgba(148,163,184,.55),transparent);margin:0 2px}.to-toolbar-spacer{flex:1}.to-toolbar-zoom,.to-toolbar-page{color:var(--text);font-size:11px;font-weight:500;min-width:44px;text-align:center}.to-page-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:4px;vertical-align:middle}.to-toolbar-scale{color:var(--text);font-size:11px;font-weight:700;padding:0 9px;height:26px;display:inline-flex;align-items:center;background:var(--surface);border:1px solid rgba(148,163,184,.22);border-radius:999px;box-shadow:0 1px 1px #0f172a05}.to-toolbar-optimized{color:var(--success);font-size:11px;font-weight:700;padding:0 9px;height:26px;display:inline-flex;align-items:center;background:#22c55e1f;border:1px solid rgba(34,197,94,.18);border-radius:999px;white-space:nowrap}.to-toolbar-connection{color:var(--text-muted);font-size:11px;font-weight:700;font-family:var(--font);padding:0 10px;height:26px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.22);border-radius:999px;white-space:nowrap;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.to-toolbar-connection:hover{transform:translateY(-1px)}.to-toolbar-connection-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 14%,transparent)}.to-toolbar-connection-online{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.to-toolbar-connection-offline{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.to-toolbar-connection-poor{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.to-toolbar-connection-offline-mode{color:var(--accent-strong);background:var(--accent-bg);border-color:var(--accent-light)}.to-toolbar-connection-manual{color:var(--text-secondary);background:var(--surface-hover);border-color:var(--border-strong)}.to-offline-prompt-note{margin-top:12px;padding:10px 12px;border-radius:8px;color:var(--text-secondary);background:var(--surface-hover);border:1px solid var(--border);font-size:12px;line-height:1.45}.to-connection-restored{position:fixed;top:54px;right:16px;z-index:3600;display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;color:var(--success);background:var(--surface-raised);border:1px solid var(--success-border);box-shadow:var(--shadow);font-size:12px;font-weight:700;pointer-events:none}.to-connection-restored-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.to-toolbar-cloud{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:11px;padding:0 9px;height:26px;background:var(--surface);border:1px solid rgba(148,163,184,.18);border-radius:999px;white-space:nowrap;margin-left:auto}.to-toolbar-cloud svg{opacity:.7}.to-snap-btn.active{background:linear-gradient(180deg,#34d399,#16a34a);border-color:#16a34a85;box-shadow:inset 0 1px #ffffff2e,0 8px 18px #22c55e2e}.to-help-btn{min-width:30px;width:30px;padding:0;border-radius:999px;font-size:13px;font-weight:800}.to-file-dropdown,.to-scale-dropdown{position:relative;display:inline-flex}.to-menu-panel{position:absolute;top:100%;left:0;margin-top:5px;min-width:248px;z-index:120;overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 24px #0f172a1a;backdrop-filter:blur(14px)}.to-scale-menu-panel{min-width:266px}.to-markup-menu-panel{min-width:286px}.to-menu-header{padding:10px 12px 8px;border-bottom:1px solid rgba(148,163,184,.08);background:linear-gradient(180deg,var(--surface-raised),var(--surface-hover))}.to-menu-kicker{color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}.to-menu-title{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.03em}.to-menu-section{padding:4px 0}.to-menu-section+.to-menu-section{border-top:1px solid rgba(148,163,184,.08)}.to-menu-section-label{padding:0 12px 4px;color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.to-menu-item{min-height:30px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;color:var(--text);transition:background var(--transition),color var(--transition)}.to-menu-item:hover{background:var(--accent-bg)}.to-menu-item.active{background:var(--accent-bg-hover);color:var(--accent-strong)}.to-menu-item.status{cursor:default}.to-menu-item.status:hover{background:transparent}.to-menu-item.disabled{opacity:.45;cursor:default}.to-menu-item.disabled:hover{background:transparent}.to-menu-item-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;background:var(--accent-bg);color:var(--accent);font-size:12px;font-weight:800;line-height:1}.to-menu-item-icon.slate{background:var(--surface-sunken);color:var(--text-secondary)}.to-menu-item-icon.green{background:var(--success-bg);color:var(--success)}.to-menu-item-icon.amber{background:var(--warning-bg);color:var(--warning)}.to-menu-item-label{min-width:0}.to-menu-item-meta{font-size:10px;font-weight:700;color:var(--text-muted)}.to-zone-item{grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px}.to-zone-dot{width:8px;height:8px;border-radius:999px;background:#3b82f6;flex-shrink:0}.to-zone-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.to-zone-delete{width:20px;height:20px;border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger);font-size:12px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition),color var(--transition)}.to-zone-delete:hover{background:var(--danger-bg);color:var(--danger)}.to-recent-header{padding:4px 12px 2px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);cursor:default}.to-recent-item{font-size:11.5px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.to-snap-btn{font-size:10.5px!important;padding:0 9px!important;min-width:46px!important}.pdf-viewer-container{position:relative;flex:1;min-height:0;overflow:auto;background:var(--surface-sunken)}.pdf-viewer-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);font-size:16px;background:var(--surface-sunken)}.pdf-viewer-empty small{font-size:12px;color:var(--text-muted)}.pdf-loading-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10}.pdf-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:pdf-spin .7s linear infinite}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;background:var(--backdrop)}.pdf-loading-overlay-compact{align-items:flex-start;background:transparent;padding-top:14px}.pdf-loading-card{background:var(--surface-raised);border-radius:10px;box-shadow:0 8px 30px #00000026;padding:18px 22px;min-width:220px;text-align:center}.pdf-loading-card-compact{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border:1px solid color-mix(in srgb,var(--border) 75%,transparent);border-radius:999px;box-shadow:0 4px 16px #0f172a24;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pdf-spinner-compact{width:16px;height:16px;flex:0 0 16px;border-width:2px;border-top-color:var(--brand, #2563eb)}.pdf-loading-compact-label{color:var(--text);font-size:12px;font-weight:650;line-height:1;white-space:nowrap}.pdf-renderer-fallback{position:absolute;top:14px;left:50%;z-index:30;display:flex;align-items:center;gap:14px;max-width:min(620px,calc(100% - 28px));padding:10px 12px 10px 14px;border:1px solid color-mix(in srgb,var(--warning, #d97706) 55%,var(--border));border-radius:10px;background:var(--surface-raised);box-shadow:0 8px 24px #0f172a2e;transform:translate(-50%)}.pdf-renderer-fallback-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.pdf-renderer-fallback-copy strong{font-size:12.5px}.pdf-renderer-fallback-copy span{color:var(--text-secondary);font-size:11px;line-height:1.35}.pdf-renderer-fallback-actions{display:flex;gap:6px;flex-shrink:0}.pdf-renderer-fallback-actions button{min-height:30px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:600 11.5px var(--font);cursor:pointer}.pdf-renderer-fallback-actions button.primary{border-color:var(--accent);background:var(--accent);color:#fff}@media(max-width:620px){.pdf-renderer-fallback{align-items:stretch;flex-direction:column;gap:8px}}.pdf-loading-stage{font-size:13px;font-weight:600;color:var(--text);margin-bottom:12px}.pdf-progress-row{display:flex;align-items:center;gap:10px}.pdf-progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.pdf-progress-fill{height:100%;background:var(--brand, #2563eb);border-radius:3px;transition:width .25s ease}.pdf-progress-pct{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:32px;text-align:right}.pdf-drop-overlay{position:fixed;inset:0;z-index:9999;background:#1e293b1f;border:3px dashed var(--brand);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;color:var(--text);pointer-events:none}.pdf-no-calibration{position:absolute;bottom:0;left:0;right:0;padding:8px 16px;background:var(--warning-bg);border-top:2px solid var(--warning);color:var(--warning);font-size:12px;font-weight:500;text-align:center;z-index:10;pointer-events:none}.pdf-scale-bar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:5px 14px;background:var(--surface);border-top:1px solid var(--border);z-index:10;pointer-events:none}.pdf-scale-bar-label{font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.pdf-scale-bar-line{flex:0 0 60px;height:0;border-top:2px solid var(--brand);position:relative}.pdf-scale-bar-line:before,.pdf-scale-bar-line:after{content:"";position:absolute;width:2px;height:8px;background:var(--brand);top:-5px}.pdf-scale-bar-line:before{left:0}.pdf-scale-bar-line:after{right:0}.pdf-scale-bar-cloud{display:inline-flex;align-items:center;gap:4px;margin-left:12px;font-size:10px;color:var(--text-muted);white-space:nowrap}.pdf-scale-bar-cloud svg{opacity:.6}.vs-container{flex-shrink:0;border-top:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%);display:flex;flex-direction:column;max-height:35vh;min-height:120px;box-shadow:inset 0 1px #ffffffeb,0 -10px 24px #0f172a0d}.vs-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px 6px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%);border-bottom:1px solid rgba(148,163,184,.14);flex-shrink:0;min-height:38px;box-shadow:inset 0 -1px #ffffffe6}.vs-labels-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 8px;border-radius:10px;border:1px solid var(--accent-bg-hover);background:var(--surface);box-shadow:inset 0 1px #ffffffe6,0 1px 2px #0f172a0a;font-size:10.5px;font-weight:700;color:var(--text-secondary);cursor:pointer;user-select:none;white-space:nowrap;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}.vs-labels-toggle input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.vs-toggle-switch{width:28px;height:16px;display:inline-flex;align-items:center;padding:2px;border-radius:999px;background:linear-gradient(180deg,#cbd5e1f2,#bac6d6eb);box-shadow:inset 0 1px 2px #0f172a1f;transition:background .18s ease,box-shadow .18s ease;flex-shrink:0}.vs-toggle-knob{width:12px;height:12px;display:block;border-radius:50%;background:linear-gradient(180deg,#fffffffa,#f1f5f9f5);box-shadow:0 1px 2px #0f172a38,inset 0 1px #ffffffd9;transform:translate(0);transition:transform .18s ease}.vs-toggle-text{line-height:1}.vs-labels-toggle:hover{background:var(--surface-hover);color:var(--accent-strong);border-color:#60a5fa80;box-shadow:inset 0 1px #fffffff0,0 8px 18px #3b82f614}.vs-labels-toggle input:checked+.vs-toggle-switch{background:linear-gradient(180deg,#6092fffa,#4a7cf3fa);box-shadow:inset 0 1px 2px #1e40af33,0 0 0 1px #60a5fa2e}.vs-labels-toggle input:checked+.vs-toggle-switch .vs-toggle-knob{transform:translate(12px)}.vs-labels-toggle input:checked~.vs-toggle-text{color:var(--accent-strong)}.vs-labels-toggle input:focus-visible+.vs-toggle-switch{box-shadow:inset 0 1px 2px #0f172a1f,0 0 0 3px #60a5fa38}.vs-header-left{display:flex;align-items:center;gap:6px;flex:1;flex-wrap:wrap}.vs-title{font-weight:600;font-size:12px;color:var(--text)}.vs-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.vs-header-dropdown-btn{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:0 8px;font-size:10.5px;font-weight:700;font-family:var(--font);color:var(--text-secondary);background:var(--surface);border:1px solid var(--accent-bg-hover);border-radius:10px;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #0f172a0a;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.vs-header-dropdown-btn:hover{background:var(--surface-hover);color:var(--accent-strong);border-color:#60a5fa7a;box-shadow:inset 0 1px #fffffff0,0 8px 18px #3b82f614}.vs-header-dropdown-btn.active{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa85;box-shadow:inset 0 1px #ffffffeb,0 10px 20px #3b82f61a}.vs-chevron-down{font-size:9px;line-height:1;opacity:.7}.vs-col-menu-wrap{position:relative}.vs-col-menu-dropdown{margin-top:8px;background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 40px #0f172a1f;min-width:150px;z-index:100;padding:6px;overflow-y:auto;backdrop-filter:blur(14px)}.vs-col-menu-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:600;cursor:pointer;user-select:none;white-space:nowrap;color:var(--text);border-radius:10px}.vs-col-menu-item:hover{background:var(--accent-bg)}.vs-col-menu-item input{margin:0;cursor:pointer;accent-color:var(--accent)}.vs-header-dropdown-btn.vs-filter-on{color:var(--accent-strong);background:var(--accent-bg);border-color:#60a5fa99}.vs-page-btn-label{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.vs-page-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:7px 10px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;color:var(--text);background:none;border:none;border-radius:10px;text-align:left}.vs-page-menu-item:hover{background:var(--accent-bg)}.vs-page-menu-active{background:var(--accent-bg-hover);color:var(--accent-strong)}.vs-page-menu-label{overflow:hidden;text-overflow:ellipsis}.vs-page-menu-count{flex-shrink:0;color:var(--text-muted);font-variant-numeric:tabular-nums}.vs-btn{min-height:26px;padding:0 9px;font-size:10.5px;font-weight:700;font-family:var(--font);border:1px solid rgba(148,163,184,.16);border-radius:10px;cursor:pointer;background:var(--surface);color:var(--text-secondary);transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0d}.vs-btn:hover{transform:translateY(-1px);color:var(--text)}.vs-btn:disabled{opacity:.45;cursor:default;transform:none;box-shadow:inset 0 1px #ffffffe6}.vs-btn-export{border-color:var(--success-border);background:var(--success-bg);color:var(--success)}.vs-btn-export:hover{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.vs-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.vs-btn-primary:hover{background:var(--accent-light)}.vs-btn-danger{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg);padding:0 10px}.vs-btn-danger:hover{background:var(--danger-bg);border-color:var(--danger-border)}.vs-btn-add-dim{border-color:#4f7cff33;background:var(--accent-bg);color:var(--accent-strong)}.vs-btn-add-dim:hover{background:var(--accent-bg-hover);border-color:#4f7cff52}.vs-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:12px}.vs-table-wrap{flex:1;overflow-x:auto;overflow-y:hidden;min-height:0;display:flex;flex-direction:column;font-size:12px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%)}.vs-grid-inner{display:flex;flex-direction:column;flex:1;min-height:0;min-width:max-content}.vs-grid-header{display:flex;flex-shrink:0;background:linear-gradient(180deg,var(--surface-hover) 0%,var(--surface-sunken) 100%);border-top:1px solid var(--border-light);border-bottom:1px solid rgba(148,163,184,.28);box-shadow:inset 0 1px #ffffffeb}.vs-grid-th{position:relative;display:flex;align-items:center;justify-content:center;min-height:34px;padding:0 9px;font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);user-select:none;overflow:hidden;cursor:grab;border-right:1px solid rgba(148,163,184,.18)}.vs-grid-th:last-child{border-right:none}.vs-grid-th:active{cursor:grabbing}.vs-grid-th.vs-drag-over{background:var(--accent-bg-hover)}.vs-grid-filter-row{background:var(--surface-sunken);border-bottom:1px solid rgba(148,163,184,.28)}.vs-grid-filter-row .vs-grid-th{padding:3px 5px;cursor:default;min-height:30px;overflow:visible}.vs-filter-input{width:100%;min-width:0;box-sizing:border-box;padding:3px 6px;font-size:11px;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--text);border:1px solid rgba(148,163,184,.5);border-radius:4px;background:var(--surface)}.vs-filter-input:focus{outline:none;border-color:var(--accent-strong);box-shadow:0 0 0 2px #2563eb26}.vs-filter-input::placeholder{color:var(--text-muted)}.vs-th-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vs-resize-grip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:2;background:transparent;border-right:1px solid rgba(148,163,184,.18)}.vs-resize-grip:hover{border-right:2px solid var(--accent)}.vs-resizing{cursor:col-resize!important}.vs-resizing *{cursor:col-resize!important;user-select:none!important}.vs-resizing .vs-resize-grip{border-right:2px solid var(--accent)}.vs-grid-body{flex:1;overflow-x:hidden;overflow-y:auto;min-height:0;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%)}.vs-grid-body::-webkit-scrollbar{width:6px}.vs-grid-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.vs-grid-row{display:flex;transition:background .18s ease,box-shadow .18s ease}.vs-grid-row:hover{background:var(--surface-hover)}.vs-row-selected{background:var(--surface-selected)!important;box-shadow:inset 2px 0 0 var(--accent)}.vs-row-highlighted{background:var(--accent-bg-hover)!important;box-shadow:inset 3px 0 0 var(--accent)}.vs-grid-td{display:flex;align-items:center;min-height:34px;padding:5px 9px;border-bottom:1px solid rgba(148,163,184,.22);border-right:1px solid rgba(148,163,184,.18);overflow:hidden}.vs-grid-td:last-child{border-right:none}.vs-grid-header input[type=checkbox],.vs-grid-td input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent)}.vs-cell-num{color:var(--text-muted);font-size:11px;font-weight:700}.vs-cell-type{display:inline-flex;align-items:center;gap:5px}.vs-type-chip{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-sunken) 100%);box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0d;flex-shrink:0}.vs-type-chip svg{display:block}.vs-type-chip-line{background:linear-gradient(180deg,#eff6fff5,#e1ecfff5)}.vs-type-chip-area{background:linear-gradient(180deg,#f0fdf4f5,#e1f8e9f5)}.vs-type-chip-polyline{background:linear-gradient(180deg,#f5f3fff5,#ebe6fff5)}.vs-type-chip-count{background:linear-gradient(180deg,#fff7edf5,#ffeed6f5)}.vs-cell-value{font-family:var(--mono);font-size:12px;color:var(--text)}.vs-cell-unit{color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.02em}.vs-cell-page{color:var(--text-secondary);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vs-label-input{width:100%;border:1px solid rgba(96,165,250,.22);background:var(--surface);font-family:var(--font);font-size:12px;padding:5px 8px;outline:none;border-radius:10px}.vs-label-input:focus{background:var(--surface);box-shadow:0 0 0 3px #60a5fa29}.vs-label-input::placeholder{color:var(--text-muted);font-style:italic}.vs-label-text{width:100%;font-family:var(--font);font-size:12px;padding:3px 4px;cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.vs-label-text.vs-label-placeholder{color:var(--text-muted);font-style:italic}.vs-resize-handle{height:5px;background:var(--border);cursor:ns-resize;flex-shrink:0}.vs-resize-handle:hover{background:var(--brand-light)}.modal-overlay{position:fixed;inset:0;background:var(--backdrop);display:flex;align-items:center;justify-content:center;z-index:2000}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.modal-header{background:var(--brand);color:#fff;padding:10px 16px;font-weight:600;font-size:13px}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px}.modal-row{display:flex;gap:12px;align-items:end}.modal-field{display:flex;flex-direction:column;gap:4px}.modal-field label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.modal-field input[type=number]{padding:7px 10px;font-size:13px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.modal-field input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626}.pdf-renderer-setting{margin:0 0 16px;padding:11px 12px;border:1px solid var(--border-light);border-radius:8px;background:var(--surface-hover)}.pdf-renderer-options{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:10px;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.pdf-renderer-options button{min-height:30px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);font:600 12px var(--font);cursor:pointer}.pdf-renderer-options button.active{background:var(--accent);color:#fff;box-shadow:0 1px 3px #0f172a2e}.pdf-renderer-options button:disabled{opacity:.42;cursor:not-allowed}.pdf-renderer-unavailable{margin-top:7px;color:var(--text-muted);font-size:10.5px;line-height:1.35}.snap-marker-setting{margin:0 0 14px;padding:10px 11px 9px;border:1px solid var(--border-light);border-radius:8px;background:var(--surface-hover)}.snap-marker-setting-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:7px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.snap-marker-setting-title{color:var(--text);font-size:13px;font-weight:650}.snap-marker-setting-copy{margin-top:2px;color:var(--text-secondary);font-size:10.5px;line-height:1.3}.snap-marker-preview{position:relative;display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.snap-marker-preview-line{position:absolute;background:var(--border-light)}.snap-marker-preview-line.horizontal{top:50%;right:5px;left:5px;height:1px}.snap-marker-preview-line.vertical{top:5px;bottom:5px;left:50%;width:1px}.snap-marker-preview svg{position:relative;z-index:1;background:var(--surface)}.snap-marker-option-row{display:flex;min-height:32px;align-items:center;justify-content:space-between;gap:12px}.snap-marker-option-row+.snap-marker-option-row{margin-top:2px}.snap-marker-option-label{color:var(--text-secondary);font-size:11px;font-weight:600}.snap-marker-colours{display:flex;align-items:center;gap:5px}.snap-marker-colour,.snap-marker-custom{position:relative;display:grid;width:26px;height:26px;margin:0;padding:0;place-items:center;border:1px solid transparent;border-radius:50%;background:transparent;cursor:pointer}.snap-marker-colour>span,.snap-marker-custom>span{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px #0f172a33}.snap-marker-colour.selected,.snap-marker-custom.selected{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px #3b82f61f}.snap-marker-colour:hover,.snap-marker-custom:hover{background:var(--surface)}.snap-marker-colour:focus-visible,.snap-marker-custom:focus-within{outline:2px solid var(--accent);outline-offset:1px}.snap-marker-custom:after{position:absolute;right:1px;bottom:0;display:grid;width:9px;height:9px;place-items:center;border:1px solid var(--surface);border-radius:50%;background:var(--text-secondary);color:var(--surface);content:"+";font-size:8px;font-weight:700;line-height:1}.snap-marker-custom input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.snap-marker-sizes{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.snap-marker-sizes button{min-width:35px;height:25px;margin:0;padding:0 7px;border:0;border-radius:5px;background:transparent;color:var(--text-secondary);font:600 11px var(--font);cursor:pointer}.snap-marker-sizes button:hover{color:var(--text);background:var(--surface-hover)}.snap-marker-sizes button.selected{background:var(--accent);color:#fff;box-shadow:0 1px 2px #0f172a2e}.snap-marker-sizes button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.snap-marker-size-unit{padding:0 6px 0 4px;color:var(--text-muted);font-size:10px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-light);background:var(--surface-hover)}.modal-footer button{padding:6px 20px;font-size:12.5px;font-weight:500;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);color:var(--text)}.modal-footer button:hover{background:var(--surface-hover)}.modal-footer button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-footer button.primary:hover{background:var(--accent-light)}.modal-footer button:disabled{opacity:.4;cursor:default}.offset-checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;padding:2px 0}.offset-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.auto-rename-table{display:flex;flex-direction:column;gap:2px}.auto-rename-row{display:flex;align-items:center;gap:8px;padding:4px 0}.auto-rename-row input[type=checkbox]{flex-shrink:0}.auto-rename-page-num{font-size:12px;color:var(--text-muted);min-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auto-rename-arrow{color:var(--text-muted);font-size:12px;flex-shrink:0}.auto-rename-name-input{flex:1;min-width:0;padding:2px 6px;font-size:12px;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text)}.auto-rename-name-input:disabled{opacity:.4}.ds-auto-rename-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:5px 8px;margin-bottom:4px;font-size:11px;font-weight:600;color:var(--warning);background:#f0c0401a;border:1px solid rgba(240,192,64,.3);border-radius:4px;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.ds-auto-rename-btn:hover{background:#f0c04033;border-color:#f0c04080;color:var(--warning)}.title-block-hint{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:#7c3aed;color:#fff;font-size:13px;font-weight:500;z-index:10}.export-drawing-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto}.export-drawing-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px}.export-drawing-row:hover{background:var(--surface-hover)}.export-drawing-row input[type=checkbox]{accent-color:var(--accent)}.export-drawing-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-drawing-count{color:var(--text-muted);font-size:11px;flex-shrink:0}.export-link-btn{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-size:11px;font-family:var(--font);text-decoration:underline}.export-link-btn:hover{color:var(--accent-light)}.mouse-help-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:700;font-family:var(--font);cursor:pointer;box-shadow:0 2px 6px #0000001f;transition:background var(--transition),box-shadow var(--transition);display:flex;align-items:center;justify-content:center}.mouse-help-btn:hover{background:var(--surface-hover);box-shadow:0 2px 10px #0000002e;color:var(--accent)}.mouse-help-card{position:absolute;bottom:36px;right:0;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px #0000002e;padding:10px;width:280px}.vs-table-wrap::-webkit-scrollbar,.pdf-viewer-container::-webkit-scrollbar{width:6px;height:6px}.vs-table-wrap::-webkit-scrollbar-track,.pdf-viewer-container::-webkit-scrollbar-track{background:transparent}.vs-table-wrap::-webkit-scrollbar-thumb,.pdf-viewer-container::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.to-main{display:flex;flex:1;min-height:0;overflow:hidden}.to-content{display:flex;flex-direction:column;flex:1;position:relative;min-width:0;min-height:0;overflow:hidden}.takeoff-hydrating-overlay{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--surface) 38%,transparent);backdrop-filter:blur(1px);cursor:wait;pointer-events:auto}.takeoff-hydrating-card{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);box-shadow:0 8px 24px #0f172a29;font-size:12px;font-weight:700}.takeoff-hydrating-spinner{width:15px;height:15px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:takeoff-hydrating-spin .7s linear infinite}@keyframes takeoff-hydrating-spin{to{transform:rotate(360deg)}}.to-sidebar-shell{position:relative;flex:0 0 auto;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--surface-hover);border-right:1px solid var(--border);overflow:visible}.to-sidebar-main{flex:1;min-height:0;display:flex;overflow:hidden}.markup-options-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:35;display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:8px 10px;border:1px solid rgba(37,99,235,.18);border-radius:18px;background:var(--surface-raised);box-shadow:0 16px 40px #0f172a29,inset 0 1px #ffffffb3;backdrop-filter:blur(16px)}.markup-options-title{display:flex;align-items:center;gap:8px;min-width:104px;padding-right:2px}.markup-options-dot{width:26px;height:26px;border-radius:999px;box-shadow:inset 0 0 0 2px #ffffffbf,0 5px 12px #0f172a24}.markup-options-dot.highlight{background:#f6d84b}.markup-options-dot.text{background:#111827}.markup-options-dot.bubble{background:#2563eb}.markup-options-dot.arrow{background:#dc2626}.markup-options-kicker{font-size:9px;font-weight:800;color:var(--text-muted);letter-spacing:.11em;line-height:1.1;text-transform:uppercase;white-space:nowrap}.markup-options-name{font-size:13px;font-weight:850;color:var(--text);letter-spacing:-.03em;white-space:nowrap}.markup-options-group{display:flex;align-items:center;gap:9px;min-width:0}.markup-segmented{display:inline-flex;align-items:center;padding:2px;border:1px solid rgba(148,163,184,.28);border-radius:999px;background:var(--surface-sunken)}.markup-segmented button{height:24px;padding:0 9px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:800;font-family:var(--font);cursor:pointer}.markup-segmented button.active{color:#fff;background:var(--accent-strong);box-shadow:0 5px 12px #2563eb3d}.markup-chip-row{display:inline-flex;align-items:center;gap:5px}.markup-color-chip{width:22px;height:22px;border:2px solid rgba(255,255,255,.95);border-radius:999px;padding:0;cursor:pointer;box-shadow:0 0 0 1px #0f172a29,0 3px 8px #0f172a1f}.markup-color-chip.active{box-shadow:0 0 0 2px var(--accent-strong),0 4px 10px #2563eb38}.markup-color-chip.transparent{background:linear-gradient(45deg,#cbd5e1 25%,transparent 25%),linear-gradient(-45deg,#cbd5e1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#cbd5e1 75%),linear-gradient(-45deg,transparent 75%,#cbd5e1 75%);background-color:#fff;background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.markup-options-field{display:inline-flex;align-items:center;gap:5px}.markup-options-field>span,.markup-options-range>span,.markup-options-select>span{color:var(--text-secondary);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.markup-options-range{display:inline-flex;align-items:center;gap:6px}.markup-options-range input{width:96px;accent-color:var(--accent-strong)}.markup-options-range.compact input{width:62px}.markup-options-select{display:inline-flex;align-items:center;gap:6px}.markup-options-select select{height:26px;border:1px solid rgba(148,163,184,.3);border-radius:9px;background:var(--surface);color:var(--text);font:700 11px var(--font);padding:0 7px}@media(max-width:900px){.markup-options-bar{left:8px;right:8px;transform:none;overflow-x:auto}}.ds-sidebar{position:relative;flex:1 1 auto;display:flex;flex-direction:column;background:var(--surface-hover);min-width:0;width:100%;height:100%;overflow:hidden}.ds-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--border)}.ds-tab{flex:1;padding:8px 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;font-family:var(--font);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition)}.ds-tab:hover{color:var(--text)}.ds-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.ds-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.ds-add-btn{margin:8px;padding:6px 12px;font-size:11px;font-weight:500;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.ds-add-btn:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.ds-stitch-btn{margin-top:0}.ds-add-btn:disabled{opacity:.5;cursor:default}.ds-add-btn:disabled:hover{background:transparent;border-color:var(--border);color:var(--text-secondary)}.ds-item-restitch{border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:12px;padding:0 4px;opacity:0;transition:opacity var(--transition),color var(--transition)}.ds-item:hover .ds-item-restitch{opacity:.7}.ds-item-restitch:hover:not(:disabled){opacity:1;color:var(--accent)}.ds-item-restitch:disabled{opacity:.3;cursor:default}.ds-list{display:flex;flex-direction:column}.ds-drawing-row{position:relative}.ds-linked-drawing{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;margin:7px 8px 0;padding:9px;border:1px solid #cbd9e8;border-radius:8px;background:linear-gradient(135deg,#f8fbff,#eef5fd)}.ds-linked-drawing-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:7px;background:#e2edfb;color:#386fae}.ds-linked-drawing-icon svg{width:15px;height:15px}.ds-linked-drawing-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.ds-linked-drawing-copy strong{overflow:hidden;color:var(--text-primary);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ds-linked-drawing-copy small{overflow:hidden;color:var(--text-muted);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.ds-linked-drawing button{padding:4px 7px;border:1px solid #b8cbe0;border-radius:6px;background:#fff;color:#315f96;font:inherit;font-size:9px;font-weight:700;cursor:pointer}.ds-linked-drawing button:hover:not(:disabled){border-color:#75a3d7;background:#f7fbff}.ds-linked-drawing button:disabled{opacity:.5;cursor:default}.ds-drawing-row.drop-above:before,.ds-drawing-row.drop-below:after{content:"";position:absolute;left:8px;right:8px;height:2px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 3px #3b82f61f;z-index:4}.ds-drawing-row.drop-above:before{top:0}.ds-drawing-row.drop-below:after{bottom:0}.ds-item{display:flex;flex-direction:column;padding:8px 10px;cursor:pointer;border-left:3px solid transparent;transition:background var(--transition);position:relative}.ds-item[draggable=true]{cursor:grab}.ds-item.dragging{opacity:.55;cursor:grabbing}.ds-item:hover{background:var(--surface-hover)}.ds-item.active{background:var(--accent-bg);border-left-color:var(--accent)}.ds-item-title-row{display:flex;align-items:center;min-width:0;padding-right:20px}.ds-drawing-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:12px;margin-right:4px;color:var(--text-muted);flex-shrink:0;cursor:grab}.ds-item:hover .ds-drawing-drag-handle,.ds-item.dragging .ds-drawing-drag-handle{color:var(--text-secondary)}.ds-item-name{flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-size:10px;color:var(--text-muted);margin-top:2px;padding-left:16px;padding-right:20px}.ds-item-meta-left{display:inline-flex;align-items:center;gap:5px;min-width:0}.ds-scale-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-weight:600;text-align:right}.ds-scale-label.no-scale,.ds-page-scale.no-scale{color:var(--text-muted);font-weight:500}.ds-page-count-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border:1px solid rgba(96,165,250,.26);border-radius:999px;background:var(--accent-bg);color:var(--accent-strong);font-family:var(--font);font-size:9px;font-weight:700;line-height:1.35;white-space:nowrap}.ds-page-count-badge.clickable{cursor:pointer}.ds-page-count-badge.clickable:hover{background:var(--accent-bg-hover);border-color:#3b82f673}.ds-page-count-caret{display:inline-flex;font-size:7px;transition:transform .16s ease}.ds-page-count-caret.expanded{transform:rotate(90deg)}.ds-item-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-left:4px;vertical-align:middle;flex-shrink:0}.ds-item-close{position:absolute;top:8px;right:6px;width:18px;height:18px;border:none;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition),background var(--transition)}.ds-item:hover .ds-item-close{opacity:1}.ds-item-close:hover{background:#00000014;color:var(--danger)}.ds-page-chevron{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;color:var(--text-muted);flex-shrink:0;transition:transform .2s ease;cursor:pointer;margin-right:2px}.ds-page-chevron.expanded{transform:rotate(90deg)}.ds-page-list{display:flex;flex-direction:column}.ds-page-item{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 28px;font-size:11px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition)}.ds-page-item:hover{background:var(--surface-hover)}.ds-preview-pop{position:fixed;z-index:1000;pointer-events:none;padding:4px;background:var(--surface-raised);border:1px solid var(--border, rgba(0, 0, 0, .15));border-radius:6px;box-shadow:0 6px 20px #00000047}.ds-preview-img{display:block;width:440px;height:auto;max-height:600px;object-fit:contain;border-radius:3px}.ds-preview-loading{width:440px;height:80px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-secondary)}.ds-page-item.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.ds-page-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-page-scale{flex:0 0 auto;margin-left:auto;color:var(--text-muted);font-size:10px;font-weight:600;white-space:nowrap;text-align:right}.ds-resize-handle{position:absolute;top:0;right:-6px;bottom:0;width:12px;cursor:col-resize;z-index:80;background:transparent;touch-action:none}.ds-resize-handle:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;cursor:col-resize}.ds-resize-edge{position:absolute;top:0;left:5px;width:2px;height:100%;background:transparent;pointer-events:none;transition:background var(--transition),box-shadow var(--transition)}.ds-resize-handle:hover .ds-resize-edge{background:#3b82f673;box-shadow:0 0 0 3px #3b82f614}.to-app.sidebar-resizing,.to-app.sidebar-resizing *{cursor:col-resize!important}.to-app.sidebar-resizing .ds-resize-edge{background:#2563ebd1;box-shadow:0 0 0 4px #2563eb1a}.ds-tools-placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;flex:1}.ds-rename-input{font-size:12px;font-weight:500;padding:1px 4px;border:1px solid var(--accent);border-radius:3px;outline:none;width:100%;box-sizing:border-box}.ds-ctx-menu{position:fixed;z-index:9999;background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;padding:4px 0;min-width:120px}.ds-ctx-item{display:block;width:100%;padding:6px 14px;border:none;background:none;font-size:12px;text-align:left;cursor:pointer;color:var(--text)}.ds-ctx-item:hover{background:var(--surface-hover)}.ds-ctx-danger{color:var(--danger)}.ds-ctx-danger:hover{background:var(--danger-bg)}.mc-combo{position:relative}.mc-combo-input-wrap{display:flex;align-items:stretch}.mc-combo-input-wrap input{flex:1;padding:7px 10px;font-size:13px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;min-width:0}.mc-combo-input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626}.mc-combo-toggle{display:flex;align-items:center;justify-content:center;width:28px;border:1px solid var(--border);border-left:none;background:var(--surface-hover);border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;color:var(--text-secondary);font-size:12px}.mc-combo-toggle:hover{background:var(--surface-hover)}.text-scan-overlay{background:#00000026}.text-scan-hint{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--brand-dark, #0f172a);color:#fff;border-radius:var(--radius);font-size:12px;font-weight:500;box-shadow:var(--shadow-lg)}.text-scan-hint button{padding:4px 10px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:11px;border-radius:4px;cursor:pointer}.text-scan-hint button:hover{background:#ffffff1a}.text-scan-rect{border:2px dashed var(--accent);background:#3b82f61a;pointer-events:none}.mc-scan-btn{display:flex;align-items:center;justify-content:center;width:32px;border:1px solid var(--border);border-left:none;background:var(--surface-hover);cursor:pointer;color:var(--accent);transition:background .15s,color .15s}.mc-scan-btn:hover{background:var(--accent-bg, #eff6ff);color:var(--accent)}.mc-scan-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.mc-combo-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:2px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px #0000002e;z-index:100;max-height:160px;overflow-y:auto}.mc-combo-hint{padding:5px 10px 3px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.mc-combo-option{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;font-size:12px}.mc-combo-option:hover{background:var(--surface-hover)}.mc-combo-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.mc-combo-label{font-weight:500}.mc-combo-meta{margin-left:auto;font-size:10px;color:var(--text-muted);white-space:nowrap}.mc-swatches{display:flex;gap:6px;flex-wrap:wrap}.mc-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color var(--transition),transform var(--transition)}.mc-swatch:hover{transform:scale(1.15)}.mc-swatch-active{border-color:var(--text);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.mc-swatch{border:2px solid rgba(0,0,0,.12)}.mc-swatch:hover{border-color:#00000040}.mc-swatch-custom{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--text-muted);border-style:dashed;background:var(--surface)!important}.mc-swatch-custom.mc-swatch-active{border-style:solid;background:unset!important}.mc-opacity-row{display:flex;align-items:center;gap:10px}.mc-opacity-preview{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);flex-shrink:0;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;position:relative}.mc-opacity-preview{background-color:unset}.mc-opacity-slider{flex:1;accent-color:var(--accent);height:4px}.mc-opacity-value{font-size:11px;font-weight:600;color:var(--text-secondary);min-width:32px;text-align:right}.mc-thickness-group{display:flex;gap:6px}.mc-thickness-btn{width:48px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.mc-thickness-btn:hover{background:var(--surface-hover)}.mc-thickness-active{border-color:var(--accent);background:var(--accent-bg)}.mc-thickness-preview{width:32px;border-radius:1px}.mc-thickness-label{font-size:9px;font-weight:600;color:var(--text-muted)}.mc-pattern-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.mc-pattern-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--transition)}.mc-pattern-btn:hover{border-color:var(--accent)}.mc-pattern-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mc-pattern-label{font-size:8px;color:var(--text-muted);line-height:1}.mc-dash-group{display:flex;gap:4px;flex-wrap:wrap}.mc-dash-btn{padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--transition)}.mc-dash-btn:hover{border-color:var(--accent)}.mc-dash-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mc-line-ends{display:flex;flex-direction:column;gap:8px}.mc-line-end-group{display:flex;align-items:center;gap:8px}.mc-line-end-label{font-size:11px;color:var(--text-secondary);min-width:32px}.mc-line-end-options{display:flex;gap:4px}.mc-line-end-btn{width:36px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;color:var(--text);transition:border-color var(--transition),background var(--transition)}.mc-line-end-btn:hover{border-color:var(--accent);background:var(--accent-bg)}.mc-line-end-active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.vs-group-active{background:#4f7cff0d}.vs-grid-row-group{font-weight:600;cursor:pointer;background:var(--surface)}.vs-grid-row-segment{background:var(--surface-hover);font-size:10.5px;cursor:pointer}.vs-grid-row-segment .vs-grid-td{min-height:31px;padding-top:4px;padding-bottom:4px}.vs-grid-row-segment .vs-cell-value{font-size:10.5px}.vs-seg-label{color:var(--text-secondary);font-size:10.5px;font-weight:500}.vs-grid-row-segment .vs-type-chip{width:20px;height:20px;border-radius:6px}.vs-grid-row-segment .vs-action-btn{width:22px;height:22px;border-radius:6px}.vs-dim-dropdown-wrap{position:relative;display:inline-block}.vs-btn-add-dim:disabled{opacity:.4;cursor:default}.vs-caret{margin-left:4px;font-size:9px;opacity:.75}.vs-dim-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);z-index:200;min-width:190px;padding:4px;display:flex;flex-direction:column}.vs-dim-dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;cursor:pointer;color:var(--text);border:none;background:none;border-radius:var(--radius);width:100%;text-align:left;white-space:nowrap;transition:background var(--transition)}.vs-dim-dropdown-item:hover{background:var(--surface-hover)}.vs-dim-dropdown-icon{width:20px;text-align:center;color:var(--accent);font-weight:700;font-size:12px;flex-shrink:0}.vs-dim-dropdown-hint{font-size:10px;color:var(--text-muted, #888);margin-left:auto}.vs-group-count{font-size:10px;color:var(--text-muted);white-space:nowrap;margin-left:6px;font-weight:600}.vs-chevron{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.14);background:var(--surface);cursor:pointer;font-size:10px;color:var(--text-muted);flex-shrink:0;border-radius:6px;padding:0;box-shadow:inset 0 1px #ffffffd9,0 1px 2px #0f172a0a}.vs-chevron:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa47}.vs-eye-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.14);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-sunken) 100%);cursor:pointer;flex-shrink:0;border-radius:7px;padding:0;opacity:.6;color:var(--text-muted);transition:opacity .15s,background .18s ease,border-color .18s ease,color .18s ease;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.vs-grid-row-group:hover .vs-eye-btn{opacity:.85}.vs-eye-btn:hover{opacity:1!important}.vs-eye-btn.vs-eye-active{opacity:1;color:var(--accent-strong);border-color:#60a5fa42;background:linear-gradient(180deg,var(--accent-bg) 0%,var(--accent-bg-hover) 100%)}.vs-group-actions{display:flex;align-items:center;justify-content:center}.vs-menu-trigger{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.14);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-sunken) 100%);border-radius:7px;cursor:pointer;font-size:16px;font-weight:700;line-height:1;color:var(--text-muted);transition:all var(--transition);letter-spacing:1px;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.vs-menu-trigger:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa4d}.vs-menu-trigger.open{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa57}.vs-dropdown-overlay{position:fixed;inset:0;z-index:49}.vs-dropdown{position:fixed;transform:translate(-100%);z-index:50;min-width:150px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:4px;display:flex;flex-direction:column}.vs-dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:500;font-family:var(--font);color:var(--text);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);text-align:left;white-space:nowrap}.vs-dropdown-item:hover{background:var(--surface-hover)}.vs-dropdown-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;font-size:12px;font-weight:700;flex-shrink:0}.vs-dropdown-icon.continue{background:var(--accent-bg);color:var(--accent)}.vs-dropdown-icon.deduct{background:var(--warning-bg);color:var(--warning)}.vs-dropdown-icon.dim{background:var(--accent-bg);color:var(--accent);font-size:11px}.vs-dropdown-icon.fill{background:var(--success-bg);color:var(--success);font-weight:700}.vs-dropdown-icon.lineitem{background:var(--success-bg);color:var(--success);font-size:10px;letter-spacing:-.02em}.vs-dropdown-icon.rename{background:#eef2ff;color:#4f46e5;font-size:10px}.vs-dropdown-icon.delete{background:var(--danger-bg);color:var(--danger)}.vs-segment-context-menu{min-width:210px;transform:none}.vs-dropdown-sep{height:1px;background:var(--border-light);margin:3px 6px}.vs-dropdown-item.danger:hover{background:var(--danger-bg);color:var(--danger)}.vs-dropdown-item-hint{margin-left:auto;font-size:10px;color:var(--text-muted);font-weight:400}.vs-dropdown-item-hint-sub{display:block;font-size:10px;color:var(--text-muted);margin-left:38px;margin-top:-4px;padding-bottom:2px}.segment-promote-dialog{width:min(360px,calc(100vw - 32px))}.segment-promote-input{width:100%;margin-top:8px;text-align:left}.vs-cell-deduction{color:var(--danger)}.vs-ded-badge{display:inline-block;font-size:8px;font-weight:700;color:#fff;background:var(--danger);border-radius:2px;padding:0 3px;margin-right:4px;vertical-align:middle;line-height:14px;letter-spacing:.3px}.vs-cell-wallht{font-family:var(--mono);font-size:11px;color:var(--text-muted);cursor:pointer;padding:1px 4px;border-radius:3px;border:1px dashed transparent}.vs-cell-wallht:hover{border-color:var(--border-strong);background:#0078d40f}.vs-cell-wallht-set{color:var(--text);border-color:var(--border-strong);background:#0078d40a}.vs-wallht-input{width:52px;border:1px solid var(--brand-light);border-radius:3px;background:var(--surface);font-family:var(--mono);font-size:11px;padding:1px 4px;text-align:right;outline:none}.vs-wallht-input:focus{box-shadow:0 0 0 1px var(--brand-light)}.vs-cell-mixed{font-size:10px;color:var(--warning);background:#fbbf241f;border:1px solid rgba(251,191,36,.2);padding:2px 7px;border-radius:999px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.vs-cell-orphan{opacity:.6;text-decoration:line-through;cursor:help}.vs-cell-orphan .vs-ded-badge{background:var(--warning);text-decoration:none}.vs-orphan-flag{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:5px;border-radius:50%;background:#c6282824;border:1px solid rgba(198,40,40,.35);color:#c62828;font-size:9px;font-weight:800;line-height:1;cursor:help;vertical-align:middle}.wall-ht-prompt-overlay{position:fixed;inset:0;background:var(--backdrop);display:flex;align-items:center;justify-content:center;z-index:9999}.wall-ht-prompt{background:var(--surface-raised);border-radius:8px;box-shadow:0 4px 20px #00000040;padding:12px 14px;width:240px}.wall-ht-prompt-title{font-size:13px;font-weight:600;margin-bottom:2px}.wall-ht-prompt-context{font-size:11px;color:var(--text-secondary);margin-bottom:10px}.wall-ht-prompt-row{display:flex;gap:6px;align-items:stretch}.wall-ht-prompt-field-label{font-size:11px;color:var(--text-secondary);font-weight:600;margin:8px 0 3px}.wall-ht-prompt-input:disabled{background:var(--surface-inset);color:var(--text-muted);cursor:not-allowed}.wall-ht-prompt-input{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--border);border-radius:4px;font-size:14px;text-align:right;outline:none}.wall-ht-prompt-input:focus{border-color:var(--brand, #0078d4);box-shadow:0 0 0 2px #0078d426}.wall-ht-unit-toggle{display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.wall-ht-unit-btn{padding:4px 8px;font-size:12px;font-weight:600;border:none;background:var(--surface-inset);color:var(--text-secondary);cursor:pointer;min-width:32px}.wall-ht-unit-btn.active{background:var(--brand, #0078d4);color:#fff}.wall-ht-unit-btn:not(.active):hover{background:var(--surface-hover)}.wall-ht-prompt-preview{font-size:11px;color:var(--text-secondary);margin-top:6px;text-align:right}.wall-ht-prompt-preview strong{color:var(--text)}.wall-ht-prompt-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:10px}.wall-ht-prompt-btn{padding:5px 10px;border-radius:4px;border:none;font-size:12px;cursor:pointer}.wall-ht-prompt-cancel{background:var(--surface-inset);color:var(--text)}.wall-ht-prompt-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border-strong)}.wall-ht-prompt-secondary:hover{background:var(--surface-sunken)}.wall-ht-prompt-clear{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.wall-ht-prompt-clear:hover{background:var(--danger-bg)}.wall-ht-prompt-apply{background:var(--brand, #0078d4);color:#fff}.wall-ht-prompt-apply:hover{opacity:.9}.vs-cell-gross{font-size:10px;color:var(--text-secondary);margin-left:4px;font-weight:400}.vs-session-bar-deduction{background:var(--danger-bg)!important;border-bottom-color:var(--danger-border)!important}.vs-session-bar-deduction .vs-session-done{border-color:var(--danger);color:var(--danger)}.vs-session-bar-deduction .vs-session-done:hover{background:var(--danger-bg)}.vs-grid-td:has(.vs-confirm-actions){overflow:visible;position:relative}.vs-action-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.16);border-radius:7px;background:linear-gradient(180deg,#fffffffa,#f2f6fcfa);color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:15px;font-weight:700;line-height:1;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.vs-action-btn svg{display:block}.vs-action-btn:hover{transform:translateY(-1px)}.vs-action-delete{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.vs-action-delete:hover{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg);box-shadow:inset 0 1px #ffffffeb,0 6px 14px #ef44441f}.vs-confirm-actions{display:flex;align-items:center;gap:6px;position:absolute;right:calc(100% + 10px);top:50%;z-index:18;background:var(--surface-raised);padding:6px 8px;border-radius:12px;box-shadow:0 14px 28px #0f172a1f,0 2px 6px #0f172a0f;border:1px solid rgba(148,163,184,.16);font-size:11px;white-space:nowrap;backdrop-filter:blur(10px);transform:translateY(-50%)}.vs-confirm-actions:before{content:"";position:absolute;top:50%;right:-6px;width:10px;height:10px;background:var(--surface-raised);border-top:1px solid rgba(148,163,184,.16);border-right:1px solid rgba(148,163,184,.16);transform:rotate(45deg);margin-top:-5px}.vs-confirm-actions.vs-confirm-inline{position:static;transform:none;padding:0;background:none;border:none;box-shadow:none;backdrop-filter:none}.vs-confirm-actions.vs-confirm-inline:before{display:none}.vs-confirm-label{color:var(--danger);font-weight:800;letter-spacing:.01em}.vs-confirm-yes,.vs-confirm-no{min-height:28px;padding:0 11px;font-size:11px;font-weight:700;font-family:var(--font);border:1px solid rgba(148,163,184,.16);border-radius:9px;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}.vs-confirm-yes{background:linear-gradient(180deg,#e55353,#cf3d3d);color:#fff;border-color:#cf3d3d}.vs-confirm-yes:hover{transform:translateY(-1px);background:linear-gradient(180deg,#dc4545,#be3030)}.vs-confirm-no{background:var(--surface-hover);color:var(--text-secondary)}.vs-confirm-no:hover{transform:translateY(-1px);background:var(--surface-sunken);border-color:#94a3b847}.vs-session-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--success-bg);border-bottom:1px solid var(--success-border);flex-shrink:0;font-size:12px}.vs-session-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;animation:vs-pulse 1.5s ease-in-out infinite}@keyframes vs-pulse{0%,to{opacity:1}50%{opacity:.5}}.vs-session-info{flex:1;color:var(--text)}.vs-session-done{padding:3px 12px;font-size:11px;font-weight:500;font-family:var(--font);border:1px solid var(--success);border-radius:var(--radius-sm);background:var(--surface);color:var(--success);cursor:pointer;transition:background var(--transition)}.vs-session-done:hover{background:var(--success-bg)}.pdf-opening-pick-hint{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:100;background:#1e293beb;color:#fff;padding:6px 16px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0003}.pdf-opening-pick-hint button{background:#fff3;border:none;color:#fff;padding:2px 10px;border-radius:4px;cursor:pointer;font-size:12px}.pdf-opening-pick-hint button:hover{background:#ffffff4d}.wall-opening-type-row{display:flex;gap:4px;margin-bottom:10px}.wall-opening-type-row .wall-ht-unit-btn{flex:1;padding:5px 0}.wall-opening-field{display:flex;align-items:center;gap:8px;margin-bottom:8px}.wall-opening-field label{font-size:12px;color:var(--text-secondary);min-width:85px;white-space:nowrap}.wall-opening-field .wall-ht-prompt-input{flex:1}.vs-grid-row-opening{background:var(--danger-bg);font-size:11px}.vs-grid-row-opening .vs-grid-td{min-height:32px;padding-top:4px;padding-bottom:4px}.vs-cell-opening-label{padding-left:32px;color:var(--text-secondary);font-size:11px}.pdf-ctx-menu{position:fixed;z-index:3000;width:min(288px,calc(100vw - 16px));overflow:hidden;border-radius:14px;border:1px solid var(--border);background:var(--surface-raised);box-shadow:0 12px 28px #0f172a24;backdrop-filter:blur(10px)}.pdf-ctx-menu-header{padding:10px 12px 8px;border-bottom:1px solid var(--border-light);background:var(--surface-raised)}.pdf-ctx-menu-kicker{margin-bottom:6px;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.pdf-ctx-menu-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.pdf-ctx-menu-title{min-width:0;font-size:12px;font-weight:700;line-height:1.1;letter-spacing:-.01em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-ctx-menu-type-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px;border-radius:999px;background:#2f6cf61a;color:var(--accent-strong);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;flex-shrink:0}.pdf-ctx-menu-subtitle{margin-top:6px;font-size:11px;line-height:1.45;color:var(--text-secondary)}.pdf-ctx-menu-section{padding:4px}.pdf-ctx-menu-section-title{padding:8px 12px 2px;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.pdf-ctx-menu-action{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;width:100%;margin:0;padding:7px 8px;border:none;border-radius:10px;background:transparent;font-family:var(--font);text-align:left;cursor:pointer;color:var(--text);transition:background .14s ease,transform .14s ease,opacity .14s ease}.pdf-ctx-menu-action+.pdf-ctx-menu-action{margin-top:2px}.pdf-ctx-menu-action:hover:not(:disabled){background:#3b82f614;transform:translate(1px)}.pdf-ctx-menu-action-accent:hover:not(:disabled){background:#3b82f61a}.pdf-ctx-menu-action-success:hover:not(:disabled){background:#2e8b571a}.pdf-ctx-menu-action-warning:hover:not(:disabled){background:#a073171a}.pdf-ctx-menu-action-danger:hover:not(:disabled){background:#d03d4614}.pdf-ctx-menu-action:disabled{opacity:.5;cursor:default}.pdf-ctx-menu-action-compact{padding:5px 8px}.pdf-ctx-menu-action-compact .pdf-ctx-menu-name{font-weight:600}.pdf-ctx-menu-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;background:#3b82f61a;color:var(--accent)}.pdf-ctx-menu-icon svg{width:13px;height:13px}.pdf-ctx-menu-icon-accent{background:#3b82f61f;color:var(--accent-strong)}.pdf-ctx-menu-icon-success{background:#2e8b571f;color:var(--success)}.pdf-ctx-menu-icon-warning{background:#a073171f;color:var(--warning)}.pdf-ctx-menu-icon-danger{background:#d03d461f;color:var(--danger)}.pdf-ctx-menu-copy{display:block;min-width:0}.pdf-ctx-menu-name{display:block;font-size:11px;font-weight:700;line-height:1.18;letter-spacing:0;color:var(--text)}.pdf-ctx-menu-help{display:block;margin-top:2px;font-size:11px;line-height:1.35;color:var(--text-secondary)}.pdf-ctx-menu-help:empty{display:none}.pdf-ctx-menu-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:999px;background:#1420330f;color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;flex-shrink:0}.pdf-ctx-menu-action-danger .pdf-ctx-menu-name{color:var(--danger)}.pdf-ctx-menu-sep{height:1px;background:var(--border-light);margin:1px 0}.ds-tool-bar{display:flex;align-items:center;gap:4px;padding:8px;flex-wrap:wrap}.ds-tool-bar .ds-add-btn{margin:0;flex:1;min-width:0}.ds-tool-bar-right{display:flex;gap:2px;flex-shrink:0}.ds-tool-bar-btn{width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition),border-color var(--transition),color var(--transition)}.ds-tool-bar-btn:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.ds-tool-bar-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.ds-tool-bar-btn:disabled{opacity:.4;cursor:default}.ds-tool-manage-btn{width:auto;padding:0 8px;gap:4px;font-size:11px;font-weight:600}.ds-tool-search{display:flex;align-items:center;gap:6px;margin:0 8px 8px;padding:0 8px;min-height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted)}.ds-tool-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #5b83f71f}.ds-tool-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:12px}.ds-tool-search-clear{width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1}.ds-tool-search-clear:hover{background:var(--surface-hover);color:var(--text)}.ds-tool-search-results{padding-bottom:8px}.ds-tool-search-count{padding:0 10px 6px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.35px}.ds-tool-search-result{border-left-width:3px}.ds-tool-path{margin-top:1px;font-size:9px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-tool-search-hit{background:#ffc10759;color:inherit;border-radius:2px;padding:0 1px}.ds-tool-tree{flex:1;overflow-y:auto;padding-bottom:8px}.ds-tool-folder{display:flex;align-items:center;padding:5px 8px;cursor:pointer;gap:2px;transition:background var(--transition)}.ds-tool-folder:hover{background:var(--surface-hover)}.ds-recent-section{border-bottom:1px solid var(--border, rgba(0, 0, 0, .08));margin-bottom:4px;padding-bottom:2px}.ds-recent-header{display:flex;align-items:center;padding:5px 8px;cursor:pointer;gap:4px;transition:background var(--transition)}.ds-recent-header:hover{background:var(--surface-hover)}.ds-recent-chevron{width:14px;display:inline-flex;justify-content:center;font-size:10px;color:var(--text-secondary);flex-shrink:0}.ds-recent-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);flex:1}.ds-recent-clear{border:none;background:none;cursor:pointer;color:var(--text-secondary);font-size:14px;line-height:1;padding:0 4px;opacity:0;transition:opacity var(--transition)}.ds-recent-header:hover .ds-recent-clear{opacity:.7}.ds-recent-clear:hover{opacity:1}.ds-recent-more{border:none;background:none;cursor:pointer;color:var(--accent, #1565c0);font-size:11px;padding:4px 8px 4px 26px;text-align:left;width:100%}.ds-recent-more:hover{text-decoration:underline}.ds-tool-folder-chevron{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;color:var(--text-muted);transition:transform .2s ease}.ds-tool-folder-chevron.expanded{transform:rotate(90deg)}.ds-tool-folder-name{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-tool-folder-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition);flex-shrink:0}.ds-tool-folder:hover .ds-tool-folder-actions{opacity:1}.ds-tool-folder-add{padding:4px 8px}.ds-tool-item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;position:relative;border-left:3px solid transparent;transition:background var(--transition),border-color var(--transition)}.ds-tool-item:hover{background:var(--surface-hover)}.ds-tool-item.active{background:var(--brand);color:#fff;border-left-color:var(--brand)}.ds-tool-item.active .ds-tool-name{color:#fff}.ds-tool-item.active .ds-tool-meta{color:#ffffffb3}.ds-tool-item.active:hover{background:var(--brand-light)}.ds-tool-item.active .ds-tool-action-btn{color:#fff9}.ds-tool-item.active .ds-tool-action-btn:hover{background:#ffffff26;color:#fff}.ds-tool-item.active .ds-tool-action-btn.ds-tool-action-danger:hover{background:#ff646433;color:#ff8a8a}.ds-tool-item.is-new{border-left-color:var(--accent-light)}.ds-tool-dot{width:14px;height:14px;border-radius:3px;flex-shrink:0}.ds-tool-info{flex:1;min-width:0;display:flex;flex-direction:column}.ds-tool-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-tool-meta{font-size:10px;color:var(--text-muted);margin-top:1px;display:flex;align-items:center;gap:3px}.ds-tool-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition);flex-shrink:0}.ds-tool-item:hover .ds-tool-actions,.ds-tool-folder:hover .ds-tool-folder-actions{opacity:1}.ds-tool-item{cursor:grab}.ds-tool-item:active{cursor:grabbing}.ds-tool-folder{cursor:grab}.ds-tool-folder:active{cursor:grabbing}.ds-tool-action-btn{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}.ds-tool-action-btn:hover{background:#0000000f;color:var(--text)}.ds-tool-action-btn.ds-tool-action-danger:hover{background:#c6282814;color:var(--danger)}.ds-tool-ctx-menu .ds-ctx-item:disabled{opacity:.42;cursor:default}.ds-tool-ctx-menu .ds-ctx-item:disabled:hover{background:transparent;color:inherit}.ds-move-picker-backdrop{position:fixed;inset:0;z-index:80;background:var(--backdrop);display:flex;align-items:flex-start;justify-content:center;padding-top:96px}.ds-move-picker{width:min(320px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 140px));overflow:auto;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 18px 45px #0f172a38}.ds-move-picker-title{padding:4px 6px 8px;font-size:12px;font-weight:700;color:var(--text)}.ds-move-target{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-size:12px;text-align:left}.ds-move-target:hover{background:var(--surface-hover)}.ds-move-target:disabled{opacity:.42;cursor:default}.ds-move-target:disabled:hover{background:transparent}.ds-move-target-meta{max-width:100%;color:var(--text-muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ds-tool-drop-above{border-top:2px solid var(--accent)}.ds-tool-drop-below{border-bottom:2px solid var(--accent)}.ds-tool-drop-inside{background:var(--accent-bg)!important}.ds-tool-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--text-muted);font-size:12px;padding:24px 16px;flex:1}.ds-confirm-bar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--warning-bg);border-top:1px solid var(--warning-border);font-size:11px;flex-shrink:0}.ds-confirm-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ds-confirm-yes,.ds-confirm-no{padding:2px 10px;font-size:11px;font-family:var(--font);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);transition:background var(--transition)}.ds-confirm-yes{background:var(--danger);color:#fff;border-color:var(--danger)}.ds-confirm-yes:hover{background:var(--danger)}.ds-confirm-no{background:transparent;color:var(--text-secondary)}.ds-confirm-no:hover{background:var(--surface-hover)}.ds-tool-rename-input{font-size:12px;font-weight:500;padding:2px 6px;border:1px solid var(--accent);border-radius:3px;outline:none;width:100%;box-sizing:border-box;font-family:var(--font)}.mc-type-select{width:100%;padding:6px 8px;font-size:13px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;outline:none;transition:border-color var(--transition)}.mc-type-select:focus{border-color:var(--accent)}.autosave-indicator{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:4px;font-size:11px;color:var(--text-secondary);pointer-events:none;user-select:none}.autosave-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.autosave-dot.saved{background:var(--success)}.autosave-dot.dirty{background:var(--warning)}.autosave-dot.saving{background:var(--accent);animation:pulse-save 1s infinite}@keyframes pulse-save{0%,to{opacity:1}50%{opacity:.3}}.cloud-status-footer{display:flex;align-items:center;gap:5px;padding:4px 10px;font-size:10px;color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;white-space:nowrap}.cloud-status-footer svg{opacity:.6;flex-shrink:0}.account-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 8px;font-size:10px;color:var(--text-secondary);border-top:1px solid var(--border);background:var(--surface-sunken);flex-shrink:0;min-height:28px}.account-footer-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.account-footer-btns{display:flex;align-items:center;gap:4px;flex-shrink:0}.account-footer-btn{padding:2px 6px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap}.account-footer-btn:hover{background:var(--surface-sunken)}.page-nav-bar{display:flex;position:relative;align-items:center;justify-content:space-between;min-height:34px;padding:3px 10px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%);border-top:1px solid rgba(148,163,184,.14);border-bottom:1px solid rgba(148,163,184,.14);box-shadow:inset 0 1px #fffffff0,inset 0 -1px #ffffffdb;font-size:12px;color:var(--text-secondary);flex-shrink:0}.pnb-left,.pnb-centre,.pnb-right{display:flex;align-items:center;gap:8px}.pnb-left{flex:1;min-width:0}.pnb-centre{flex:0 0 auto}.pnb-right{flex:1;justify-content:flex-end;min-width:0}.pnb-divider{width:1px;height:16px;background:#64748b29;margin:0 1px;border-radius:999px;flex-shrink:0}.pnb-scale-bar{font-weight:700;color:var(--text-secondary);font-size:12px;letter-spacing:.01em}.pnb-scale-line{display:inline-block;width:52px;height:2px;border-radius:999px;background:var(--text-secondary);position:relative;vertical-align:middle;margin:0 4px 0 1px}.pnb-scale-line:before,.pnb-scale-line:after{content:"";position:absolute;width:2px;height:10px;border-radius:999px;background:var(--text-secondary);top:-4px}.pnb-scale-line:before{left:0}.pnb-scale-line:after{right:0}.pnb-status{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:11px;font-weight:600}.pnb-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pnb-status-dot.saved{background:var(--success)}.pnb-status-dot.dirty{background:var(--warning)}.pnb-status-dot.saving{background:var(--accent);animation:pulse-save 1s infinite}.pnb-page-controls{display:flex;align-items:center;gap:3px;padding:1px;border-radius:10px;border:1px solid rgba(148,163,184,.14);background:var(--surface);box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.pnb-page-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:var(--surface);font-size:10px;color:var(--text-secondary);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.pnb-page-btn:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa47;transform:translateY(-1px)}.pnb-page-btn:disabled{opacity:.35;cursor:default}.pnb-page-indicator{display:flex;align-items:center;justify-content:center;gap:7px;min-width:78px;height:24px;padding:0 10px;border-radius:8px;border:1px solid rgba(148,163,184,.14);background:var(--surface);font-size:12px;font-weight:700;color:var(--text);box-shadow:inset 0 1px #ffffffeb}.pnb-page-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.pnb-zoom-group{display:flex;align-items:center;gap:3px;background:var(--surface);border:1px solid rgba(148,163,184,.14);border-radius:10px;padding:0 1px;height:26px;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.pnb-zoom-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:var(--surface);padding:0 6px;height:22px;min-width:22px;font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer;font-family:var(--font);transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.pnb-zoom-btn:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa47;transform:translateY(-1px)}.pnb-zoom-val{font-size:12px;font-weight:700;color:var(--text);min-width:46px;text-align:center;user-select:none}.pnb-fit-btn,.pnb-rotate-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:var(--surface);font-size:11px;color:var(--text-secondary);cursor:pointer;font-family:var(--font);transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.pnb-fit-btn:hover,.pnb-rotate-btn:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa47;transform:translateY(-1px)}.pnb-rotate-btn:disabled{opacity:.35;cursor:default}.pnb-pan-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--surface);border:1px solid rgba(148,163,184,.14);border-radius:8px;padding:0;font-size:14px;cursor:pointer;color:var(--text-secondary);box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.pnb-pan-btn:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#60a5fa47;transform:translateY(-1px)}.pnb-pan-btn.active{background:var(--accent-bg);border-color:#4f7cff42;color:var(--accent-strong);box-shadow:inset 0 1px #ffffffeb,0 4px 12px #4f7cff1f}.pnb-copy-text-popover{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:45;transform:translate(-50%);display:flex;align-items:center;gap:7px;width:max-content;max-width:min(680px,calc(100vw - 24px));min-height:38px;padding:6px 7px 6px 10px;border:1px solid rgba(148,163,184,.38);border-radius:9px;background:var(--surface);color:var(--text);box-shadow:0 12px 32px #0f172a33}.pnb-copy-text-label{flex:0 0 auto;color:var(--text-secondary);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.pnb-copy-text-preview{min-width:90px;max-width:270px;overflow:hidden;color:var(--text);font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.pnb-copy-text-status{flex:0 0 auto;color:var(--success);font-size:10px;font-weight:800}.pnb-copy-text-btn,.pnb-copy-text-dismiss{flex:0 0 auto;min-height:26px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);font-family:var(--font);font-size:10.5px;font-weight:750;cursor:pointer}.pnb-copy-text-btn{padding:0 9px}.pnb-copy-text-btn:hover:not(:disabled){background:var(--surface-hover)}.pnb-copy-text-btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.pnb-copy-text-btn.primary:hover:not(:disabled){filter:brightness(.96)}.pnb-copy-text-btn:disabled{opacity:.48;cursor:default}.pnb-copy-text-dismiss{width:26px;padding:0;border-color:transparent;color:var(--text-secondary);font-size:17px;line-height:1}.pnb-copy-text-dismiss:hover{background:var(--surface-hover);color:var(--text)}@media(max-width:760px){.pnb-copy-text-label{display:none}.pnb-copy-text-preview{max-width:160px}.pnb-copy-text-status{display:none}}.pnb-sync{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.pnb-sync svg{opacity:.7}.scale-set-dialog{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:24px 28px;text-align:center;max-width:300px;animation:fp-slide-up .2s ease}.scale-set-icon{margin-bottom:8px}.scale-set-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:4px}.scale-set-sub{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.scale-set-btns{display:flex;gap:8px;justify-content:center}.scale-set-no{padding:7px 16px;font-size:13px;font-weight:500;font-family:var(--font);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.scale-set-no:hover{background:var(--surface-hover)}.scale-set-yes{padding:7px 20px;font-size:13px;font-weight:500;font-family:var(--font);color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer}.scale-set-yes:hover{background:var(--accent-light)}.dim-choice-dialog{width:min(420px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px 24px;animation:fp-slide-up .2s ease}.dim-choice-icon{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;margin-bottom:12px;border-radius:5px;background:var(--accent-bg);color:var(--accent);font-size:12px;font-weight:700}.dim-choice-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:6px}.dim-choice-sub{font-size:13px;line-height:1.45;color:var(--text-secondary);margin-bottom:18px}.dim-choice-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.dim-choice-actions button{padding:7px 14px;font-size:13px;font-weight:600;font-family:var(--font);border-radius:var(--radius-sm);cursor:pointer}.dim-choice-cancel,.dim-choice-replace{color:var(--text);background:var(--surface);border:1px solid var(--border)}.dim-choice-cancel:hover,.dim-choice-replace:hover{background:var(--surface-hover)}.dim-choice-add{color:#fff;background:var(--accent);border:1px solid var(--accent)}.dim-choice-add:hover{background:var(--accent-light)}.magic-split-dialog{width:min(500px,calc(100vw - 32px))}.magic-split-guide{position:relative;display:grid;grid-template-rows:1fr auto 1fr;min-height:148px;margin:14px 0 10px;overflow:hidden;border:1px solid #cbd5e1;border-radius:12px;background:linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px) 0 0 / 26px 26px,linear-gradient(0deg,rgba(148,163,184,.14) 1px,transparent 1px) 0 0 / 26px 26px,#f8fafc}.magic-split-guide-roof{position:absolute;top:10px;left:50%;width:150px;height:72px;transform:translate(-50%);clip-path:polygon(50% 0,100% 44%,100% 100%,0 100%,0 44%);border:1px solid rgba(100,116,139,.5);background:#e2e8f09e}.magic-split-guide-side{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;color:#475569}.magic-split-guide-side.selected{color:#1e3a8a;background:#3b82f62e}.magic-split-guide-stage{max-width:58%;overflow:hidden;font-size:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.magic-split-guide-side-label{padding:4px 8px;border-radius:999px;background:#ffffffd1;border:1px solid rgba(148,163,184,.45);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.magic-split-guide-line{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;height:28px;color:#b91c1c;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.magic-split-guide-line:before{content:"";position:absolute;left:16px;right:16px;top:50%;border-top:3px solid #ef4444;transform:translateY(-50%)}.magic-split-guide-line span{position:relative;padding:3px 8px;border:1px solid rgba(239,68,68,.35);border-radius:999px;background:#fff}.magic-split-help{margin:-2px 0 12px;padding:8px 10px;border:1px solid var(--accent-bg-hover);border-radius:10px;background:var(--accent-bg);color:var(--accent-strong);font-size:12px;line-height:1.35}.magic-split-field{margin-top:10px}.magic-split-label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--text)}.magic-split-side-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.magic-split-side-btn{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer}.magic-split-side-btn.active{color:#fff;background:var(--accent);border-color:var(--accent)}.magic-split-counts{margin-top:12px;font-size:12px;line-height:1.4;color:var(--text-secondary)}.modal-field input[type=text]{padding:7px 10px;font-size:13px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition)}.modal-field input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626}.sz-preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.sz-preset-btn{padding:6px 4px;font-size:11px;font-weight:500;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:background var(--transition),border-color var(--transition);text-align:center}.sz-preset-btn:hover{background:var(--surface-hover);border-color:var(--accent)}.sz-preset-btn.selected{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);font-weight:600}.sz-custom-btn{width:100%;padding:7px;font-size:12px;font-weight:500;font-family:var(--font);border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.sz-custom-btn:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.vs-zone-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:800;color:var(--accent-strong);background:var(--accent-bg);border:1px solid var(--accent-bg-hover);border-radius:999px;padding:0 6px;margin-left:6px;vertical-align:middle;line-height:18px;letter-spacing:.08em;text-transform:uppercase}.vs-mlist-divider{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;border-top:1px solid rgba(34,197,94,.18);margin-top:6px;background:var(--success-bg)}.vs-mlist-divider-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--success)}.vs-grid-row-mlist{background:var(--success-bg);border-left:3px solid rgba(34,197,94,.68);font-size:12px;cursor:default}.vs-grid-row-mlist:hover{background:var(--success-bg)}.vs-mlist-num{font-size:10px;color:var(--text-secondary);font-weight:600}.vs-mlist-icon{color:var(--success);display:inline-flex;align-items:center;gap:2px}.vs-mlist-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text)}.vs-mlist-rows-count{font-size:10px;color:var(--text-muted);font-weight:500;margin-left:4px}.vs-mlist-value{font-weight:700;color:var(--success)!important}.vs-grid-row-mlist-sub{background:var(--success-bg);border-left:3px solid rgba(132,204,22,.34);font-size:11px}.vs-grid-row-mlist-sub:hover{background:var(--success-bg)}.vs-mlist-sub-dims{display:flex;gap:8px;padding-left:12px;font-family:var(--mono);font-size:11px;color:var(--text-secondary)}.vs-mlist-sub-t{color:var(--text-secondary);min-width:28px}.vs-mlist-sub-t:after{content:" ×";color:var(--text-muted)}.vs-mlist-sub-dim{min-width:40px}.vs-tab-btn{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:0 10px;border:1px solid transparent;border-radius:10px;background:var(--surface-sunken);color:var(--text-secondary);font-size:10.5px;font-weight:700;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.vs-tab-btn:hover{color:var(--text);background:var(--surface-hover)}.vs-tab-btn.vs-tab-active{color:var(--accent-strong);background:var(--surface);border-color:var(--accent-bg-hover);box-shadow:inset 0 1px #ffffffeb,0 6px 16px #0f172a0f}.vs-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 4px;background:#3341551a;border-radius:999px;font-size:9px;color:var(--text-secondary);font-weight:800}.vs-tab-active .vs-tab-badge{background:#3b82f61f;color:var(--accent-strong)}.vs-magic-split-wrap .vs-grid-body{gap:0}.vs-magic-stage-block{border-bottom:1px solid rgba(148,163,184,.24)}.vs-magic-stage-header{display:flex;align-items:center;gap:10px;min-height:34px;padding:7px 12px;background:var(--success-bg);border-bottom:1px solid rgba(34,197,94,.18);color:var(--success);cursor:pointer}.vs-magic-stage-header:hover{background:var(--success-bg)}.vs-magic-stage-remaining{background:var(--surface-sunken);border-bottom-color:#94a3b847;color:var(--text-secondary)}.vs-magic-stage-remaining:hover{background:var(--surface-hover)}.vs-magic-stage-name{font-size:12px;font-weight:800}.vs-magic-stage-input{width:180px;max-width:32vw;height:24px;padding:3px 7px;border:1px solid rgba(34,197,94,.36);border-radius:6px;background:var(--surface);color:var(--success);font-size:12px;font-weight:700;font-family:var(--font);outline:none}.vs-magic-stage-input:focus{border-color:#22c55eb3;box-shadow:0 0 0 2px #22c55e1f}.vs-magic-stage-meta{font-size:11px;color:currentColor;opacity:.72}.vs-magic-stage-total{margin-left:auto;font-size:11px;font-weight:800;color:currentColor;font-variant-numeric:tabular-nums}.vs-opening-schedule{font-size:12px;overflow-y:auto;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-hover) 100%)}.vs-opening-section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(180deg,var(--surface-hover) 0%,var(--surface-sunken) 100%);border-bottom:1px solid rgba(148,163,184,.12);font-weight:700;font-size:11px;color:var(--text-secondary)}.vs-opening-subtotal{color:var(--danger);font-weight:700;font-size:11px}.vs-opening-grid{display:grid;grid-template-columns:50px 140px 80px 80px 80px 42px;border-bottom:1px solid rgba(148,163,184,.1)}.vs-opening-grid-header{background:var(--surface-sunken);border-bottom:1px solid rgba(148,163,184,.12)}.vs-opening-grid-header .vs-opening-cell{font-weight:800;color:var(--text-muted);text-transform:uppercase;font-size:10px;letter-spacing:.12em}.vs-opening-cell{padding:7px 8px;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:30px;color:var(--text)}.vs-opening-ref{justify-content:center}.vs-opening-num{justify-content:flex-end;font-variant-numeric:tabular-nums}.vs-opening-action{justify-content:center;overflow:visible;position:relative;padding:3px}.vs-opening-wall{color:var(--text-secondary)}.vs-opening-ded{color:var(--danger);font-weight:500}.vs-opening-row{cursor:pointer;transition:background .1s}.vs-opening-row:hover .vs-opening-cell{background:var(--surface-hover, #f8fafc)}.vs-opening-row-hl .vs-opening-cell{background:var(--surface-selected, #eff6ff)}.vs-opening-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:4px;font-weight:600;font-size:11px}.vs-opening-badge-door{background:var(--warning-bg);color:var(--warning);cursor:pointer}.vs-opening-badge-door:hover{background:var(--warning-border)}.vs-opening-badge-window{background:#f3e8ff;color:#7c3aed;cursor:pointer}.vs-opening-badge-window:hover{background:#e9d5ff}.vs-opening-ref-input{width:50px;padding:2px 4px;border:1px solid var(--accent);border-radius:3px;font-size:11px;font-weight:600;font-family:var(--font);text-align:center;outline:none}.vs-opening-totals .vs-opening-cell{background:var(--surface-sunken);font-weight:600;border-top:2px solid var(--border);color:var(--text)}.pdf-label-layer{position:absolute;top:0;left:0;pointer-events:none;z-index:1;transform-origin:0 0;will-change:transform}.pdf-label{position:absolute;left:calc(var(--x) * 1px);top:calc(var(--y) * 1px);transform:translate(-50%,-50%);white-space:nowrap;font-family:sans-serif;background:#ffffffd9;padding:2px 6px;border-radius:1px;user-select:none;line-height:1.3}.pdf-label-main{font-size:5px;font-weight:700;border:1px solid}.pdf-label-edge{font-size:4px;background:#fffc}.pdf-label-multi{font-size:4.5px;border:1px solid;background:#ffffffe6;text-align:center}.pdf-label-line-bold{font-weight:700;white-space:nowrap}.pdf-label-line{font-weight:400;white-space:nowrap}.pdf-markup-text-editor{position:absolute;z-index:4;resize:none;border:2px solid;border-radius:4px;padding:6px 8px;font-family:var(--font);font-weight:700;line-height:1.25;outline:none;box-shadow:0 6px 18px #0f172a2e}.mc-count-symbol-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mc-count-symbol-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;padding:0}.mc-count-symbol-btn:hover{border-color:var(--accent)}.mc-count-symbol-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ee-dialog{width:min(1040px,96vw);height:min(720px,92vh);max-height:92vh;display:flex;flex-direction:column;resize:both;overflow:hidden;min-width:600px;min-height:400px}.ee-dialog.ee-maximized{width:98vw!important;height:95vh!important;max-width:98vw!important;max-height:95vh!important}.ee-header{display:flex;align-items:center;gap:8px}.ee-maximize-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:5px;background:#ffffff26;color:#fff;cursor:pointer;flex-shrink:0}.ee-maximize-btn:hover{background:#ffffff4d}.ee-body{overflow:hidden;flex:1;min-height:0;display:flex;flex-direction:column}.ee-controls{display:flex;gap:16px;flex-shrink:0}.ee-section{flex:1;min-width:0}.ee-section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px;display:flex;align-items:center;gap:8px}.ee-col-toggles{display:flex;flex-wrap:wrap;gap:3px 10px}.ee-col-toggle{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text);cursor:pointer;user-select:none}.ee-col-toggle input[type=checkbox]{margin:0;cursor:pointer}.ee-options{display:flex;flex-direction:column;gap:6px}.ee-option-row{display:flex;align-items:center;gap:8px}.ee-option-label{font-size:11.5px;color:var(--text);white-space:nowrap}.ee-select{padding:3px 6px;font-size:11.5px;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;outline:none}.ee-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f626}.ee-flip-all-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:500;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.ee-flip-all-btn:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.ee-main{display:flex;gap:12px;flex:1;min-height:0;margin-top:0}.ee-sidebar{width:244px;min-width:210px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.ee-side-section{flex-shrink:0;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid var(--border)}.ee-col-list{display:flex;flex-direction:column;gap:1px;max-height:178px;overflow-y:auto}.ee-col-item{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:5px;font-size:11.5px}.ee-col-item:hover{background:var(--surface-hover)}.ee-col-item-label{display:flex;align-items:center;gap:5px;flex:1;min-width:0;cursor:pointer;user-select:none}.ee-col-item-label input[type=checkbox]{margin:0;cursor:pointer}.ee-col-item-label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ee-col-move{display:inline-flex;gap:1px;opacity:.45}.ee-col-item:hover .ee-col-move{opacity:1}.ee-col-move button{border:none;background:none;cursor:pointer;font-size:9px;line-height:1;color:var(--text-secondary);padding:2px 3px;border-radius:3px}.ee-col-move button:hover:not(:disabled){background:var(--accent);color:#fff}.ee-col-move button:disabled{opacity:.25;cursor:default}.ee-groups-actions{display:inline-flex;gap:6px;margin-left:8px}.ee-link-btn{background:none;border:none;padding:0;font-size:10px;font-family:var(--font);color:var(--accent);cursor:pointer;text-decoration:underline;text-transform:none;letter-spacing:0;font-weight:500}.ee-link-btn:hover{color:var(--accent-light)}.ee-groups-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1;min-height:0;padding-right:4px}.ee-group-row{display:flex;align-items:center;gap:5px;padding:5px 6px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:11px;cursor:grab;transition:opacity var(--transition),border-color var(--transition);flex-shrink:0}.ee-group-row:active{cursor:grabbing}.ee-row-excluded{opacity:.35}.ee-row-dragging{opacity:.3}.ee-row-dragover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ee-row-grip{color:var(--text-muted);display:flex;align-items:center;flex-shrink:0;cursor:grab}.ee-row-grip:active{cursor:grabbing}.ee-row-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ee-row-label{display:flex;align-items:center;gap:4px;cursor:pointer;user-select:none;min-width:0;flex:1}.ee-row-label input[type=checkbox]{margin:0;cursor:pointer;flex-shrink:0}.ee-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.ee-row-count{font-size:9px;color:var(--text-muted);background:var(--border-light);border-radius:3px;padding:0 4px;line-height:1.5;flex-shrink:0}.ee-row-flip{display:flex;align-items:center;padding:1px 3px;border:1px solid transparent;border-radius:3px;background:none;color:var(--text-muted);cursor:pointer;transition:all var(--transition);flex-shrink:0}.ee-row-flip:hover{border-color:var(--accent);color:var(--accent)}.ee-row-flip.ee-flipped{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.ee-heading-input{flex:1;min-width:0;border:1px solid var(--border);border-radius:3px;padding:1px 4px;font-size:11px;font-weight:600;background:var(--surface)}.ee-heading-input:focus{outline:none;border-color:var(--accent, #3b82f6)}.ee-row-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.ee-row-remove:hover{color:var(--danger)}.ee-preview-section{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.ee-preview-hint{font-size:10px;font-weight:400;color:var(--text-muted);text-transform:none;letter-spacing:0;margin-left:auto}.ee-spreadsheet{border:1px solid #b4b4b4;border-radius:0;background:#fff;flex:1;min-height:0;overflow:auto;font-family:var(--mono);font-size:11px;line-height:1}.ee-ss-header-letters{display:flex;min-width:max-content;position:sticky;top:0;z-index:2;background:#e8eaed;border-bottom:1px solid #b4b4b4;height:22px}.ee-ss-col-letter{padding:2px 4px;font-size:10px;font-weight:600;color:#444;border-right:1px solid #c8cacc;flex-shrink:0;text-align:center;user-select:none}.ee-ss-header-names{display:flex;min-width:max-content;position:sticky;top:22px;z-index:2;background:#f0f2f5;border-bottom:2px solid #8a8d90}.ee-ss-th{padding:4px 6px;font-size:10.5px;font-weight:700;color:var(--text);border-right:1px solid #d0d2d4;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font)}.ee-ss-row-num{width:32px;min-width:32px;padding:2px 4px;font-size:10px;font-weight:500;color:#888;text-align:center;background:#f5f5f5;border-right:1px solid #c8cacc;flex-shrink:0;user-select:none}.ee-ss-body{min-height:40px}.ee-ss-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:12px;font-family:var(--font)}.ee-ss-row{display:flex;min-width:max-content;border-bottom:1px solid #e6e8ea}.ee-ss-row:last-child{border-bottom:none}.ee-ss-row:hover{background:#f0f7ff}.ee-ss-row-total{background:#f8f9fa}.ee-ss-row-total:hover{background:#edf2ff}.ee-ss-row-ded{background:#fff5f5}.ee-ss-row-ded:hover{background:#fff0f0}.ee-ss-td-bordered{border-top:2px solid #333;border-bottom:2px solid #333}.ee-ss-td{padding:3px 6px;border-right:1px solid #ececee;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.ee-ss-td-total{font-weight:700}.ee-ss-color-bar{position:absolute;left:0;top:1px;bottom:1px;width:3px;border-radius:0 2px 2px 0}.ee-ss-color-bar-bold{width:4px}.ee-ss-ded-text{color:#dc2626}.ee-save-file-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:500;font-family:var(--font);border:1px solid var(--success);border-radius:var(--radius-sm);background:var(--surface);color:var(--success);cursor:pointer;transition:all var(--transition)}.ee-save-file-btn:hover{background:var(--success-bg);border-color:var(--success);color:var(--success)}.ee-save-file-btn:disabled{opacity:.4;cursor:not-allowed}.wall-3d-container{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}.wall-3d-header{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--brand);color:#fff;font-size:13px}.wall-3d-title{font-weight:600}.wall-3d-hint{flex:1;text-align:center;opacity:.6;font-size:11px}.wall-3d-legend{display:flex;gap:14px;padding:6px 12px;background:var(--surface-hover);border-top:1px solid var(--border);font-size:12px;flex-wrap:wrap}.wall-3d-legend-item{display:flex;align-items:center;gap:5px}.wall-3d-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.15)}.wall-3d-empty{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;background:var(--surface-sunken);color:var(--text-secondary);text-align:center}.wall-3d-empty-inner{padding:32px}.wall-3d-toggle{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:12px;color:var(--text);white-space:nowrap}.wall-3d-toggle:hover{background:var(--surface-sunken);border-color:var(--border-strong)}.wall-3d-toggle.active{background:var(--brand);color:#fff;border-color:var(--brand)}.wall-3d-overlay-wrap{flex:1;position:relative;display:flex;background:var(--surface-sunken)}.wall-3d-overlay-controls{position:absolute;top:8px;right:8px;z-index:25;pointer-events:auto;display:flex;align-items:center;gap:8px;background:var(--surface-raised);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;box-shadow:0 2px 8px #0000001a}.wall-3d-overlay-close{background:none;border:1px solid var(--border);cursor:pointer;font-size:12px;color:var(--text-secondary);padding:3px 8px;border-radius:4px;font-weight:500}.wall-3d-overlay-close:hover{background:var(--surface-hover);color:var(--text)}.wall-3d-overlay-hint{color:var(--text-muted);font-size:11px}.combine-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:28px;background:var(--backdrop);backdrop-filter:blur(3px)}.combine-dialog{width:min(860px,calc(100vw - 48px));max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--surface-raised);border:1px solid var(--border);box-shadow:0 24px 70px #0f172a47;color:var(--text)}.combine-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface-hover) 0%,var(--surface-raised) 100%)}.combine-kicker{margin-bottom:3px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.combine-title{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}.combine-close-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer}.combine-close-btn:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.combine-intro{padding:12px 22px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:13px}.combine-body{display:grid;grid-template-columns:minmax(320px,1fr) minmax(260px,.9fr);gap:0;min-height:0;flex:1}.combine-list-wrap{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border)}.combine-actions{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:12px}.combine-actions button{border:1px solid var(--border);border-radius:8px;background:var(--surface-raised);color:var(--accent-strong);padding:5px 9px;font-size:12px;font-weight:700;cursor:pointer}.combine-actions span{margin-left:auto;white-space:nowrap}.combine-list{min-height:0;overflow:auto;padding:8px}.combine-row{display:grid;grid-template-columns:18px 28px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:12px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.combine-row:hover{background:var(--surface-hover)}.combine-row.selected{background:var(--surface-selected);border-color:var(--accent-bg-hover)}.combine-row.previewed{box-shadow:inset 3px 0 0 var(--accent)}.combine-row input{width:16px;height:16px}.combine-order{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--surface-sunken);color:var(--text-secondary);font-size:12px;font-weight:800}.combine-row-main{min-width:0;display:flex;flex-direction:column;gap:2px}.combine-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;color:var(--text)}.combine-row-meta{color:var(--text-muted);font-size:12px}.combine-preview-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--accent);cursor:pointer}.combine-preview-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-bg-hover)}.combine-preview-panel{min-width:0;min-height:0;display:flex;flex-direction:column;padding:14px;background:var(--surface-sunken)}.combine-preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.combine-preview-heading span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.combine-preview-heading small{color:var(--text-muted);white-space:nowrap}.combine-preview-frame{flex:1;min-height:260px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #dce5f1;border-radius:12px;background:linear-gradient(45deg,#f1f5f9 25%,transparent 25%),linear-gradient(-45deg,#f1f5f9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f5f9 75%),linear-gradient(-45deg,transparent 75%,#f1f5f9 75%),#fff;background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}.combine-preview-frame img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 8px 24px #0f172a2e}.combine-preview-loading,.combine-preview-empty{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-secondary);font-size:13px}.combine-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;border-top:1px solid var(--border);background:var(--surface-raised)}.combine-footer-note{color:var(--text-secondary);font-size:12px}.split-progress{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.split-progress-track{height:6px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}.split-progress-fill{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .12s ease}.split-progress-label{font-size:12px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.combine-footer-actions{display:flex;align-items:center;gap:10px}.combine-cancel-btn,.combine-confirm-btn{min-width:104px;border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:800;cursor:pointer}.combine-cancel-btn{background:var(--surface-raised);color:var(--text)}.combine-confirm-btn{background:var(--accent);border-color:var(--accent);color:#fff}.combine-confirm-btn:disabled,.combine-cancel-btn:disabled,.combine-actions button:disabled,.combine-preview-btn:disabled,.combine-close-btn:disabled{opacity:.48;cursor:not-allowed}.stk-form{min-height:0;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:18px}.stk-field{display:flex;flex-direction:column;gap:8px}.stk-label{color:var(--text-secondary);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stk-input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text);background:var(--surface);outline:none}.stk-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f7ddf29}.stk-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer}.stk-option+.stk-option{margin-top:8px}.stk-option:hover{border-color:var(--border-strong);background:var(--surface-hover)}.stk-option.selected{border-color:var(--accent);background:var(--accent-bg)}.stk-option input{margin:2px 0 0}.stk-option-main{display:flex;flex-direction:column;gap:3px}.stk-option-title{font-size:13px;font-weight:700;color:var(--text)}.stk-option-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}@media(max-width:760px){.combine-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.combine-body{grid-template-columns:1fr}.combine-list-wrap{border-right:0;border-bottom:1px solid var(--border);max-height:42vh}.combine-footer{align-items:stretch;flex-direction:column}.combine-footer-actions{justify-content:flex-end}}.compare-overlay{position:fixed;inset:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:0;background:var(--backdrop);backdrop-filter:blur(3px)}.compare-dialog{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;border-radius:0;background:var(--surface);border:0;box-shadow:none;color:var(--text)}.compare-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px 13px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface-hover) 0%,var(--surface) 100%)}.compare-kicker{margin-bottom:3px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.compare-title{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}.compare-close-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer}.compare-close-btn:hover{background:var(--surface-sunken);color:var(--text)}.compare-body{min-height:0;flex:1;display:grid;grid-template-columns:330px minmax(0,1fr)}.compare-controls{min-height:0;overflow:auto;padding:16px;border-right:1px solid var(--border);background:var(--surface-hover)}.compare-control-group{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.compare-label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.compare-swatch{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 3px #0000000a}.compare-swatch.red{background:#ef4444}.compare-swatch.green{background:#22c55e}.compare-control-group select,.compare-control-grid input{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:9px 10px;font-size:13px;font-family:var(--font)}.compare-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.compare-control-grid label{min-width:0;display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:12px;font-weight:700}.compare-control-grid input[type=range]{padding:0;accent-color:var(--accent)}.compare-scale-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 18px;align-items:center;gap:7px}.compare-scale-row input[type=range]{min-width:0}.compare-scale-row input[type=number]{padding:7px 8px;text-align:right}.compare-scale-percent{color:var(--text-secondary);font-size:12px;font-weight:900}.compare-actions{display:flex;gap:8px;margin-bottom:14px}.compare-actions button,.compare-button-row button{flex:1;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--accent-strong);padding:9px 10px;font-size:12px;font-weight:800;cursor:pointer}.compare-actions button:hover:not(:disabled),.compare-button-row button:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-bg-hover)}.compare-actions button:disabled,.compare-button-row button:disabled{opacity:.45;cursor:not-allowed}.compare-button-row button.active{background:var(--accent);border-color:var(--accent);color:#fff}.compare-primary-wide-btn{width:100%;border:1px solid var(--accent);border-radius:12px;background:var(--accent);color:#fff;padding:10px 12px;font-size:13px;font-weight:900;cursor:pointer;margin-bottom:9px}.compare-primary-wide-btn:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.compare-align-panel,.compare-export-panel{margin-bottom:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised)}.compare-panel-title{margin-bottom:9px;color:var(--text);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.compare-button-row{display:flex;gap:8px;margin-bottom:8px}.compare-point-summary{color:var(--text-secondary);font-size:12px;line-height:1.35}.compare-pick-hint{margin-top:8px;border-radius:10px;background:var(--warning-bg);color:var(--warning);padding:8px 9px;font-size:12px;font-weight:800}.compare-help{border:1px solid var(--accent-bg-hover);border-radius:12px;background:var(--accent-bg);color:var(--text-secondary);padding:11px 12px;font-size:12px;line-height:1.45}.compare-preview{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--surface-sunken);position:relative}.compare-preview-toolbar{min-height:42px;display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface-hover);color:var(--text);font-size:13px;font-weight:800}.compare-floating-pad{position:absolute;right:18px;bottom:18px;z-index:18;width:214px;border:1px solid var(--border);border-radius:18px;background:var(--surface-raised);box-shadow:0 16px 44px #0f172a3d;padding:12px;backdrop-filter:blur(8px)}.compare-pad-title{margin-bottom:9px;color:var(--text);font-size:11px;font-weight:900;letter-spacing:.09em;text-align:center;text-transform:uppercase}.compare-pad-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:". up ." "left centre right" ". down .";gap:7px}.compare-pad-up{grid-area:up}.compare-pad-left{grid-area:left}.compare-pad-centre{grid-area:centre}.compare-pad-right{grid-area:right}.compare-pad-down{grid-area:down}.compare-pad-grid button,.compare-pad-rotate button{border:1px solid var(--border);border-radius:11px;background:var(--surface-raised);color:var(--accent-strong);padding:8px 7px;font-size:11px;font-weight:900;cursor:pointer}.compare-pad-grid button:hover:not(:disabled),.compare-pad-rotate button:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent-bg-hover)}.compare-pad-grid button:disabled,.compare-pad-rotate button:disabled{opacity:.45;cursor:not-allowed}.compare-pad-centre{color:var(--text-secondary)!important}.compare-pad-rotate{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.compare-zoom-controls{display:flex;align-items:center;gap:7px;margin-left:auto}.compare-zoom-controls button{min-width:34px;height:28px;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised);color:var(--accent-strong);font-size:12px;font-weight:800;cursor:pointer}.compare-zoom-controls input{width:130px;accent-color:var(--accent)}.compare-zoom-controls span{min-width:42px;color:var(--text-secondary);font-size:12px;text-align:right}.compare-rendering{color:var(--accent);font-weight:700}.compare-error{color:var(--danger);font-weight:700}.compare-canvas-wrap{min-height:0;flex:1;overflow:auto;position:relative}.compare-align-popout{position:absolute;top:56px;left:18px;z-index:20;width:min(430px,calc(100% - 36px));border:1px solid var(--border);border-radius:16px;background:var(--surface-raised);box-shadow:0 18px 48px #0f172a3d;overflow:hidden}.compare-align-popout-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 16px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface-hover) 0%,var(--surface-raised) 100%)}.compare-align-popout-header h4{margin:0;color:var(--text);font-size:18px;font-weight:900}.compare-align-popout-close{width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--text-secondary);font-size:22px;line-height:1;cursor:pointer}.compare-align-steps{display:flex;flex-direction:column;gap:10px;padding:14px}.compare-align-step{display:grid;grid-template-columns:32px minmax(0,1fr) 78px;align-items:center;gap:10px;border:1px solid var(--border);border-radius:13px;background:var(--surface-raised);padding:10px}.compare-align-step.active{border-color:var(--warning);background:var(--warning-bg)}.compare-align-step.done{border-color:var(--success-border);background:var(--success-bg)}.compare-align-step.ready{border-color:var(--accent-bg-hover);background:var(--accent-bg)}.compare-align-step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--surface-sunken);color:var(--text);font-size:13px;font-weight:900}.compare-align-step strong{display:block;margin-bottom:2px;color:var(--text);font-size:13px}.compare-align-step p{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.35}.compare-align-step button,.compare-align-popout-actions button{border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);color:var(--accent-strong);padding:8px 10px;font-size:12px;font-weight:900;cursor:pointer}.compare-align-step button:disabled{opacity:.45;cursor:not-allowed}.compare-align-step.ready button{background:var(--accent);border-color:var(--accent);color:#fff}.compare-align-popout-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 14px 14px}.compare-align-popout .compare-pick-hint{margin:0 14px 14px}.compare-canvas-scroll-inner{min-width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:24px}.compare-stage{position:relative;flex:0 0 auto;min-width:80px;min-height:80px;background:#fff;box-shadow:0 12px 34px #0f172a3d;cursor:grab;overflow:visible;touch-action:none}.compare-stage.dragging{cursor:grabbing}.compare-stage.panning{cursor:move}.compare-stage.picking{cursor:crosshair}.compare-stage.locked{cursor:default}.compare-layer{position:absolute;display:block;user-select:none;-webkit-user-drag:none;image-rendering:auto}.compare-layer-base{inset:0;width:100%;height:100%;pointer-events:none}.compare-layer-overlay{pointer-events:none;transform-origin:center center;will-change:left,top,transform}.compare-align-marker{position:absolute;z-index:4;width:22px;height:22px;border-radius:999px;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 3px #fff,0 4px 12px #0f172a47}.compare-align-marker:before,.compare-align-marker:after{content:"";position:absolute;background:currentColor}.compare-align-marker:before{left:50%;top:-8px;bottom:-8px;width:2px;transform:translate(-50%)}.compare-align-marker:after{top:50%;left:-8px;right:-8px;height:2px;transform:translateY(-50%)}.compare-align-marker.base{color:#ef4444;background:#ef444438;border:2px solid #ef4444}.compare-align-marker.overlay{color:#22c55e;background:#22c55e38;border:2px solid #22c55e}.compare-align-marker span{position:absolute;left:50%;top:26px;transform:translate(-50%);border-radius:999px;background:#fff;color:currentColor;padding:2px 7px;font-size:10px;font-weight:900;white-space:nowrap}.compare-loading-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--backdrop);color:var(--accent);font-size:14px;font-weight:800}@media(max-width:860px){.compare-dialog{width:100vw;height:100vh}.compare-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.compare-controls{max-height:42vh;border-right:0;border-bottom:1px solid var(--border)}.compare-preview-toolbar{align-items:flex-start;flex-direction:column}.compare-zoom-controls{margin-left:0}}.pdf-text-layer{position:absolute;transform-origin:0 0;z-index:3;line-height:1;text-align:initial}.pdf-text-layer span{position:absolute;color:transparent;white-space:pre;cursor:text;transform-origin:0 0}.pdf-text-layer ::selection{background:#2563eb4d}.pdf-text-layer br::selection{background:transparent}.pdf-overlay-ruler-cursor{cursor:none!important}.fp-overlay{position:fixed;inset:0;background:var(--backdrop);display:flex;align-items:center;justify-content:center;z-index:9000;animation:fp-fade-in .15s ease}@keyframes fp-fade-in{0%{opacity:0}to{opacity:1}}.fp-dialog{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:640px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;animation:fp-slide-up .2s ease}@keyframes fp-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fp-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.fp-title{margin:0;font-size:16px;font-weight:600;color:var(--text)}.fp-close-btn{background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1;border-radius:4px;transition:color var(--transition),background var(--transition)}.fp-close-btn:hover{color:var(--text);background:var(--surface-hover)}.fp-drop-zone{flex:1;min-height:200px;max-height:calc(100vh - 240px);overflow-y:auto;margin:16px 20px;border:2px dashed var(--border);border-radius:var(--radius);transition:border-color var(--transition),background var(--transition)}.fp-drop-zone.empty{display:flex;align-items:center;justify-content:center}.fp-drop-zone.drag-over{border-color:var(--accent);background:var(--accent-bg)}.fp-drop-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-muted);text-align:center}.fp-drop-hint p{margin:0;font-size:14px}.fp-drop-sub{font-size:12px!important;color:var(--text-muted)}.fp-browse-btn{margin-top:4px;padding:8px 20px;font-size:13px;font-weight:500;font-family:var(--font);color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition)}.fp-browse-btn:hover{background:var(--accent-light)}.fp-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px}.fp-file-card{position:relative;display:flex;flex-direction:column;align-items:center;background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 8px 8px;transition:border-color var(--transition),box-shadow var(--transition)}.fp-file-card.expanded{grid-column:1 / -1}.fp-card-main{display:flex;flex-direction:column;align-items:center;width:100%}.fp-file-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.fp-file-card.error{border-color:var(--danger);background:var(--danger-bg)}.fp-card-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;background:#00000080;color:#fff;font-size:14px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition);z-index:1}.fp-file-card:hover .fp-card-remove{opacity:1}.fp-card-remove:hover{background:#ef4444e6}.fp-thumb-wrap{position:relative;width:120px;height:156px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-light);border-radius:4px;overflow:hidden;margin-bottom:8px}.fp-thumb-img{max-width:100%;max-height:100%;object-fit:contain}.fp-thumb-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.fp-thumb-loading-text{font-size:11px;color:var(--text-muted, #64748b)}.fp-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:fp-spin .8s linear infinite}@keyframes fp-spin{to{transform:rotate(360deg)}}.fp-thumb-error{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--danger-border);color:var(--danger);font-weight:700;font-size:18px;border-radius:50%}.fp-card-info{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0}.fp-card-name{font-size:11px;font-weight:500;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.fp-card-pages{font-size:10px;color:var(--text-muted)}.fp-card-error{font-size:10px;color:var(--danger)}.fp-add-card{cursor:pointer;border-style:dashed;justify-content:center;gap:4px;min-height:180px}.fp-add-card:hover{background:var(--accent-bg);border-color:var(--accent)}.fp-add-icon{font-size:28px;color:var(--text-muted);line-height:1}.fp-add-label{font-size:12px;color:var(--text-muted)}.fp-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 16px;border-top:1px solid var(--border);flex-shrink:0}.fp-file-count{font-size:12px;color:var(--text-secondary)}.fp-footer-btns{display:flex;gap:8px}.fp-cancel-btn{padding:7px 16px;font-size:13px;font-weight:500;font-family:var(--font);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition)}.fp-cancel-btn:hover{background:var(--surface-hover)}.fp-confirm-btn{padding:7px 20px;font-size:13px;font-weight:500;font-family:var(--font);color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),opacity var(--transition)}.fp-confirm-btn:hover:not(:disabled){background:var(--accent-light)}.fp-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.fp-page-section{width:100%;border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.fp-page-select-bar{display:flex;gap:8px;padding:0 4px 6px}.fp-page-select-btn{background:none;border:none;font-size:11px;font-family:var(--font);color:var(--accent);cursor:pointer;padding:2px 4px;border-radius:3px;transition:background var(--transition)}.fp-page-select-btn:hover{background:var(--accent-bg)}.fp-page-grid{display:flex;flex-wrap:wrap;gap:8px;padding:0 4px 4px}.fp-page-thumb{position:relative;width:80px;cursor:pointer;border:2px solid transparent;border-radius:4px;overflow:hidden;transition:border-color var(--transition),opacity var(--transition);background:#fff;display:flex;flex-direction:column;align-items:center}.fp-page-thumb img{width:100%;display:block}.fp-page-thumb .fp-spinner{width:18px;height:18px;margin:20px 0}.fp-page-thumb.selected{border-color:var(--accent)}.fp-page-thumb.deselected{opacity:.35}.fp-page-thumb:hover{opacity:1}.fp-page-num{font-size:10px;color:var(--text-muted);padding:2px 0}.fp-page-check{position:absolute;top:2px;right:2px;width:16px;height:16px;background:var(--accent);color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;line-height:1}.fp-page-preview{position:fixed;z-index:9999;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;pointer-events:none;width:400px}.fp-page-preview img{width:100%;display:block;border-radius:4px}.fp-page-preview-label{display:block;text-align:center;font-size:11px;color:var(--text-muted);margin-top:4px}.boq-item-sheet,.boq-inspector,.boq-project-bar,.boq-document-bar{--boq-ink: #1f2937;--boq-muted: #64748b;--boq-border: #cbd5e1;--boq-soft-border: #e2e8f0;--boq-surface: #ffffff;--boq-soft: #f8fafc;--boq-section: #dcecf7;--boq-accent: #2563eb;--boq-accent-soft: #dbeafe;--boq-green: #15803d;--boq-green-soft: #dcfce7;--boq-red: #b91c1c;--boq-red-soft: #fee2e2;color:var(--boq-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.boq-item-sheet{display:flex;flex-direction:column;min-width:0;height:100%;background:var(--boq-surface);overflow:hidden}.boq-sheet-toolbar{display:flex;align-items:center;gap:6px;min-height:48px;padding:8px 14px;border-bottom:1px solid var(--boq-soft-border);background:var(--boq-surface);flex-shrink:0}.boq-title-input{min-width:160px;max-width:360px;flex:1 1 240px;border:1px solid transparent;background:transparent;border-radius:4px;padding:4px 6px;color:var(--boq-ink);font-weight:700;font-size:12px}.boq-title-input:hover,.boq-title-input:focus{background:#fff;border-color:var(--boq-border);outline:none}.boq-sheet-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.boq-command-spacer{flex:1 1 auto;min-width:4px}.boq-btn{border:1px solid var(--boq-border);border-radius:7px;background:#fff;color:#334155;min-height:30px;padding:5px 9px;font-size:10.5px;font-weight:700;line-height:1.25;cursor:pointer;white-space:nowrap}.boq-btn:hover:not(:disabled){background:#f7f9fc;border-color:#8fa2bb}.boq-btn:disabled{opacity:.45;cursor:default}.boq-btn-primary{color:#fff;background:var(--boq-accent);border-color:var(--boq-accent)}.boq-btn-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.boq-structured-commandbar .boq-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px}.boq-structured-commandbar .boq-btn-suggest{border-color:#a7e1d3;background:#ecfdf8;color:#087f6a}.boq-btn-symbol{display:inline-grid;width:13px;height:13px;place-items:center;border:1px solid currentColor;border-radius:3px;font-size:8px;line-height:1}.boq-sheet-meta{display:flex;align-items:center;gap:12px;min-height:39px;padding:4px 14px;border-bottom:1px solid var(--boq-soft-border);background:#f8fafc;color:var(--boq-muted);font-size:9.5px;font-weight:650;flex-shrink:0}.boq-sheet-meta-actions{display:flex;align-items:center;gap:2px;margin-left:auto}.boq-sheet-meta-actions .boq-btn{min-height:28px;border-color:transparent;background:transparent;padding-inline:7px}.boq-sheet-meta-actions .boq-btn:hover:not(:disabled){border-color:#d7e0ea;background:#fff}.boq-selection-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:var(--boq-green-soft);color:var(--boq-green);padding:3px 8px;font-size:10px;font-weight:700}.boq-grid-wrap{flex:1;min-height:0;overflow:auto;background:#fff}.boq-grid{display:grid;grid-template-columns:64px minmax(220px,2.3fr) minmax(90px,.8fr) 90px 62px 82px 72px 108px 116px;min-width:920px;align-items:stretch}.boq-grid>div{min-width:0;padding:4px 6px;border-right:1px solid var(--boq-soft-border);display:flex;align-items:center}.boq-grid-header{position:sticky;top:0;z-index:3;background:#eef2f6;color:#64748b;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--boq-border)}.boq-section-row{background:var(--boq-section);border-bottom:1px solid #b7d1e4;color:#24455c;font-size:11px;font-weight:700}.boq-section-number{justify-content:center;gap:3px}.boq-section-caret{display:inline-flex;width:15px;height:15px;flex-shrink:0;align-items:center;justify-content:center;padding:0;border:0;border-radius:3px;background:transparent;color:#5b7a91;cursor:pointer;transition:transform .12s ease,background .12s ease}.boq-section-caret:hover{background:#2563eb1f;color:#1d4ed8}.boq-section-caret.collapsed{transform:rotate(-90deg)}.boq-section-count-cell{overflow:hidden;justify-content:flex-end}.boq-section-count{color:var(--boq-muted);font-size:10px;font-weight:500;white-space:nowrap}.boq-section-input{font-weight:700;color:#24455c}.boq-section-total{justify-content:flex-end}.boq-item-row{border-bottom:1px solid var(--boq-soft-border);background:#fff;font-size:11px;cursor:pointer}.boq-item-row:hover{background:#f8fbff}.boq-item-selected{background:#edf6ff;box-shadow:inset 3px 0 0 var(--boq-accent)}.boq-item-warning{box-shadow:inset 3px 0 #dc2626}.boq-cell-input{width:100%;min-width:0;border:1px solid transparent;border-radius:3px;background:transparent;color:inherit;padding:3px 4px;font:inherit}.boq-cell-input:hover:not(:disabled),.boq-cell-input:focus{border-color:var(--boq-border);background:#fff;outline:none}.boq-cell-input:disabled{color:#64748b;cursor:default}.boq-number-input{text-align:center;font-variant-numeric:tabular-nums}.boq-description-input{font-weight:600}.boq-description-cell{min-width:0}.boq-description-display{width:100%;min-width:0;overflow:hidden;border:1px solid transparent;border-radius:3px;background:transparent;color:inherit;padding:3px 4px;font:inherit;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:default}.boq-description-display:focus-visible{border-color:var(--boq-border);outline:2px solid color-mix(in srgb,var(--boq-accent) 30%,transparent);outline-offset:-1px}.boq-description-editing{border-color:var(--boq-accent);background:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--boq-accent) 18%,transparent)}.boq-numeric-input{text-align:right;font-variant-numeric:tabular-nums}.boq-unit-select{padding-right:2px}.boq-align-right{justify-content:flex-end;text-align:right;font-variant-numeric:tabular-nums}.boq-quantity-cell{color:#1d4ed8;font-weight:700}.boq-value-unavailable{color:#b45309!important;font-weight:750}.boq-total-cell{color:#0f172a;font-weight:700}.boq-source-chip{display:inline-flex;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:9px;font-weight:700}.boq-source-chip.linked{background:var(--boq-green-soft);color:var(--boq-green)}.boq-item-warning .boq-source-chip{background:var(--boq-red-soft);color:var(--boq-red)}.boq-row-actions{display:flex!important;justify-content:flex-end;gap:2px}.boq-row-actions button,.boq-inspector-close{width:22px;height:22px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:#64748b;cursor:pointer;line-height:20px}.boq-row-actions button:hover,.boq-inspector-close:hover{background:#e2e8f0;color:#0f172a}.boq-empty-section{width:100%;min-width:920px;border:0;border-bottom:1px dashed var(--boq-soft-border);background:#fff;color:#64748b;text-align:left;padding:7px 72px;font-size:10px;cursor:pointer}.boq-empty-section:hover{background:#f8fafc;color:var(--boq-accent)}.boq-empty-section-group{min-width:920px;border-bottom:1px solid var(--boq-soft-border);background:#fff}.boq-heading-empty-state{display:flex;min-height:142px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px 24px 22px;color:var(--boq-muted);text-align:center;font-size:10.5px}.boq-heading-empty-state>strong{color:var(--boq-ink);font-size:12px}.boq-heading-empty-state>span{max-width:310px;line-height:1.45}.boq-heading-empty-state>div:last-child{display:flex;gap:6px;margin-top:5px}.boq-heading-empty-icon{display:grid;width:32px;height:32px;margin-bottom:3px;place-items:center;border-radius:9px;background:#eaf2ff;color:var(--boq-accent)}.boq-heading-empty-icon svg{width:17px;height:17px}.boq-empty-state,.boq-calc-empty,.boq-rate-empty,.boq-reference-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:100px;padding:18px;color:var(--boq-muted);text-align:center;font-size:11px}.boq-sheet-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:7px 14px;border-top:1px solid var(--boq-border);background:#f5f8fc;color:#64748b;font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}.boq-sheet-footer strong{color:#0f172a;font-size:17px;font-weight:750;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.boq-item-sheet-compact .boq-sheet-toolbar{align-items:center;flex-direction:row;gap:5px;min-height:40px;padding:5px 10px;flex-wrap:nowrap;overflow-x:auto}.boq-item-sheet-compact .boq-btn{min-height:28px;padding:4px 7px;font-size:9.5px}.boq-item-sheet-compact .boq-selection-pill{display:none}.boq-item-sheet-compact .boq-sheet-meta{gap:9px;min-height:32px;padding:3px 10px}.boq-item-sheet-compact .boq-empty-section-group{min-width:400px}.boq-item-sheet-compact .boq-empty-section{min-width:400px;padding-left:44px}.boq-item-sheet-compact .boq-grid{grid-template-columns:38px minmax(112px,1fr) 56px 64px 72px 36px;min-width:400px}.boq-item-sheet-compact .boq-grid>:nth-child(3),.boq-item-sheet-compact .boq-grid>:nth-child(6),.boq-item-sheet-compact .boq-grid>:nth-child(7){display:none}.boq-item-sheet-compact .boq-grid>:nth-child(8){grid-column:5}.boq-item-sheet-compact .boq-grid>:nth-child(9){grid-column:6}.boq-item-sheet-compact .boq-grid>div{padding:4px}.boq-item-sheet-compact .boq-unit-select{padding:3px 2px 3px 4px}.boq-item-sheet-compact .boq-source-chip{font-size:8px}.boq-item-sheet-compact .boq-row-actions{justify-content:center;gap:0}.boq-item-sheet-compact .boq-row-actions button{width:24px;height:22px;font-size:11px}.boq-library-trigger.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.boq-library-popover{--boq-accent: #2563eb;--boq-border: #cbd5e1;position:fixed;z-index:4300;display:flex;flex-direction:column;max-height:min(560px,calc(100vh - 90px));overflow:hidden;border:1px solid #b8c5d6;border-radius:8px;background:#fff;color:#1f2937;box-shadow:0 16px 40px #0f172a38;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.boq-library-popover-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #d7e0ea;background:#f8fafc}.boq-library-popover-header>div{display:flex;min-width:0;flex-direction:column;gap:1px}.boq-library-popover-header strong{font-size:12px}.boq-library-popover-header small{color:#64748b;font-size:9px}.boq-library-popover-header>button{width:24px;height:24px;flex:0 0 auto;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:#64748b;cursor:pointer}.boq-library-popover-header>button:hover{background:#e2e8f0;color:#0f172a}.boq-library-picker{display:flex;min-height:0;flex-direction:column;gap:10px;padding:12px;overflow:auto}.boq-library-picker label{display:flex;min-width:0;flex-direction:column;gap:4px}.boq-library-picker label>span{color:#64748b;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.boq-library-picker select{width:100%;min-width:0;height:32px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#1f2937;padding:5px 8px;font:inherit;font-size:11px}.boq-library-picker select:focus{border-color:#3b82f6;outline:2px solid rgb(59 130 246 / 16%)}.boq-library-picker-actions{display:flex;align-items:center;gap:7px}.boq-library-picker-actions{justify-content:flex-end}.boq-library-picker-actions .boq-btn-primary{flex:1 1 auto}.boq-library-manage-link{align-self:flex-start;padding:2px 0;border:0;background:transparent;color:#2563eb;font-size:10px;font-weight:700;cursor:pointer}.boq-library-manage-link:hover{text-decoration:underline}.boq-library-empty{margin:0;padding:14px 8px;color:#64748b;font-size:10px;text-align:center}.boq-library-builder{--boq-accent: #2563eb;--boq-border: #cbd5e1;position:fixed;inset:0;z-index:4400;display:flex;flex-direction:column;overflow:hidden;background:#eef2f6;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.boq-library-builder-header{display:flex;min-height:58px;flex:0 0 auto;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid #cbd5e1;background:#fff;box-shadow:0 1px 3px #0f172a14}.boq-library-builder-title{display:flex;min-width:210px;flex-direction:column;gap:1px}.boq-library-builder-title strong{color:#0f172a;font-size:16px;line-height:1.2}.boq-library-builder-title span,.boq-library-builder-save small{color:#64748b;font-size:11px}.boq-library-builder-search{display:flex;min-width:220px;max-width:480px;flex:1 1 360px;flex-direction:column;gap:2px}.boq-library-builder-search span,.boq-library-builder-heading-bar label>span,.boq-library-bulk-entry label>span{color:#64748b;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:10px}.boq-library-builder-search input,.boq-library-builder-heading-bar input,.boq-library-bulk-entry textarea,.boq-library-item-table-row>input{min-width:0;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#1f2937;font:inherit}.boq-library-builder-search input{height:32px;padding:5px 9px;font-size:12px}.boq-library-builder-search input:focus,.boq-library-builder-heading-bar input:focus,.boq-library-bulk-entry textarea:focus,.boq-library-item-table-row>input:focus{border-color:#3b82f6;outline:2px solid rgb(59 130 246 / 16%)}.boq-library-builder-save{display:flex;min-width:130px;flex-direction:column;align-items:flex-end;gap:1px}.boq-library-builder-save>span{display:inline-flex;align-items:center;gap:5px;color:#15803d;font-size:11px;font-weight:700}.boq-library-builder-save>span>i{width:7px;height:7px;flex:0 0 auto;border-radius:999px;background:currentColor}.boq-library-builder-save.syncing>span{color:#2563eb}.boq-library-builder-save.failed>span{color:#b91c1c}.boq-library-builder-save.offline>span,.boq-library-builder-save.idle>span{color:#b45309}.boq-library-builder-body{display:grid;min-height:0;flex:1 1 auto;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:12px;padding:12px}.boq-library-builder-sidebar,.boq-library-builder-main{min-height:0;border:1px solid #cbd5e1;border-radius:7px;background:#fff;box-shadow:0 1px 2px #0f172a0f}.boq-library-builder-sidebar{display:flex;flex-direction:column;overflow:hidden}.boq-library-builder-sidebar-title,.boq-library-builder-items-bar,.boq-library-builder-heading-bar{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e2e8f0}.boq-library-builder-sidebar-title{padding:10px}.boq-library-builder-sidebar-title>div,.boq-library-builder-items-bar>div:first-child{display:flex;min-width:0;flex-direction:column;gap:1px}.boq-library-builder-sidebar-title strong,.boq-library-builder-items-bar strong{color:#0f172a;font-size:12px}.boq-library-builder-sidebar-title span,.boq-library-builder-items-bar span{overflow:hidden;color:#64748b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.boq-library-heading-list{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:2px;padding:6px;overflow:auto}.boq-library-heading-list>button{display:flex;width:100%;min-height:34px;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:#334155;font:inherit;font-size:12px;font-weight:650;text-align:left;cursor:pointer}.boq-library-heading-list>button:hover{background:#f1f5f9}.boq-library-heading-list>button.active{border-color:#bfdbfe;background:#eaf3ff;color:#1d4ed8;box-shadow:inset 3px 0 #2563eb}.boq-library-heading-list>button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boq-library-heading-list>button small{min-width:24px;flex:0 0 auto;border-radius:999px;background:#e2e8f0;color:#475569;padding:2px 6px;font-size:9px;text-align:center}.boq-library-heading-list>p{margin:0;padding:20px 8px;color:#64748b;font-size:10px;text-align:center}.boq-library-builder-import{display:flex;flex:0 0 auto;flex-direction:column;gap:4px;padding:9px 10px;border-top:1px solid #e2e8f0;background:#f8fafc}.boq-library-builder-import small{color:#64748b;font-size:10px;line-height:1.3}.boq-library-builder-main{display:flex;min-width:0;flex-direction:column;overflow:hidden}.boq-library-builder-heading-bar{min-height:70px;padding:10px 12px;background:#f8fafc}.boq-library-builder-heading-bar>label{display:flex;min-width:260px;max-width:620px;flex:1 1 460px;flex-direction:column;gap:3px}.boq-library-builder-heading-bar input{height:35px;padding:5px 9px;font-size:14px;font-weight:700}.boq-library-builder-heading-actions,.boq-library-builder-items-bar>div:last-child{display:flex;flex:0 0 auto;align-items:center;gap:5px}.boq-library-builder-items-bar{min-height:53px;padding:8px 12px}.boq-borrow-backdrop.boq-library-suggest-backdrop{z-index:4500}.boq-library-bulk-entry{display:grid;flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:10px 12px;border-bottom:1px solid #bfdbfe;background:#eff6ff}.boq-library-bulk-entry>label{display:flex;min-width:0;flex-direction:column;gap:3px}.boq-library-bulk-entry textarea{min-height:84px;resize:vertical;padding:7px 9px;font-size:11px;line-height:1.45}.boq-library-bulk-entry>div{display:grid;grid-template-columns:auto auto;gap:5px}.boq-library-bulk-entry small{grid-column:1 / -1;color:#64748b;font-size:10px}.boq-library-builder-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;padding:6px 12px;border-bottom:1px solid #bbf7d0;background:#f0fdf4;color:#166534;font-size:10px;font-weight:600}.boq-library-builder-notice>button{min-width:54px;min-height:28px;padding:3px 9px;border:1px solid #86efac;border-radius:5px;background:#fff;color:#166534;font:inherit;font-weight:750;cursor:pointer}.boq-library-builder-notice>button:hover,.boq-library-builder-notice>button:focus-visible{border-color:#22c55e;outline:2px solid rgb(34 197 94 / 15%)}.boq-library-item-table{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;overflow:hidden}.boq-library-item-table-head,.boq-library-item-table-row{display:grid;grid-template-columns:54px minmax(260px,1fr) 120px;align-items:center}.boq-library-item-table-head{min-height:31px;flex:0 0 auto;border-bottom:1px solid #cbd5e1;background:#eef2f6;color:#64748b;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.boq-library-item-table-head>span,.boq-library-item-table-row>span{padding:0 10px}.boq-library-item-table-body{min-height:0;flex:1 1 auto;overflow:auto}.boq-library-item-table-row{min-height:43px;border-bottom:1px solid #e2e8f0;background:#fff}.boq-library-item-table-row:hover{background:#f8fafc}.boq-library-item-table-row.selected{background:#f5f9ff;box-shadow:inset 3px 0 #2563eb}.boq-library-item-table-row>span{color:#64748b;font-size:10px;text-align:right}.boq-library-item-table-row>input{height:32px;padding:5px 8px;font-size:12px}.boq-library-item-table-row>div{display:flex;align-items:center;justify-content:flex-end;gap:3px;padding:0 8px}.boq-library-item-table-row>div>button{width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:#64748b;font:inherit;font-size:12px;cursor:pointer}.boq-library-item-table-row>div>button.boq-library-item-more{width:34px;font-size:11px;font-weight:800;letter-spacing:1px}.boq-menu-panel.boq-library-item-menu{z-index:4600;min-width:180px}.boq-library-item-table-row>div>button:hover:not(:disabled){border-color:#cbd5e1;background:#fff;color:#0f172a}.boq-library-item-table-row>div>button.danger:hover{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.boq-library-item-table-row>div>button:disabled{opacity:.3;cursor:default}.boq-library-item-table-empty{display:flex;min-height:180px;align-items:center;justify-content:center;padding:20px;color:#64748b;font-size:11px;text-align:center}.boq-library-spellcheck-note{flex:0 0 auto;padding:7px 12px;border-top:1px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:10px;text-align:right}.boq-library-builder-empty{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#64748b}.boq-library-builder-empty strong{color:#0f172a;font-size:16px}.boq-library-builder-empty span{font-size:11px}@media(max-width:900px){.boq-library-builder-header{gap:7px}.boq-library-builder-title span,.boq-library-builder-save{display:none}.boq-library-builder-body{grid-template-columns:220px minmax(0,1fr);gap:7px;padding:7px}.boq-library-builder-heading-actions .boq-btn{padding-inline:5px}}@media(max-width:700px){.boq-library-builder-header{flex-wrap:wrap;min-height:0;padding:8px 10px}.boq-library-builder-title{min-width:0;flex:1 1 auto}.boq-library-builder-search{order:1;min-width:0;max-width:none;flex:1 1 100%}.boq-library-builder-body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(96px,30%) minmax(0,1fr)}.boq-library-builder-heading-bar,.boq-library-builder-items-bar{min-height:0;flex-wrap:wrap;gap:8px}.boq-library-builder-heading-bar>label{min-width:0;max-width:none;flex:1 1 100%}.boq-library-bulk-entry{grid-template-columns:minmax(0,1fr)}.boq-library-item-table-head,.boq-library-item-table-row{grid-template-columns:34px minmax(0,1fr) 108px}.boq-library-item-table-head>span,.boq-library-item-table-row>span{padding:0 5px}.boq-library-item-table-row>div{padding:0 4px}}.boq-sidebar-nav{display:flex;align-items:stretch;gap:18px;min-height:34px;padding:0 12px;border-bottom:1px solid #d7e0ea;background:#f8fafc;flex-shrink:0}.boq-sidebar-nav button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#64748b;padding:0 1px;font-size:10.5px;font-weight:700;cursor:pointer}.boq-sidebar-nav button:hover{color:#1e3a5f}.boq-sidebar-nav button.active{border-bottom-color:#2563eb;color:#1d4ed8}.boq-left-shell{background:#fff}.boq-left-shell .to-sidebar-main{flex-direction:column}.boq-left-shell .to-sidebar-main>.boq-document-bar{width:100%;flex:0 0 auto}.boq-left-shell .to-sidebar-main>.boq-item-sheet{flex:1 1 auto;width:100%;height:auto;min-height:0}.to-main.boq-workspace-layout{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.boq-workspace-layout>.to-sidebar-shell{grid-column:1;grid-row:1 / -1;height:100%}.boq-workspace-layout>.to-content{grid-column:2;grid-row:1}.boq-bottom-slot{grid-column:2;grid-row:2;min-width:0;min-height:0;overflow:hidden;background:#fff}.boq-bottom-slot.collapsed{min-height:32px}.boq-sheet-collapsed{display:flex;align-items:center;gap:10px;width:100%;min-height:32px;flex-shrink:0;padding:5px 10px;border:0;border-top:1px solid #cbd5e1;background:#eef2f6;color:#475569;font:inherit;font-size:10px;text-align:left;cursor:pointer}.boq-sheet-collapsed strong{min-width:0;flex:1;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap}.boq-bottom-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;color:#64748b;background:#fff;font-size:11px}.boq-bottom-empty strong{color:#0f172a;font-size:12px}.boq-inspector{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;background:var(--boq-surface);border-left:1px solid var(--boq-border)}.boq-inspector-sheet{--boq-worksheet-max-width: 1360px;border-left:0;border-top:0}.boq-inspector-sheet .boq-inspector-header{align-items:center;padding:4px 8px;min-height:34px}.boq-inspector-sheet .boq-inspector-header>div:first-child{display:flex;align-items:center;gap:8px}.boq-inspector-sheet .boq-inspector-kicker{flex-shrink:0}.boq-inspector-sheet .boq-inspector-title{margin-top:0}.boq-inspector-sheet .boq-inspector-tabs{padding-top:2px}.boq-inspector-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px 9px;background:#eef2f6;border-bottom:1px solid var(--boq-border)}.boq-inspector-header>div:first-child{min-width:0;flex:1}.boq-inspector-kicker{color:#64748b;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.boq-inspector-kicker span{margin-left:4px;color:var(--boq-accent)}.boq-inspector-title{width:100%;min-width:0;margin-top:2px;padding:2px 3px;border:1px solid transparent;border-radius:3px;background:transparent;color:#0f172a;font-size:12px;font-weight:700}.boq-inspector-title:hover,.boq-inspector-title:focus{border-color:var(--boq-border);background:#fff;outline:none}.boq-inspector-tabs{display:flex;align-items:flex-end;gap:2px;padding:5px 7px 0;background:#f8fafc;border-bottom:1px solid var(--boq-border)}.boq-inspector-tabs button{border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;background:transparent;color:#475569;padding:6px 8px;font-size:10px;font-weight:700;cursor:pointer}.boq-inspector-tabs button.active{border-color:var(--boq-border);background:#fff;color:var(--boq-accent);margin-bottom:-1px;padding-bottom:7px}.boq-inspector-body{flex:1;min-height:0;overflow:auto;background:#fff}.boq-source-builder{display:flex;flex-direction:column;gap:7px;padding:9px;background:#f8fafc;border-bottom:1px solid var(--boq-soft-border)}.boq-inspector-sheet .boq-source-builder{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,.8fr);align-items:center;padding:5px 8px}.boq-inspector-sheet .boq-selected-source-preview{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}.boq-inspector-sheet .boq-calculation-sheet{display:flex;flex-direction:column;overflow:hidden}.boq-inspector-sheet .boq-calc-table-wrap{flex:1 1 auto;min-height:54px;overflow:auto}.boq-inspector-sheet .boq-calc-actions,.boq-inspector-sheet .boq-item-result,.boq-inspector-sheet .boq-quick-row-wrap{flex-shrink:0}.boq-source-builder-copy{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--boq-muted)}.boq-source-builder-copy strong{color:#0f172a;font-size:11px}.boq-source-builder-actions{display:flex;gap:5px}.boq-selected-source-preview{display:flex;flex-direction:column;gap:2px;color:var(--boq-green);font-size:9px}.boq-reuse-row{display:flex;gap:5px}.boq-reuse-row select{flex:1;min-width:0;border:1px solid var(--boq-border);border-radius:4px;background:#fff;padding:4px 5px;font-size:10px}.boq-calc-table-wrap{min-width:0;overflow:auto}.boq-calc-grid{display:grid;grid-template-columns:42px minmax(190px,1.7fr) minmax(140px,1fr) 72px 72px 76px 76px 76px 64px 86px 72px;min-width:1040px;border-bottom:1px solid var(--boq-soft-border)}.boq-calc-grid>div{min-width:0;padding:5px;border-right:1px solid var(--boq-soft-border)}.boq-inspector-sheet .boq-calc-grid>div:focus-within{position:relative;z-index:2;box-shadow:inset 0 0 0 2px #2563eb}.boq-calc-header{position:sticky;top:0;z-index:2;background:#eef2f6;color:#64748b;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.boq-calc-row{background:#fff;font-size:10px}.boq-calc-row:hover{background:#fafcff}.boq-calc-row.source-missing{background:#fff7f7}.boq-calc-index{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;color:#64748b;font-size:9px}.boq-calc-description{display:flex;flex-direction:column;gap:3px}.boq-calc-description>input,.boq-calc-fields input,.boq-calc-fields select,.boq-rate-row input,.boq-rate-row select,.boq-reference-card input,.boq-reference-search{min-width:0;width:100%;border:1px solid var(--boq-border);border-radius:3px;background:#fff;color:#1e293b;padding:3px 4px;font:inherit}.boq-calc-description>input{border-color:transparent;background:transparent;font-weight:600}.boq-calc-description>input:hover,.boq-calc-description>input:focus{border-color:var(--boq-border);background:#fff;outline:none}.boq-calc-source-cell,.boq-calc-number-cell,.boq-calc-sign-cell{display:flex;align-items:center}.boq-calc-number-cell{justify-content:flex-end}.boq-calc-cell-input{width:100%;min-width:0;border:1px solid transparent;border-radius:2px;background:transparent;color:#1e293b;padding:4px;font:inherit;text-align:right;font-variant-numeric:tabular-nums}.boq-calc-source-cell .boq-calc-cell-input{text-align:left}.boq-calc-cell-input:hover,.boq-calc-cell-input:focus{border-color:var(--boq-border);background:#fff;outline:none}.boq-cell-kind{color:#64748b;font-size:9px}.boq-quick-row{background:#eff6ff;border-top:2px solid #60a5fa}.boq-quick-row-wrap{overflow-x:auto;background:#eff6ff}.boq-quick-row:hover{background:#eff6ff}.boq-quick-row .boq-calc-index{color:#1d4ed8;font-weight:700}.boq-quick-row .boq-calc-cell-input{min-height:26px;border-color:#93c5fd;background:#fff}.boq-quick-row .boq-quick-description{text-align:left;font-weight:600}.boq-quick-row .boq-cell-kind{color:#2563eb;font-weight:600}.boq-quick-row .boq-row-actions button:disabled{opacity:.35;cursor:default}.boq-inline-source{border:0;background:transparent;color:var(--boq-green);padding:0;text-align:left;font-size:8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boq-inline-source.snapshot{color:#64748b;cursor:default}.boq-row-warning{color:var(--boq-red);font-size:8px;font-weight:700}.boq-calc-fields{display:flex;align-items:flex-end;gap:4px;flex-wrap:wrap}.boq-calc-fields label{display:flex;flex-direction:column;gap:1px;flex:0 1 58px;min-width:44px}.boq-calc-fields label>span{color:#64748b;font-size:7px;font-weight:700;text-transform:uppercase}.boq-calc-fields label:first-child:has(select){flex-basis:112px}.boq-expression-field{flex:1 1 110px!important}.boq-source-value{align-self:center;color:var(--boq-green);font-weight:700;font-variant-numeric:tabular-nums}.boq-source-value.negative{color:var(--boq-red)}.boq-note-hint{color:#64748b;font-style:italic}.boq-sign-toggle{border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;color:var(--boq-green);padding:2px 6px;font-size:8px;font-weight:700;cursor:pointer}.boq-sign-toggle.deduction{border-color:#fecaca;background:#fff1f2;color:var(--boq-red)}.boq-calc-total{display:flex;align-items:center;justify-content:flex-end;color:#0f172a;font-weight:700;font-variant-numeric:tabular-nums}.boq-calc-total.negative{color:var(--boq-red)}.boq-calc-actions{display:flex;gap:5px;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--boq-soft-border)}.boq-item-result{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;background:#eef2f6;color:#475569;font-size:11px}.boq-item-result strong{color:#0f172a;font-size:14px}.boq-item-result-value{display:flex;align-items:center;justify-content:flex-end;gap:12px}.boq-round-up-toggle{display:inline-flex;align-items:center;gap:5px;color:#64748b;font-size:10px;font-weight:700;white-space:nowrap;cursor:pointer;user-select:none}.boq-round-up-toggle input{width:13px;height:13px;margin:0;accent-color:var(--boq-accent);cursor:pointer}.boq-round-up-toggle:hover{color:#334155}.boq-inspector-sheet .boq-item-result{position:sticky;bottom:0;justify-content:flex-end;gap:14px;padding:6px 10px;border-top:1px solid var(--boq-border)}.boq-worksheet-tools{display:flex;align-items:center;gap:6px;min-height:34px;padding:4px 7px;border-bottom:1px solid var(--boq-border);background:#f8fafc;flex-shrink:0}.boq-inspector-sheet .boq-worksheet-tools,.boq-inspector-sheet .boq-formula-bar,.boq-inspector-sheet .boq-worksheet .boq-calc-grid,.boq-inspector-sheet .boq-worksheet .boq-item-result{width:min(100%,var(--boq-worksheet-max-width));box-sizing:border-box;border-right:1px solid var(--boq-border)}.boq-worksheet-source-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.boq-worksheet-tools .boq-reuse-row{min-width:210px;max-width:430px;margin-left:auto;flex:1 1 280px}.boq-worksheet-selection{overflow:hidden;max-width:190px;color:var(--boq-green);font-size:9px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.boq-formula-bar{display:grid;grid-template-columns:126px 34px minmax(180px,1fr) 30px;min-height:30px;border-bottom:1px solid var(--boq-border);background:#fff;flex-shrink:0}.boq-name-box,.boq-fx-label,.boq-formula-bar input{min-width:0;border:0;border-right:1px solid var(--boq-soft-border);background:#fff;color:#334155;padding:5px 7px;font-size:10px}.boq-name-box{overflow:hidden;color:#475569;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.boq-fx-label{color:#64748b;font-family:Georgia,serif;font-size:12px;font-style:italic;font-weight:700;text-align:center}.boq-formula-bar input{border-right:0;outline:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.boq-formula-bar input:focus{box-shadow:inset 0 0 0 2px #2563eb}.boq-worksheet .boq-calc-table-wrap{flex:1 1 auto;min-height:70px;overflow:auto}.boq-worksheet .boq-calc-grid{grid-template-columns:40px minmax(260px,1fr) 78px 72px 82px 82px 82px 48px 92px 62px;min-width:920px}.boq-worksheet .boq-calc-grid>div{min-height:31px;padding:2px 4px;align-items:center}.boq-worksheet .boq-calc-header>div{min-height:25px;padding-top:4px;padding-bottom:4px}.boq-worksheet .boq-calc-row{min-height:31px}.boq-worksheet .boq-calc-row.row-disabled{color:#94a3b8;background:#f8fafc}.boq-worksheet .boq-calc-index{flex-direction:row;justify-content:space-between;gap:3px}.boq-worksheet .boq-calc-index input{width:12px;height:12px;margin:0}.boq-worksheet-description{display:flex;flex-direction:row;align-items:center;gap:3px}.boq-worksheet-description .boq-worksheet-input{flex:1 1 auto;width:auto}.boq-worksheet-input{height:25px;min-width:0;width:100%;border:0;border-radius:0;background:transparent;padding:3px 4px;color:#1e293b;font:inherit;outline:0}.boq-worksheet-input.numeric{font-variant-numeric:tabular-nums;text-align:right}.boq-source-link-icon,.boq-row-kind-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;border:0;border-radius:3px;background:#ecfdf5;color:var(--boq-green);padding:0;font-size:10px;font-weight:700}button.boq-source-link-icon{cursor:pointer}button.boq-source-link-icon:hover{background:#d1fae5}.boq-row-kind-icon{background:#f1f5f9;color:#64748b}.boq-row-kind-icon.formula{color:#2563eb;font-family:Georgia,serif;font-style:italic}.boq-source-metric{width:86px;flex:0 0 86px;border:0;border-left:1px solid var(--boq-soft-border);background:transparent;color:#64748b;padding:2px 16px 2px 4px;font-size:8px;outline:0}.boq-row-warning-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:0 0 16px;border-radius:50%;background:#fee2e2;color:var(--boq-red);font-size:9px;font-weight:800}.boq-worksheet .boq-source-value{width:100%;text-align:right}.boq-worksheet .boq-sign-toggle{width:24px;height:22px;border-radius:3px;padding:0;font-size:13px;line-height:20px}.boq-worksheet-row-actions{gap:0!important;opacity:.35;transition:opacity .12s ease}.boq-calc-row:hover .boq-worksheet-row-actions,.boq-worksheet-row-actions:focus-within{opacity:1}.boq-worksheet-row-actions button{width:18px;height:22px;padding:0;font-size:9px}.boq-worksheet .boq-quick-row{background:#f0fdf4;border-bottom:1px solid var(--boq-border)}.boq-worksheet .boq-quick-row:hover{background:#ecfdf5}.boq-worksheet .boq-quick-row .boq-calc-index{color:#15803d}.boq-worksheet .boq-quick-row .boq-worksheet-input::placeholder{color:#94a3b8}.boq-worksheet .boq-item-result{position:sticky;bottom:0;justify-content:flex-end;gap:14px;min-height:32px;padding:5px 10px;border-top:1px solid var(--boq-border)}.boq-worksheet .boq-item-result strong{font-size:13px}.boq-rate-sheet{padding:9px}.boq-inspector-sheet .boq-rate-sheet{width:100%;max-width:1160px;box-sizing:border-box;padding:7px 8px;border-right:1px solid var(--boq-border)}.boq-rate-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.boq-inspector-sheet .boq-rate-summary{grid-template-columns:minmax(190px,260px) minmax(170px,220px);justify-content:start;gap:12px}.boq-rate-summary label{display:flex;flex-direction:column;gap:3px;color:#64748b;font-size:9px;font-weight:700;text-transform:uppercase}.boq-money-input{display:flex;align-items:center;gap:4px;border:1px solid var(--boq-border);border-radius:4px;background:#fff;padding:3px 5px;color:#64748b}.boq-money-input input{width:100%;min-width:0;border:0;outline:0;text-align:right;font-size:11px}.boq-help-copy{margin:9px 0;color:#64748b;font-size:9px;line-height:1.45}.boq-rate-table{overflow-x:auto;margin:0 -1px 8px;border:1px solid var(--boq-soft-border)}.boq-rate-grid{display:grid;grid-template-columns:minmax(180px,1fr) 110px 70px 70px 82px 70px 90px 30px;min-width:820px}.boq-rate-grid>*{min-width:0;padding:4px;border-right:1px solid var(--boq-soft-border);border-bottom:1px solid var(--boq-soft-border)}.boq-rate-header{background:#eef2f6;color:#64748b;font-size:8px;font-weight:700;text-transform:uppercase}.boq-rate-row{font-size:9px;align-items:center}.boq-rate-row>span{display:flex;align-items:center;justify-content:flex-end;font-weight:700}.boq-rate-row>button{border:0;background:transparent;color:#64748b;cursor:pointer}.boq-rate-empty{min-height:70px}.boq-rate-result{display:flex;flex-direction:column;gap:6px;margin-top:10px;border-top:1px solid var(--boq-soft-border);padding-top:8px}.boq-rate-result>div{display:flex;justify-content:space-between;color:#64748b;font-size:10px}.boq-rate-result strong{color:#0f172a}.boq-rate-result .total{margin-top:2px;padding-top:7px;border-top:1px solid var(--boq-border);font-size:12px}.boq-reference-sheet{padding:9px}.boq-inspector-sheet .boq-reference-sheet{width:100%;max-width:980px;box-sizing:border-box;border-right:1px solid var(--boq-border)}.boq-inspector-sheet .boq-reference-sheet section{max-width:720px}.boq-inspector-sheet .boq-reference-search{max-width:420px}.boq-reference-sheet section+section{margin-top:14px;padding-top:12px;border-top:1px solid var(--boq-soft-border)}.boq-reference-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:7px}.boq-reference-heading>div{display:flex;flex-direction:column;gap:2px}.boq-reference-heading strong{color:#0f172a;font-size:11px}.boq-reference-heading span{color:#64748b;font-size:9px}.boq-reference-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px;border:1px solid var(--boq-soft-border);border-radius:5px;background:#fff;margin-bottom:5px}.boq-reference-card>div:first-child{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.boq-reference-card>div:last-child{flex-shrink:0;display:flex;align-items:center;gap:4px}.boq-reference-card input{border-color:transparent;padding-left:0;font-weight:700}.boq-reference-card input:hover,.boq-reference-card input:focus{border-color:var(--boq-border);padding-left:4px;outline:none}.boq-reference-card span{color:#64748b;font-size:8px}.boq-reference-card.working strong{font-size:10px}.boq-working-value{flex-direction:column;align-items:flex-end!important}.boq-working-value strong{color:#0f172a;font-size:10px}.boq-reference-search{margin-bottom:7px;font-size:10px}.vs-boq-content{flex:1;min-height:0;overflow:hidden}.to-workspace-switch{display:inline-flex;align-items:center;padding:2px;border:1px solid #cbd5e1;border-radius:6px;background:#e2e8f0}.to-workspace-switch button{border:0;border-radius:4px;background:transparent;color:#475569;padding:4px 8px;font-size:11px;font-weight:700;cursor:pointer}.to-workspace-switch button.active{background:#fff;color:#1d4ed8;box-shadow:0 1px 2px #0f172a1f}@media(max-width:1000px){.boq-grid{grid-template-columns:54px minmax(190px,2fr) 82px 82px 56px 76px 64px 96px 102px}.boq-sheet-toolbar{align-items:flex-start}.boq-sheet-actions{flex:1}}@media(max-width:620px){.boq-inspector-sheet .boq-rate-summary{grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr)}}.vs-container.vs-boq-active{background:#e8edf3}.boq-inspector-sheet{--boq-worksheet-max-width: 1200px;background:#e8edf3}.boq-inspector-sheet .boq-inspector-header{min-height:38px;padding:6px 10px;background:#f8fafc}.boq-inspector-heading{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.boq-inspector-item-number{flex:0 0 auto;color:var(--boq-accent);font-size:11px;font-weight:800}.boq-inspector-sheet .boq-inspector-title{width:auto;max-width:520px;flex:1 1 280px;margin:0;font-size:12px}.boq-inspector-summary{display:flex;align-items:baseline;gap:7px;flex:0 0 auto;color:#64748b;font-size:9px}.boq-inspector-summary strong{color:#0f172a;font-size:11px;font-variant-numeric:tabular-nums}.boq-inspector-sheet .boq-inspector-tabs{min-height:37px;padding:5px 8px 0;background:#f8fafc}.boq-inspector-sheet .boq-inspector-tabs button{height:31px;padding:0 12px;font-size:10px}.boq-inspector-sheet .boq-inspector-tabs button.active{padding-bottom:1px}.boq-inspector-sheet .boq-inspector-body{width:min(calc(100% - 20px),var(--boq-worksheet-max-width));min-height:min(210px,calc(100% - 95px));max-height:calc(100% - 95px);flex:1 1 auto;align-self:flex-start;margin:10px 0 10px 10px;border:1px solid #b9c6d5;background:#fff;box-shadow:0 1px 2px #0f172a14}.boq-inspector-sheet .boq-worksheet-tools,.boq-inspector-sheet .boq-formula-bar,.boq-inspector-sheet .boq-worksheet .boq-calc-grid,.boq-inspector-sheet .boq-worksheet .boq-item-result{width:100%;border-right:0}.boq-inspector-sheet .boq-worksheet-tools{min-height:36px;padding:5px 7px}.boq-inspector-sheet .boq-worksheet-source-actions .boq-btn{white-space:nowrap}.boq-link-metric{display:flex;align-items:center;gap:4px;min-width:0;color:#64748b;font-size:9px;font-weight:700}.boq-link-metric select{width:168px;min-width:0;height:27px;border:1px solid var(--boq-border);border-radius:4px;background:#fff;color:#334155;padding:3px 20px 3px 6px;font-size:9px}.boq-inspector-sheet .boq-worksheet-tools .boq-reuse-row{width:260px;min-width:190px;max-width:300px;flex:0 1 260px}.boq-inspector-sheet .boq-formula-bar{grid-template-columns:110px 34px minmax(150px,1fr) 30px;min-height:32px}.boq-inspector-sheet .boq-worksheet .boq-calc-grid{grid-template-columns:36px minmax(210px,1fr) 58px 62px 68px 68px 68px 42px 78px 54px;min-width:760px}.boq-inspector-sheet .boq-source-metric{width:184px;flex-basis:184px;font-size:9px}.boq-inspector-sheet .boq-worksheet .boq-calc-grid>div{min-height:30px;padding:2px 4px}.boq-inspector-sheet .boq-worksheet-description .boq-worksheet-input{text-align:left}.boq-inspector-sheet .boq-worksheet .boq-calc-header>div{min-height:26px}.boq-inspector-sheet .boq-worksheet .boq-quick-row{border-top:0}.boq-inspector-sheet .boq-worksheet .boq-item-result{position:static;min-height:34px;padding:5px 9px}.boq-inspector-sheet .boq-rate-sheet{width:min(calc(100% - 20px),900px);max-width:900px;padding:0;overflow:hidden}.boq-rate-toolbar{display:flex;align-items:center;gap:10px;min-height:46px;padding:7px 9px;border-bottom:1px solid var(--boq-soft-border);background:#f8fafc}.boq-rate-inline-field{display:flex;align-items:center;gap:5px;color:#475569;font-size:9px;font-weight:700;white-space:nowrap}.boq-rate-inline-field input{width:88px;height:27px;border:1px solid var(--boq-border);border-radius:4px;background:#fff;color:#1e293b;padding:3px 6px;font:inherit;text-align:right}.boq-rate-toolbar-spacer{flex:1}.boq-rate-calculated{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.boq-rate-calculated span{color:#64748b;font-size:9px}.boq-rate-calculated strong{color:#0f172a;font-size:13px}.boq-inspector-sheet .boq-rate-table{margin:0;border:0;border-bottom:1px solid var(--boq-soft-border)}.boq-inspector-sheet .boq-rate-grid{grid-template-columns:minmax(210px,1fr) 105px 58px 58px 78px 62px 84px 28px;min-width:710px}.boq-inspector-sheet .boq-rate-grid>*{min-height:31px;padding:3px 5px}.boq-inspector-sheet .boq-rate-row input,.boq-inspector-sheet .boq-rate-row select{height:25px;border:1px solid transparent;border-radius:2px;background:transparent;padding:3px 4px}.boq-inspector-sheet .boq-rate-row input:hover,.boq-inspector-sheet .boq-rate-row input:focus,.boq-inspector-sheet .boq-rate-row select:hover,.boq-inspector-sheet .boq-rate-row select:focus{border-color:#93c5fd;background:#fff;outline:none}.boq-rate-entry-row{background:#f0fdf4}.boq-rate-entry-row:hover{background:#ecfdf5}.boq-rate-entry-row>button:disabled{opacity:.35;cursor:default}.boq-rate-footer{justify-content:flex-end;gap:20px;min-height:34px;padding:5px 9px}.boq-rate-footer span{display:flex;align-items:baseline;gap:6px}.boq-rate-footer strong{font-size:12px}.boq-inspector-sheet .boq-reference-sheet{width:min(calc(100% - 20px),800px);max-width:800px;padding:0;overflow:hidden;background:#f1f5f9}.boq-source-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(320px,1fr);gap:10px;height:100%;min-height:0;padding:10px;overflow:auto}.boq-inspector-sheet .boq-reference-sheet .boq-source-layout section{max-width:none;min-height:270px;margin:0;padding:0;overflow:hidden;border:1px solid var(--boq-border);background:#fff}.boq-inspector-sheet .boq-reference-sheet .boq-source-layout section+section{border-top:1px solid var(--boq-border)}.boq-source-pane-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:35px;padding:5px 8px;border-bottom:1px solid var(--boq-soft-border);background:#f8fafc;color:#0f172a;font-size:10px}.boq-source-preview-title{width:100%;min-width:0;border:1px solid transparent;background:transparent;color:#0f172a;padding:3px 4px;font:inherit;font-weight:700}.boq-source-preview-title:hover,.boq-source-preview-title:focus{border-color:var(--boq-border);background:#fff;outline:none}.boq-source-list-pane .boq-reference-search{width:calc(100% - 16px);margin:8px;padding:5px 7px}.boq-source-list{max-height:230px;overflow:auto;border-top:1px solid var(--boq-soft-border)}.boq-source-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;width:100%;padding:8px;border:0;border-bottom:1px solid var(--boq-soft-border);background:#fff;color:#1e293b;font:inherit;text-align:left;cursor:pointer}.boq-source-list-item:hover{background:#f8fbff}.boq-source-list-item.selected{background:#eaf3ff;box-shadow:inset 3px 0 0 var(--boq-accent)}.boq-source-list-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.boq-source-list-copy strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.boq-source-list-copy small{color:#64748b;font-size:8px}.boq-source-list-value{align-self:start;color:var(--boq-green);font-size:10px;font-variant-numeric:tabular-nums}.boq-source-preview-body{padding:10px}.boq-source-path{margin:0 0 8px;color:#64748b;font-size:8px}.boq-source-preview-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--boq-soft-border);color:#475569;font-size:9px}.boq-source-preview-total strong{color:#0f172a;font-size:15px}.boq-source-meta{display:grid;grid-template-columns:92px minmax(0,1fr);gap:6px;margin:0;padding:10px 0 14px;font-size:9px}.boq-source-meta dt{color:#64748b}.boq-source-meta dd{margin:0;color:#1e293b;font-weight:600}.boq-source-preview-actions{display:flex;gap:6px}.boq-source-preview-actions{flex-wrap:wrap}.boq-source-heading-actions{display:flex;gap:5px;align-items:center}.boq-btn-danger-outline{color:#b42318;border-color:#f0b4ae}.boq-btn-danger-outline:hover:not(:disabled){color:#991b1b;border-color:#dc2626;background:#fff1f2}.boq-source-preview-empty{display:flex;min-height:230px;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#64748b;font-size:9px}.boq-source-preview-empty strong{color:#0f172a;font-size:10px}@media(max-width:760px){.boq-inspector-summary{display:none}.boq-inspector-sheet .boq-inspector-body,.boq-inspector-sheet .boq-rate-sheet,.boq-inspector-sheet .boq-reference-sheet{width:calc(100% - 10px);margin-left:5px}.boq-source-layout{grid-template-columns:1fr}.boq-inspector-sheet .boq-reference-sheet .boq-source-layout section{min-height:190px}}.boq-project-bar{flex:0 0 auto;background:#f8fafc}.boq-workspace-header{display:flex;align-items:center;gap:9px;min-width:0;padding:8px 12px 4px}.boq-workspace-mark{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:9px;background:linear-gradient(145deg,#2f72ee,#1d57c6);box-shadow:0 4px 10px #2563eb2e;color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em}.boq-project-context,.boq-document-context{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:1px}.boq-project-context{max-width:calc(100% - 82px);flex:0 1 auto}.boq-overline{color:#728197;font-size:8.5px;font-weight:800;letter-spacing:.1em;line-height:1.35;text-transform:uppercase}.boq-project-select-wrap{position:relative;display:flex;width:fit-content;max-width:100%;min-width:0;align-items:center}.boq-project-select-wrap select{width:auto;max-width:100%;min-width:0;height:24px;appearance:none;border:0;border-radius:5px;outline:none;background:transparent;color:#172033;padding:0 25px 0 0;font:inherit;font-size:14px;font-weight:750;text-overflow:ellipsis;cursor:pointer}.boq-project-select-wrap select:hover,.boq-project-select-wrap select:focus{color:#1d4ed8}.boq-project-select-wrap>svg{position:absolute;right:4px;width:14px;height:14px;pointer-events:none;color:#708096}.boq-project-folder-btn,.boq-project-menu-btn,.boq-document-actions>button,.boq-document-select{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border:1px solid transparent;border-radius:7px;background:transparent;color:#52647c;cursor:pointer}.boq-project-header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.boq-project-folder-btn,.boq-project-menu-btn{width:28px;height:28px;flex-basis:28px;border-color:#d7e0ea;background:#fff;box-shadow:0 1px 2px #0f172a0d}.boq-project-folder-btn:hover,.boq-project-menu-btn:hover,.boq-document-actions>button:hover,.boq-document-select:hover{border-color:#d3deea;background:#fff;color:#1d4ed8}.boq-project-folder-btn svg,.boq-project-menu-btn svg,.boq-document-actions svg,.boq-project-drawing-count svg{width:16px;height:16px}.boq-document-bar{display:flex;align-items:flex-end;gap:10px;min-height:50px;padding:7px 12px 6px;border-bottom:1px solid #dce3ec;background:#fff}.boq-document-context input{width:100%;min-width:0;height:27px;border:1px solid transparent;border-radius:5px;outline:none;background:transparent;color:#1f2937;padding:1px 5px 1px 0;font:inherit;font-size:14px;font-weight:700}.boq-document-context input:hover,.boq-document-context input:focus{border-color:#c7d4e3;background:#fff;padding-left:5px;box-shadow:0 0 0 3px #2563eb14}.boq-document-actions{display:flex;align-items:center;gap:2px}.boq-document-actions>button{padding:0}.boq-document-select{position:relative}.boq-document-select select{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;opacity:0}.boq-project-status{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px;padding:1px 12px 5px;border-bottom:1px solid #d7e0ea;color:#66758a;font-size:9.5px;font-weight:650}.boq-project-sync,.boq-project-drawing-count{display:inline-flex;align-items:center;gap:6px}.boq-project-status-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#94a3b8}.boq-project-status.synced .boq-project-status-dot{background:#19a463}.boq-project-status.syncing .boq-project-status-dot{background:#f59e0b}.boq-project-status.failed .boq-project-status-dot{background:#dc2626}.boq-project-status.offline .boq-project-status-dot{background:#f59e0b}.boq-save-notice{padding:10px 14px;background:#fff7e8;color:#753c08;border-bottom:1px solid #e8c98e;font-size:13px;flex-shrink:0}.boq-save-notice button{margin:8px 8px 0 0;padding:6px 10px;border:1px solid #c5a265;border-radius:6px;background:#fff;color:#753c08;cursor:pointer}.boq-project-drawing-count{font-weight:600}.boq-project-drawing-count svg{width:12px;height:12px}.boq-borrow-open{border-color:#93b4e8;color:#145dcc}.boq-reference-kind-icon{background:#e8f1ff;color:#155fd1}.boq-calc-boqReference{background:#f5f9ff}.boq-calc-boqReference.row-disabled{color:#5f7189!important;background:#f5f9ff!important}.boq-calc-boqReference .boq-source-value small{color:#718096;font-size:8px;font-weight:700}.boq-borrow-backdrop{position:fixed;z-index:4200;inset:0;display:grid;place-items:center;padding:24px;background:#0f172a6b;backdrop-filter:blur(2px)}.boq-borrow-dialog{--boq-ink: #1f2937;--boq-muted: #64748b;--boq-border: #cbd5e1;--boq-soft-border: #e2e8f0;--boq-accent: #2563eb;--boq-green: #15803d;display:flex;width:min(1060px,calc(100vw - 48px));height:min(680px,calc(100vh - 48px));min-height:500px;overflow:hidden;flex-direction:column;border:1px solid #9fb0c5;border-radius:9px;background:#f5f7fa;box-shadow:0 24px 70px #0f172a4d;color:#1f2937;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.boq-borrow-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 18px 14px;border-bottom:1px solid #c6d1de;background:#fff}.boq-borrow-header h2{margin:0;color:#172033;font-size:18px;line-height:1.2}.boq-borrow-header p{margin:5px 0 0;color:#64748b;font-size:11px}.boq-borrow-close{width:29px;height:29px;border:1px solid transparent;border-radius:5px;background:transparent;color:#64748b;font-size:21px;line-height:1;cursor:pointer}.boq-borrow-close:hover{border-color:#cbd5e1;background:#f1f5f9;color:#0f172a}.boq-bw{width:min(1240px,calc(100vw - 48px));height:min(760px,calc(100vh - 48px))}.boq-bw-target{display:flex;align-items:center;gap:8px;margin-left:auto}.boq-bw-target>span{color:#94a3b8;font-size:10px}.boq-bw-target>strong{padding:3px 8px;border-radius:5px;background:#f1f5f9;color:#334155;font-size:10px;font-weight:600;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.boq-bw-layout{display:flex;min-height:0;flex:1 1 auto}.boq-bw-items{display:flex;width:300px;flex-direction:column;flex-shrink:0;border-right:1px solid var(--boq-soft-border);background:#fff}.boq-bw-search{padding:12px 14px 8px}.boq-bw-search>input{width:100%;height:32px;box-sizing:border-box;padding:0 10px;border:1px solid var(--boq-border);border-radius:6px;background:#f8fafc;color:var(--boq-ink);font:inherit;font-size:11px;outline:none}.boq-bw-search>input:focus{border-color:var(--boq-accent);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.boq-bw-unitfilter{display:flex;align-items:center;gap:7px;padding:0 14px 10px}.boq-bw-legend{display:inline-flex;align-items:center;gap:4px;color:#94a3b8;font-size:9px}.boq-bw-legend>i{width:5px;height:5px;border-radius:50%;background:#d97706}.boq-bw-legend-muted{color:#94a3b8;font-size:9px}.boq-bw-seg{display:flex;overflow:hidden;border:1px solid var(--boq-border);border-radius:5px}.boq-bw-seg>button{padding:4px 9px;border:0;border-left:1px solid var(--boq-border);background:#fff;color:#64748b;font:inherit;font-size:9px;cursor:pointer}.boq-bw-seg>button:first-child{border-left:0}.boq-bw-seg>button[aria-pressed=true]{background:#f1f5f9;color:#334155;font-weight:650}.boq-bw-seg>button:disabled{opacity:.45;cursor:default}.boq-bw-itemlist{min-height:0;overflow:auto;flex:1 1 auto;padding:0 8px 10px}.boq-bw-section{padding:11px 6px 5px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em}.boq-bw-item{display:flex;width:100%;box-sizing:border-box;align-items:baseline;gap:8px;padding:7px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--boq-ink);font:inherit;font-size:11px;text-align:left;cursor:pointer}.boq-bw-item:hover{background:#f8fafc}.boq-bw-item.active{border-color:var(--boq-accent);background:#eff6ff}.boq-bw-item.blocked{background:#f8fafc;cursor:default}.boq-bw-itemno{width:30px;flex-shrink:0;color:var(--boq-accent);font-size:10px;font-weight:650}.boq-bw-item.blocked .boq-bw-itemno{color:#cbd5e1}.boq-bw-itemname{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boq-bw-item.blocked .boq-bw-itemname{color:#94a3b8}.boq-bw-item.active .boq-bw-itemname{font-weight:650}.boq-bw-itemqty{color:var(--boq-green);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}.boq-bw-itemunit{display:inline-flex;align-items:center;gap:3px;width:22px;color:#94a3b8;font-size:9px}.boq-bw-itemunit.mismatch{color:#d97706;font-weight:650}.boq-bw-itemunit>i{width:4px;height:4px;flex-shrink:0;border-radius:50%;background:#d97706}.boq-bw-blocked{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;background:#f1f5f9;color:#64748b;font-size:8px;font-weight:650;white-space:nowrap}.boq-bw-detail{display:flex;min-width:0;flex-direction:column;flex:1 1 auto;background:#f5f7fa}.boq-bw-hero{display:flex;width:calc(100% - 36px);align-items:center;gap:14px;margin:14px 18px 0;padding:15px 18px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.boq-bw-hero:hover{border-color:#bfdbfe}.boq-bw-hero.selected{border-color:var(--boq-accent);background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 0 0 3px #2563eb1f}.boq-bw-hero-id{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:3px}.boq-bw-hero-id>span{color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em}.boq-bw-hero-id>strong{font-size:15px;font-weight:650}.boq-bw-hero-id>em{color:var(--boq-muted);font-size:10px;font-style:normal;font-variant-numeric:tabular-nums}.boq-bw-hero-qty{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.boq-bw-hero-qty>span{color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em}.boq-bw-hero-qty>b{color:var(--boq-green);font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.boq-bw-hero-qty>b>small{color:var(--boq-muted);font-size:14px;font-weight:600}.boq-bw-or{display:flex;align-items:center;gap:10px;padding:14px 18px 8px}.boq-bw-or>span{color:#334155;font-size:11px;font-weight:650}.boq-bw-or>i{height:1px;flex:1 1 auto;background:var(--boq-soft-border)}.boq-bw-or>em{color:#94a3b8;font-size:10px;font-style:normal}.boq-bw-sheet{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;margin:0 18px 14px;overflow:hidden;border:1px solid var(--boq-soft-border);border-radius:8px;background:#fff}.boq-bw-head,.boq-bw-row{display:grid;grid-template-columns:30px minmax(0,1fr) 84px 52px 56px 56px 56px 30px 96px;align-items:center}.boq-bw-head{padding:8px 12px;border-bottom:1px solid var(--boq-soft-border);background:#f8fafc;color:#94a3b8;font-size:8px;font-weight:700;letter-spacing:.05em}.boq-bw-rows{min-height:0;overflow:auto;flex:1 1 auto}.boq-bw-row{width:100%;box-sizing:border-box;padding:8px 12px;border:0;border-bottom:1px solid #f1f5f9;background:transparent;color:var(--boq-ink);font:inherit;font-size:11px;text-align:left;cursor:pointer}.boq-bw-row:hover{background:#f8fbff}.boq-bw-row.selected{background:#f0f7ff}.boq-bw-row.nested{padding-left:26px;background:#fffdfd}.boq-bw-row.nested:hover{background:#fff7f7}.boq-bw-row.group{background:#fffbfb;border-bottom-color:#fecdd3;cursor:default}.boq-bw-check{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;border:1.5px solid var(--boq-border);border-radius:3px;background:#fff;color:#fff;font-size:9px;font-weight:800;line-height:1;cursor:pointer;padding:0}.boq-bw-check.on,.boq-bw-check.part{border-color:var(--boq-accent);background:var(--boq-accent)}.boq-bw-desc,.boq-bw-groupname{display:flex;min-width:0;align-items:center;gap:7px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0}.boq-bw-groupname{cursor:pointer}.boq-bw-link-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--boq-green)}.boq-bw-rowlabel{color:#94a3b8;font-size:9px}.boq-bw-rowname{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.boq-bw-grouphint{min-width:0;overflow:hidden;color:#94a3b8;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.boq-bw-badge{flex-shrink:0;padding:2px 5px;border-radius:4px;background:#fff1f2;color:#be123c;font-size:7px;font-weight:700;letter-spacing:.04em}.boq-bw-caret{flex-shrink:0;color:#94a3b8;font-size:11px;transition:transform .12s ease}.boq-bw-caret.open{transform:rotate(90deg)}.boq-bw-warn{display:inline-flex;width:13px;height:13px;flex-shrink:0;align-items:center;justify-content:center;border-radius:50%;background:#fef3c7;color:#92400e;font-size:9px;font-weight:800;cursor:help}.boq-bw-num{text-align:right;font-variant-numeric:tabular-nums;color:#475569}.boq-bw-cell{border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;font-variant-numeric:tabular-nums;text-align:right;padding:2px 4px;margin:-2px 0;cursor:pointer}.boq-bw-cell:hover{border-color:#bfdbfe;background:#eff6ff}.boq-bw-cell.picked{border-color:var(--boq-accent);background:#dbeafe;box-shadow:inset 0 0 0 1px #2563eb40;font-weight:700}.boq-bw-cell.picked>small{color:#1d4ed8}.boq-bw-num>small{color:#94a3b8;font-size:9px}.boq-bw-num>small.mismatch{color:#d97706;font-weight:700}.boq-bw-source{color:var(--boq-green);font-weight:650}.boq-bw-result{color:var(--boq-ink);font-weight:700}.boq-bw-result.deduction{color:#be123c}.boq-bw-sign{text-align:center;color:var(--boq-green);font-weight:700}.boq-bw-sign.deduction{color:#be123c}.boq-bw-selected{display:flex;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--boq-soft-border);background:#f8fafc;font-size:11px}.boq-bw-selected>span{min-width:0;overflow:hidden;color:var(--boq-muted);text-overflow:ellipsis;white-space:nowrap}.boq-bw-selected>i{flex:1 1 auto}.boq-bw-selected>b{color:var(--boq-green);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.boq-bw-selected>b.deduction{color:#be123c}.boq-bw-empty{margin:0;padding:18px 14px;color:#94a3b8;font-size:11px}.boq-bw-footer{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--boq-soft-border);background:#fff}.boq-bw-foothint{color:var(--boq-muted);font-size:10px}.boq-bw-include{display:inline-flex;align-items:center;gap:6px;color:#475569;font-size:10px;cursor:pointer}.boq-bw-spacer{flex:1 1 auto}.boq-bw-cancel{padding:7px 15px;border:1px solid var(--boq-border);border-radius:6px;background:#fff;color:#334155;font:inherit;font-size:11px;font-weight:600;cursor:pointer}.boq-bw-primary{padding:8px 17px;border:1px solid var(--boq-accent);border-radius:6px;background:var(--boq-accent);color:#fff;font:inherit;font-size:11px;font-weight:650;white-space:nowrap;cursor:pointer}.boq-bw-primary:hover{background:#1d4ed8}.boq-bw-primary:disabled{border-color:var(--boq-border);background:#f8fafc;color:#94a3b8;cursor:default}.boq-bw-hero .boq-bw-primary{padding:10px 18px;font-size:12px}@media(max-width:1000px){.boq-bw-layout{flex-direction:column}.boq-bw-items{width:auto;max-height:220px;border-right:0;border-bottom:1px solid var(--boq-border)}.boq-bw-footer{flex-wrap:wrap}}.boq-xt-dialog{--boq-ink: #1f2937;--boq-muted: #64748b;--boq-border: #cbd5e1;--boq-soft-border: #e2e8f0;--boq-accent: #2563eb;display:flex;width:min(660px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;flex-direction:column;border:1px solid #9fb0c5;border-radius:9px;background:#f5f7fa;box-shadow:0 24px 70px #0f172a4d;color:#1f2937;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.boq-xt-body{min-height:0;overflow:auto;flex:1 1 auto;padding:16px 18px 4px}.boq-xt-group{margin-bottom:16px}.boq-xt-group-title{padding-bottom:8px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-xt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.boq-xt-card{display:flex;width:100%;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--boq-soft-border);border-radius:8px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.boq-xt-card:hover{border-color:#bfdbfe}.boq-xt-card.selected{border-color:var(--boq-accent);box-shadow:0 0 0 3px #2563eb1f}.boq-xt-name{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:var(--boq-ink)}.boq-xt-blurb{color:var(--boq-muted);font-size:10px;line-height:1.45}.boq-xt-tick{display:inline-flex;width:14px;height:14px;flex-shrink:0;align-items:center;justify-content:center;border:1.5px solid var(--boq-border);border-radius:3px;background:#fff;color:#fff;font-size:9px;font-weight:800;line-height:1}.boq-xt-tick.on{border-color:var(--boq-accent);background:var(--boq-accent)}.boq-xt-thumb{overflow:hidden;border:1px solid #e8eef4;border-radius:4px;background:#fff;padding-bottom:4px}.boq-xt-thumb i{display:block;height:100%}.boq-xt-note{margin:0 0 14px;padding:10px 11px;border-radius:7px;background:#eff6ff;color:#334155;font-size:10px;line-height:1.55}.boq-xt-note strong{color:#1d4ed8}.boq-xt-footer{display:flex;align-items:center;gap:9px;padding:12px 18px;border-top:1px solid var(--boq-soft-border);background:#fff}.boq-xt-spacer{flex:1 1 auto}.boq-xt-count{color:#94a3b8;font-size:10px}.boq-xt-group-head{display:flex;align-items:center;justify-content:space-between}.boq-xt-all{padding:2px 8px;border:1px solid var(--boq-border);border-radius:999px;background:#fff;color:#475569;font:inherit;font-size:9px;font-weight:650;cursor:pointer}.boq-xt-all:hover{border-color:var(--boq-accent);color:var(--boq-accent)}.boq-xt-hint{margin:8px 0 0;color:var(--boq-muted);font-size:10px}.boq-calc-number-cell.boq-qty-deduction .boq-calc-cell-input,.boq-calc-number-cell.boq-qty-deduction .boq-source-value{color:var(--boq-red)}.boq-calc-number-cell.boq-qty-deduction .boq-qty-unit{color:#d9a2a2}.boq-qty-unit{flex-shrink:0;margin-left:3px;color:#94a3b8;font-size:8px;font-weight:700}.boq-copied-icon{background:#f1f5f9;color:#64748b}.boq-bw-take{flex-shrink:0;margin-left:4px}.boq-bw-na{color:#cbd5e1}.boq-bw-check:disabled{opacity:.35;cursor:default}.boq-bw-result.addition{color:var(--boq-green)}.boq-fx-help-wrap{position:relative;display:flex;align-items:center;justify-content:center;border-left:1px solid var(--boq-soft-border);background:#fff}.boq-fx-help{display:inline-flex;width:19px;height:19px;align-items:center;justify-content:center;border:1px solid var(--boq-border);border-radius:50%;background:#fff;color:#64748b;font:inherit;font-size:11px;font-weight:700;line-height:1;cursor:pointer}.boq-fx-help:hover{border-color:var(--boq-accent);background:#eff6ff;color:var(--boq-accent)}.boq-fx-shade{position:fixed;inset:0;z-index:60}.boq-fx-pop{position:absolute;top:calc(100% + 7px);right:0;bottom:auto;z-index:61;display:flex;width:420px;max-height:60vh;flex-direction:column;overflow:hidden;border:1px solid var(--boq-border);border-radius:9px;background:#fff;box-shadow:0 18px 50px #0f172a38}.boq-fx-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid var(--boq-soft-border);background:#f8fafc}.boq-fx-head>strong{font-size:12px}.boq-fx-head>span{color:#94a3b8;font-size:10px}.boq-fx-body{min-height:0;overflow:auto;flex:1 1 auto;padding:4px 8px 8px}.boq-fx-group-title{padding:10px 5px 4px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-fx-recipe{display:flex;width:100%;flex-direction:column;gap:2px;padding:7px 8px;border:1px solid transparent;border-radius:6px;background:transparent;font:inherit;text-align:left;cursor:pointer}.boq-fx-recipe:hover{border-color:#bfdbfe;background:#f8fbff}.boq-fx-recipe-top{display:flex;align-items:baseline;gap:8px}.boq-fx-recipe-label{flex:1 1 auto;color:var(--boq-ink);font-size:11px;font-weight:600}.boq-fx-recipe code{flex-shrink:0;padding:1px 5px;border-radius:4px;background:#f1f5f9;color:#1d4ed8;font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.boq-fx-note{color:var(--boq-muted);font-size:10px;line-height:1.4}.boq-fx-foot{padding:10px 13px;border-top:1px solid var(--boq-soft-border);background:#f8fafc}.boq-fx-foot p{margin:0 0 6px;color:#475569;font-size:10px;line-height:1.5}.boq-fx-foot p:last-child{margin-bottom:0}.boq-fx-foot code{color:#1d4ed8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.boq-fx-muted{color:#94a3b8!important}.boq-btn-suggest{border-color:#c7d2fe;background:#eef2ff;color:#4338ca}.boq-btn-suggest:hover{border-color:#a5b4fc;background:#e0e7ff}.boq-row-suggest{color:#6366f1}.boq-row-suggest:hover{background:#eef2ff}.boq-sg-dialog{--boq-ink: #1f2937;--boq-muted: #64748b;--boq-border: #cbd5e1;--boq-soft-border: #e2e8f0;--boq-accent: #2563eb;display:flex;width:min(600px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;flex-direction:column;border:1px solid #9fb0c5;border-radius:9px;background:#f5f7fa;box-shadow:0 24px 70px #0f172a4d;color:#1f2937;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.boq-sg-body{min-height:0;overflow:auto;flex:1 1 auto;padding:14px 18px}.boq-sg-current{margin-bottom:12px;padding:9px 11px;border:1px solid var(--boq-soft-border);border-left:3px solid #94a3b8;border-radius:6px;background:#fff}.boq-sg-current span{display:block;margin-bottom:3px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-sg-current p{margin:0;font-size:12px;line-height:1.45;color:var(--boq-ink)}.boq-sg-ask{display:flex;gap:8px}.boq-sg-ask input{flex:1 1 auto;min-width:0;padding:9px 11px;border:1px solid var(--boq-border);border-radius:6px;background:#fff;font:inherit;font-size:12px;color:var(--boq-ink)}.boq-sg-ask input:focus{outline:none;border-color:var(--boq-accent);box-shadow:0 0 0 3px #2563eb1f}.boq-sg-ask input:disabled{background:#f1f5f9;color:#94a3b8}.boq-sg-error,.boq-sg-status,.boq-sg-hint{margin:10px 0 0;font-size:11px;line-height:1.5}.boq-sg-error{color:#b91c1c}.boq-sg-status{color:var(--boq-muted)}.boq-sg-hint{color:#94a3b8}.boq-sg-results{margin-top:14px}.boq-sg-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-sg-again{border:0;background:none;color:var(--boq-accent);font:inherit;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.boq-sg-again:hover{text-decoration:underline}.boq-sg-results ul{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.boq-sg-results li button{display:flex;width:100%;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--boq-soft-border);border-radius:7px;background:#fff;font:inherit;font-size:12px;line-height:1.45;color:var(--boq-ink);text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.boq-sg-results li button:hover{border-color:#bfdbfe;box-shadow:0 0 0 3px #2563eb1a}.boq-sg-results li button span{flex:1 1 auto}.boq-sg-results li button small{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.boq-sg-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;border-top:1px solid var(--boq-soft-border);background:#fff}.boq-sg-footer small{color:#94a3b8;font-size:10px}.boq-sg-detail{margin-bottom:11px}.boq-sg-detail>span{display:block;margin-bottom:5px;color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-sg-detail-options{display:inline-flex;padding:2px;border:1px solid var(--boq-soft-border);border-radius:7px;background:#eef2f7}.boq-sg-detail-options button{padding:6px 13px;border:0;border-radius:5px;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--boq-muted);cursor:pointer;transition:background .12s ease,color .12s ease}.boq-sg-detail-options button:hover:not(:disabled):not(.selected){color:var(--boq-ink)}.boq-sg-detail-options button.selected{background:#fff;color:var(--boq-accent);box-shadow:0 1px 2px #0f172a1f}.boq-sg-detail-options button:disabled{cursor:default;opacity:.6}.boq-sg-detail>small{display:block;margin-top:5px;color:#94a3b8;font-size:10px}.boq-sg-results li button{align-items:flex-start}.boq-sg-results li button small{margin-top:1px}.boq-sg-results-head em{font-style:normal;color:var(--boq-accent)}.boq-menu-panel{position:fixed;z-index:4000;min-width:210px;max-width:320px;padding:4px;border:1px solid #b8c4d2;border-radius:8px;background:#fff;box-shadow:0 12px 34px #0f172a38;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.boq-menu-row{position:relative}.boq-menu-item{display:flex;width:100%;align-items:center;gap:8px;padding:6px 9px;border:0;border-radius:5px;background:none;font:inherit;font-size:11.5px;color:#1f2937;text-align:left;cursor:pointer}.boq-menu-item:hover:not(:disabled),.boq-menu-item:focus-visible{background:#eef2f7;outline:none}.boq-menu-item:disabled{color:#9aa7b5;cursor:default}.boq-menu-item span{flex:1 1 auto}.boq-menu-item small{flex:0 0 auto;color:#94a3b8;font-size:10px}.boq-menu-item.danger{color:#b91c1c}.boq-menu-item.danger:hover:not(:disabled){background:#fef2f2}.boq-menu-caret{flex:0 0 auto;color:#94a3b8}.boq-menu-separator{height:1px;margin:4px 6px;background:#e6ebf1}.boq-menu-submenu{position:absolute;top:-4px;left:100%;margin-left:2px;max-height:60vh;overflow-y:auto}.boq-item-row{cursor:default}.boq-item-dragging{opacity:.45}.boq-drop-after{box-shadow:inset 0 -2px 0 0 var(--boq-accent, #2563eb)}.boq-drop-into{box-shadow:inset 0 0 0 2px var(--boq-accent, #2563eb)}.boq-row-menu{font-weight:700;letter-spacing:.05em}.boq-sheet-notice{position:fixed;z-index:3500;bottom:18px;left:50%;transform:translate(-50%);max-width:min(460px,calc(100vw - 32px));padding:9px 14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e40af;box-shadow:0 10px 28px #0f172a2e;font-size:11.5px}@media(prefers-reduced-motion:reduce){.boq-item-dragging{opacity:1}}.boq-btn-icon{padding-inline:5px;font-size:13px;line-height:1}.boq-item-sheet-compact .boq-sheet-actions{gap:3px}.boq-pd-dialog{--boq-ink: #1f2937;--boq-muted: #64748b;--boq-border: #cbd5e1;--boq-soft-border: #e2e8f0;--boq-accent: #2563eb;display:flex;width:min(540px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:hidden;flex-direction:column;border:1px solid #9fb0c5;border-radius:9px;background:#f5f7fa;box-shadow:0 24px 70px #0f172a4d;color:#1f2937;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.boq-pd-body{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:11px;overflow:auto;padding:15px 18px}.boq-pd-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.boq-pd-field{display:flex;flex-direction:column;gap:4px}.boq-pd-field>span{color:#94a3b8;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.boq-pd-field input,.boq-pd-field select{padding:8px 10px;border:1px solid var(--boq-border);border-radius:6px;background:#fff;font:inherit;font-size:12px;color:var(--boq-ink)}.boq-pd-field input:focus,.boq-pd-field select:focus{outline:none;border-color:var(--boq-accent);box-shadow:0 0 0 3px #2563eb1f}.boq-pd-note{margin:0;color:#94a3b8;font-size:10.5px}.boq-pd-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:11px 18px;border-top:1px solid var(--boq-soft-border);background:#fff}@media(max-width:560px){.boq-pd-row{grid-template-columns:minmax(0,1fr)}}.boq-projects-dialog{--boq-accent: #2563eb;display:flex;width:min(780px,calc(100vw - 48px));max-height:min(720px,calc(100vh - 48px));overflow:hidden;flex-direction:column;border:1px solid #aebdce;border-radius:12px;background:#f4f7fb;box-shadow:0 28px 80px #0f172a52;color:#172033;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.boq-projects-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px 17px;border-bottom:1px solid #d7e0ea;background:radial-gradient(circle at 84% -40%,rgb(37 99 235 / 14%),transparent 42%),#fff}.boq-projects-kicker{display:block;margin-bottom:4px;color:#2563eb;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.boq-projects-header h2{margin:0;font-size:23px;letter-spacing:-.02em}.boq-projects-header p{margin:6px 0 0;color:#64748b;font-size:11.5px}.boq-projects-commandbar{display:flex;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid #dce4ed;background:#f8fafc}.boq-projects-cloud-note{display:flex;min-width:0;flex:1 1 auto;align-items:center;gap:7px;color:#53657c;font-size:10.5px;font-weight:650}.boq-projects-cloud-note>span{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#16a368;box-shadow:0 0 0 3px #16a3681a}.boq-projects-btn{min-height:32px;padding:6px 11px;border:1px solid #cbd6e3;border-radius:7px;background:#fff;color:#334155;font:inherit;font-size:10.5px;font-weight:750;cursor:pointer}.boq-projects-btn:hover:not(:disabled){border-color:#91a6bf;background:#f8fbff}.boq-projects-btn.primary{border-color:#2563eb;background:#2563eb;color:#fff}.boq-projects-btn.primary:hover:not(:disabled){background:#1d4ed8}.boq-projects-btn:disabled{opacity:.55;cursor:default}.boq-projects-list{display:flex;min-height:240px;flex:1 1 auto;flex-direction:column;gap:9px;overflow:auto;padding:14px 16px 18px}.boq-project-card{display:flex;align-items:stretch;border:1px solid #d4dee9;border-radius:10px;background:#fff;box-shadow:0 2px 7px #0f172a0a;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.boq-project-card:hover{border-color:#9eb4cc;box-shadow:0 7px 18px #0f172a14;transform:translateY(-1px)}.boq-project-card.active{border-color:#75a3f7;box-shadow:inset 3px 0 #2563eb,0 3px 10px #2563eb14}.boq-project-card-main{display:flex;min-width:0;flex:1 1 auto;align-items:center;gap:12px;padding:12px 14px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.boq-project-card-mark{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:10px;background:#e9f1ff;color:#1d5fd1;font-size:12px;font-weight:850;letter-spacing:.04em}.boq-project-card-copy{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:2px}.boq-project-card-copy>span{overflow:hidden;color:#77869a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.boq-project-card-title{display:flex;align-items:center;gap:7px}.boq-project-card-title strong{overflow:hidden;color:#1f2937;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.boq-project-card-title small{padding:2px 6px;border-radius:999px;background:#e5f7ef;color:#087a50;font-size:8px;font-weight:800;text-transform:uppercase}.boq-project-card-stats{color:#53657c!important;font-weight:650}.boq-project-card-date{flex:0 0 auto;color:#7b8a9d;font-size:9.5px;white-space:nowrap}.boq-project-card-actions{display:flex;align-items:center;gap:2px;padding:8px 10px 8px 4px;border-left:1px solid #edf1f5}.boq-project-card-actions button{padding:5px 7px;border:1px solid transparent;border-radius:5px;background:transparent;color:#53657c;font:inherit;font-size:9.5px;font-weight:700;cursor:pointer}.boq-project-card-actions button:hover{border-color:#d6e0ea;background:#f8fafc;color:#1d4ed8}.boq-project-card-actions button.danger:hover{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.boq-projects-footer{display:flex;justify-content:space-between;gap:16px;padding:10px 17px;border-top:1px solid #d7e0ea;background:#fff;color:#718096;font-size:9.5px}@media(max-width:680px){.boq-projects-commandbar{flex-wrap:wrap}.boq-projects-cloud-note{flex-basis:100%}.boq-project-card{flex-direction:column}.boq-project-card-actions{justify-content:flex-end;border-top:1px solid #edf1f5;border-left:0}.boq-project-card-date{display:none}.boq-projects-footer span:last-child{display:none}}
