.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:9999;display:flex;align-items:center;justify-content:center;animation:help-fade-in .2s ease-out}.help-dialog{background:#fff;border-radius:8px;box-shadow:0 8px 24px #0000001f;width:900px;max-width:96vw;height:85vh;max-height:85vh;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:#1e293b;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:216px;min-width:216px;background:#f8fafc;border-right:1px solid #e2e8f0;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column}.help-topic{background:none;border:none;text-align:left;padding:8px 14px;font-size:11.5px;font-weight:500;color:#64748b;cursor:pointer;font-family:inherit;transition:all .15s;border-left:3px solid transparent;line-height:1.3}.help-topic:hover:not(.active){background:#f1f5f9;color:#334155}.help-topic.active{background:#eff6ff;color:#2563eb;border-left-color:#2563eb;font-weight:600}.help-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}.help-stage{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin:12px 16px 0;position:relative;overflow:hidden;aspect-ratio:3 / 2;flex:1;min-height:0}.help-stage svg{width:100%;height:100%;display:block}.help-body{padding:10px 16px 6px}.help-scene-title{font-size:13px;font-weight:600;color:#1e293b;margin:0 0 3px}.help-scene-desc{font-size:12px;color:#64748b;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)}}@keyframes help-cursor-move{0%{transform:translate(var(--cx0),var(--cy0))}to{transform:translate(var(--cx1),var(--cy1))}}@keyframes help-click-ripple{0%{r:0;opacity:.5}to{r:12;opacity:0}}@keyframes help-draw-line{0%{stroke-dashoffset:var(--line-len, 200)}to{stroke-dashoffset:0}}@keyframes help-fade-in-el{0%{opacity:0}to{opacity:1}}@keyframes help-fade-out{0%{opacity:1}to{opacity:0}}@keyframes help-callout-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}70%{transform:translate(-50%,-50%) scale(1.15)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes help-label-up{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes help-fill-in{0%{fill-opacity:0}to{fill-opacity:.25}}@keyframes help-stamp{0%{transform:translate(var(--sx),var(--sy)) scale(0);opacity:0}60%{transform:translate(var(--sx),var(--sy)) scale(1.3);opacity:1}to{transform:translate(var(--sx),var(--sy)) scale(1);opacity:1}}@keyframes help-btn-highlight{0%{fill-opacity:0}to{fill-opacity:1}}@keyframes help-slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes help-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes help-progress-fill{0%{width:0}to{width:var(--pw, 50px)}}.help-replay{position:absolute;bottom:6px;right:6px;background:#ffffffe6;border:1px solid #e2e8f0;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px;color:#64748b;transition:all .15s;z-index:2}.help-replay:hover{background:#fff;color:#3b82f6;border-color:#3b82f6}.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:#0000000f}.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;-webkit-user-select:none;user-select:none;padding:4px;gap:4px;background:#e2e8f073}.library-picker-modal .colview-pane{flex:0 0 auto;max-height:140px;min-height:44px;overflow-y:auto;padding:0;border:1px solid #c4cad3;border-radius:3px;background:#fff}.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:#ccc;border-radius:3px}.library-picker-modal .colview-pane::-webkit-scrollbar-thumb:hover{background:#aaa}.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:#f8fafceb}.library-picker-modal .colview-row.selected{background:#fef3c7d9;border-left-color:#d97706}.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:#e6f0e6f5;color:#2e7d32;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:#eef2f7;border-color:#d6d9de;color:var(--accent-blue, #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:#ccc;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:#fff;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:0 4px 12px #0000001a}.dp-desc-option{display:flex;align-items:center;padding:4px 8px;font-size:11px;cursor:pointer}.dp-desc-option:hover{background:#f0f4ff}.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:#bbb;cursor:pointer;font-size:13px;padding:0 2px;line-height:1;flex-shrink:0}.dp-desc-option-del:hover{color:#e53e3e}.dp-desc-clear{display:flex;align-items:center;gap:6px;padding:4px 8px;border-top:1px solid var(--border);font-size:10px;color:#888}.dp-desc-clear-btn{background:none;border:none;color:#888;cursor:pointer;font-size:10px;padding:0}.dp-desc-clear-btn:hover{color:#e53e3e}.dp-desc-clear-yes{background:#e53e3e;color:#fff;border:none;border-radius:3px;padding:1px 6px;font-size:10px;cursor:pointer}.dp-desc-clear-no{background:none;border:1px solid #ccc;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:#ccc;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:#f8f9fb}.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:#fff}.dp-grid-input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 2px #2563eb38}.dp-grid-input::placeholder{color:#ccc;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:#4caf50;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-row-linked-highlight{background:#dbeafe!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:#c62828!important}.dp-row-delete{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#ccc;font-size:10px;border-radius:2px;cursor:pointer;transition:color var(--transition),background var(--transition)}.dp-row-delete:hover{color:#c62828;background:#fef0f0}.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;-webkit-user-select:none;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-alt, #f5f5f5);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(--bg);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;top:0;right:0;bottom:0;left:0;z-index:40}.dp-page-pop{position:fixed;z-index:50;width:220px;max-width:80vw;padding:12px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #0f172a38;display:flex;flex-direction:column;gap:10px}.dp-page-pop-title{font-size:12px;font-weight:700;color:#1f2937}.dp-page-pop-row{display:flex;align-items:center;gap:8px;font-size:12px}.dp-page-pop-label{color:#64748b;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:#fff}.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:#f5f5f5;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:#ccc;border-radius:2px}.dp-queue-item{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#fff;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:#ccc;font-size:10px;border-radius:2px;cursor:pointer;flex-shrink:0}.dp-queue-remove:hover{color:#c62828;background:#fef0f0}.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:#e8f5e9;color:#2e7d32;border-color:#a5d6a7}.dp-btn-add-list:hover:not(:disabled){background:#c8e6c9;border-color:#66bb6a}.dp-cell-selected{background:#dbeafe;border-left:3px solid #2563eb}.dp-cell-selected .dp-grid-input{background:#eff6ff;border-color:#60a5fa;box-shadow:inset 0 0 0 1px #2563eb40}.dp-col-clickable{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:2px;transition:color var(--transition),background var(--transition)}.dp-col-clickable:hover{color:#1d4ed8;background:#dbeafe}.dp-col-selected{color:#1d4ed8;background:#dbeafe;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:#dbeafe;color:#1d4ed8}.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 #60a5fa;border-radius:4px;font:inherit;font-size:12.5px;outline:none}.dp-fill-pop-apply{padding:6px 12px;border:0;border-radius:4px;background:#2563eb;color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.dp-fill-pop-apply:hover{background:#1d4ed8}.tm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:24px}.tm-dialog{position:relative;display:flex;flex-direction:column;width:min(940px,calc(100vw - 48px));height:min(660px,calc(100vh - 48px));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;-webkit-user-select:none;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:#dc2626}.tm-toolbar-btn.danger:hover{border-color:#dc2626;background:#fef2f2;color:#b91c1c}.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;-webkit-user-select:none;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:#fef2f2;color:#dc2626}.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:#b91c1c}.tm-picker-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#0f172a29;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:#15803d}.tm-io-status.error{color:#b91c1c}.tm-file-drop-overlay{position:absolute;top:0;right:0;bottom:0;left: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:0 8px 24px #0f172a2e}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}:root{--brand: #1e293b;--brand-light: #334155;--brand-dark: #0f172a;--accent: #3b82f6;--accent-light: #60a5fa;--accent-bg: #eff6ff;--surface: #ffffff;--surface-hover: #f8fafc;--surface-selected: #eff6ff;--text: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--radius: 8px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 8px 24px rgba(0,0,0,.12);--transition: .15s ease;--font: "SF Pro Display", "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "SF Mono", "JetBrains Mono", "Consolas", "Courier New", monospace}.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,#fffffffa,#f8fafcfa);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,#f8fafcfa,#f1f5f9f2);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:#ffffffe0;border-radius:10px;cursor:pointer;color:var(--brand-light);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:#fff;border-color:#3b82f624;color:var(--brand);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:#ffffffe6;color:var(--brand-light);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:#fff;border-color:#3b82f624;color:var(--brand);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:#333;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:#22c55e;margin-right:4px;vertical-align:middle}.to-toolbar-scale{color:var(--brand-light);font-size:11px;font-weight:700;padding:0 9px;height:26px;display:inline-flex;align-items:center;background:#ffffffeb;border:1px solid rgba(148,163,184,.22);border-radius:999px;box-shadow:0 1px 1px #0f172a05}.to-toolbar-optimized{color:#15803d;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-cloud{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:11px;padding:0 9px;height:26px;background:#ffffffb8;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:#fffffff7;border:1px solid rgba(148,163,184,.14);border-radius:14px;box-shadow:0 10px 24px #0f172a1a;-webkit-backdrop-filter:blur(14px);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,#fffffffa,#f7fafcf0)}.to-menu-kicker{color:#90a0b6;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(--brand);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:#94a3b8;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(--brand-light);transition:background var(--transition),color var(--transition)}.to-menu-item:hover{background:#eff6ffad}.to-menu-item.active{background:#eff6ffe6;color:#2458d6}.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:#eff4ffe6;color:var(--accent);font-size:12px;font-weight:800;line-height:1}.to-menu-item-icon.slate{background:#e2e8f0cc;color:#64748b}.to-menu-item-icon.green{background:#22c55e1a;color:#16a34a}.to-menu-item-label{min-width:0}.to-menu-item-meta{font-size:10px;font-weight:700;color:#8da0b8}.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 rgba(248,113,113,.14);background:#fef2f2d6;color:#dc4b4b;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:#fef2f2;color:#ef4444}.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:#d0d0d0}.pdf-viewer-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);font-size:16px;background:#e8e8e8}.pdf-viewer-empty small{font-size:12px;color:var(--text-muted)}.pdf-loading-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10}.pdf-spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--brand);border-radius:50%;animation:pdf-spin .7s linear infinite}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;background:#ffffffa6}.pdf-loading-card{background:#fff;border-radius:10px;box-shadow:0 8px 30px #00000026;padding:18px 22px;min-width:220px;text-align:center}.pdf-loading-stage{font-size:13px;font-weight:600;color:#1e293b;margin-bottom:12px}.pdf-progress-row{display:flex;align-items:center;gap:10px}.pdf-progress-bar{flex:1;height:6px;background:#e2e8f0;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:#475569;min-width:32px;text-align:right}.pdf-drop-overlay{position:fixed;top:0;right:0;bottom:0;left: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(--brand);pointer-events:none}.pdf-no-calibration{position:absolute;bottom:0;left:0;right:0;padding:8px 16px;background:#fff3e0;border-top:2px solid #fb8c00;color:#e65100;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:#ffffffeb;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:#8a8886;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,#fffffffa,#f7fafcfa);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,#fffffff5,#f5f8fceb);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 rgba(191,219,254,.55);background:#ffffffeb;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #0f172a0a;font-size:10.5px;font-weight:700;color:#56677f;cursor:pointer;-webkit-user-select:none;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;top:0;right:0;bottom:0;left: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:#fffffffa;color:#315ed6;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:#315ed6}.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:#56677f;background:#ffffffeb;border:1px solid rgba(191,219,254,.55);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:#fffffffa;color:#315ed6;border-color:#60a5fa7a;box-shadow:inset 0 1px #fffffff0,0 8px 18px #3b82f614}.vs-header-dropdown-btn.active{background:#eff6fff2;color:#315ed6;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{position:absolute;top:100%;left:0;margin-top:8px;background:#fffffffa;border:1px solid rgba(148,163,184,.18);border-radius:14px;box-shadow:0 18px 40px #0f172a1f;min-width:150px;z-index:100;padding:6px;-webkit-backdrop-filter:blur(14px);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;-webkit-user-select:none;user-select:none;white-space:nowrap;color:#314255;border-radius:10px}.vs-col-menu-item:hover{background:#eff6ffd9}.vs-col-menu-item input{margin:0;cursor:pointer;accent-color:#4f7cff}.vs-header-dropdown-btn.vs-filter-on{color:#1d4ed8;background:#eff6fff2;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:#314255;background:none;border:none;border-radius:10px;text-align:left}.vs-page-menu-item:hover{background:#eff6ffd9}.vs-page-menu-active{background:#dbeafee6;color:#1d4ed8}.vs-page-menu-label{overflow:hidden;text-overflow:ellipsis}.vs-page-menu-count{flex-shrink:0;color:#94a3b8;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:#ffffffeb;color:#55677f;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:#1f2e43}.vs-btn:disabled{opacity:.45;cursor:default;transform:none;box-shadow:inset 0 1px #ffffffe6}.vs-btn-export{border-color:#22c55e2e;background:#f0fdf4f0;color:#17914b}.vs-btn-export:hover{background:#dcfce7fa;border-color:#22c55e4d;color:#15803d}.vs-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.vs-btn-primary:hover{background:var(--accent-light)}.vs-btn-danger{color:#dc4b4b;border-color:#f8717138;background:#fef2f2f0;padding:0 10px}.vs-btn-danger:hover{background:#fee2e2fa;border-color:#f8717157}.vs-btn-add-dim{border-color:#4f7cff33;background:#eff4fff5;color:#4366da}.vs-btn-add-dim:hover{background:#e0eafffa;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,#fbfdfffa,#f6f9fdfa)}.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,#f9fbfffa,#f1f5fbf5);border-top:1px solid rgba(255,255,255,.9);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:#7b8ca5;-webkit-user-select:none;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:#dbeafecc}.vs-grid-filter-row{background:#f1f5fbd9;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:#1e293b;border:1px solid rgba(148,163,184,.5);border-radius:4px;background:#fff}.vs-filter-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.vs-filter-input::placeholder{color:#94a3b8}.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 #5b83f7}.vs-resizing{cursor:col-resize!important}.vs-resizing *{cursor:col-resize!important;-webkit-user-select:none!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,#fffffff2,#f8fafdfa)}.vs-grid-body::-webkit-scrollbar{width:6px}.vs-grid-body::-webkit-scrollbar-thumb{background:#94a3b880;border-radius:999px}.vs-grid-row{display:flex;transition:background .18s ease,box-shadow .18s ease}.vs-grid-row:hover{background:#f3f7fdf2}.vs-row-selected{background:#edf4fffa!important;box-shadow:inset 2px 0 #4f7cff}.vs-row-highlighted{background:#dbeafec7!important;box-shadow:inset 3px 0 #4f7cff}.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:#4f7cff}.vs-cell-num{color:#7b8ca5;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,#fffffffa,#f2f6fcfa);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:#334155}.vs-cell-unit{color:#63748b;font-size:11px;font-weight:700;letter-spacing:.02em}.vs-cell-page{color:#64748b;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:#fffffff5;font-family:var(--font);font-size:12px;padding:5px 8px;outline:none;border-radius:10px}.vs-label-input:focus{background:#fff;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:#233247}.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;top:0;right:0;bottom:0;left:0;background:#00000059;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}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-light);background:#fafafa}.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(--bg);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:#f0c040;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:#f0c040}.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 rgba(0,0,0,.15);background:#ffffffe6;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:#fff;box-shadow:0 2px 10px #0000002e;color:var(--accent)}.mouse-help-card{position:absolute;bottom:36px;right:0;background:#fff;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:#ccc;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}.to-sidebar-shell{position:relative;flex:0 0 auto;display:flex;flex-direction:column;height:100%;min-height:0;background:#fafafa;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:#fffffff0;box-shadow:0 16px 40px #0f172a29,inset 0 1px #ffffffb3;-webkit-backdrop-filter:blur(16px);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:#94a3b8;letter-spacing:.11em;line-height:1.1;text-transform:uppercase;white-space:nowrap}.markup-options-name{font-size:13px;font-weight:850;color:#0f172a;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:#f1f5f9e6}.markup-segmented button{height:24px;padding:0 9px;border:0;border-radius:999px;background:transparent;color:#64748b;font-size:11px;font-weight:800;font-family:var(--font);cursor:pointer}.markup-segmented button.active{color:#fff;background:#2563eb;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 #2563eb,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:#64748b;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:#2563eb}.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:#fff;color:#0f172a;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:#fafafa;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-list{display:flex;flex-direction:column}.ds-drawing-row{position:relative}.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:#3b82f6;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:#94a3b8;flex-shrink:0;cursor:grab}.ds-item:hover .ds-drawing-drag-handle,.ds-item.dragging .ds-drawing-drag-handle{color:#64748b}.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:#94a3b8;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:#eff6ffbd;color:#315ed6;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:#dbeafef2;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:#22c55e;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:#c62828}.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:#fff;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:#888}.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:#fff;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:#c62828}.ds-ctx-danger:hover{background:#fbe9e7}.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:#fafafa;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:#fafafa;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:#fff;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 #fff,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:#fff;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:#fff;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:#fff;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:#fffffffa}.vs-grid-row-segment{background:#f9fbffeb;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:#667892;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:#7b8ca5;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:#ffffffd1;cursor:pointer;font-size:10px;color:#71839b;flex-shrink:0;border-radius:6px;padding:0;box-shadow:inset 0 1px #ffffffd9,0 1px 2px #0f172a0a}.vs-chevron:hover{background:#eff6ffeb;color:#315ed6;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,#fffffffa,#f2f6fcfa);cursor:pointer;flex-shrink:0;border-radius:7px;padding:0;opacity:.6;color:#72849c;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:#315ed6;border-color:#60a5fa42;background:linear-gradient(180deg,#eff6fff5,#e0eafff5)}.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,#fffffffa,#f2f6fcfa);border-radius:7px;cursor:pointer;font-size:16px;font-weight:700;line-height:1;color:#72849c;transition:all var(--transition);letter-spacing:1px;box-shadow:inset 0 1px #ffffffeb,0 1px 2px #0f172a0a}.vs-menu-trigger:hover{background:#eff6fff5;color:#315ed6;border-color:#60a5fa4d}.vs-menu-trigger.open{background:#eff6fffa;color:#315ed6;border-color:#60a5fa57}.vs-dropdown-overlay{position:fixed;top:0;right:0;bottom:0;left: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:#fffbeb;color:#d97706}.vs-dropdown-icon.dim{background:var(--accent-bg);color:var(--accent);font-size:11px}.vs-dropdown-icon.fill{background:#e6f0e6;color:#2e7d32;font-weight:700}.vs-dropdown-icon.lineitem{background:#ecfdf5;color:#047857;font-size:10px;letter-spacing:-.02em}.vs-dropdown-icon.rename{background:#eef2ff;color:#4f46e5;font-size:10px}.vs-dropdown-icon.delete{background:#fef2f2;color:#ef4444}.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:#fef2f2;color:#ef4444}.vs-dropdown-item-hint{margin-left:auto;font-size:10px;color:#999;font-weight:400}.vs-dropdown-item-hint-sub{display:block;font-size:10px;color:#999;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:#c62828}.vs-ded-badge{display:inline-block;font-size:8px;font-weight:700;color:#fff;background:#c62828;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(--brand-light);background:#0078d40f}.vs-cell-wallht-set{color:var(--text-primary);border-color:var(--brand-light);background:#0078d40a}.vs-wallht-input{width:52px;border:1px solid var(--brand-light);border-radius:3px;background:#fff;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:#b7791f;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}.wall-ht-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:9999}.wall-ht-prompt{background:#fff;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:#888;margin-bottom:10px}.wall-ht-prompt-row{display:flex;gap:6px;align-items:stretch}.wall-ht-prompt-input{flex:1;min-width:0;padding:5px 8px;border:1px solid #ccc;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 #ccc;border-radius:4px;overflow:hidden}.wall-ht-unit-btn{padding:4px 8px;font-size:12px;font-weight:600;border:none;background:#f5f5f5;color:#666;cursor:pointer;min-width:32px}.wall-ht-unit-btn.active{background:var(--brand, #0078d4);color:#fff}.wall-ht-unit-btn:not(.active):hover{background:#e8e8e8}.wall-ht-prompt-preview{font-size:11px;color:#555;margin-top:6px;text-align:right}.wall-ht-prompt-preview strong{color:#1a1a1a}.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:#eee;color:#333}.wall-ht-prompt-secondary{background:#f8fafc;color:#334155;border:1px solid #cbd5e1}.wall-ht-prompt-secondary:hover{background:#eef2f7}.wall-ht-prompt-clear{background:#fff0f0;color:#c62828;border:1px solid #f5c6c6}.wall-ht-prompt-clear:hover{background:#fce4e4}.wall-ht-prompt-apply{background:var(--brand, #0078d4);color:#fff}.wall-ht-prompt-apply:hover{opacity:.9}.vs-cell-gross{font-size:10px;color:#888;margin-left:4px;font-weight:400}.vs-session-bar-deduction{background:linear-gradient(90deg,#fbe9e7,#fff3e0)!important;border-bottom-color:#ffccbc!important}.vs-session-bar-deduction .vs-session-done{border-color:#c62828;color:#c62828}.vs-session-bar-deduction .vs-session-done:hover{background:#fbe9e7}.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:#7b8ca5;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:#d15a5a;border-color:#f871712e;background:linear-gradient(180deg,#fffafafa,#fff2f2fa)}.vs-action-delete:hover{color:#c63b3b;border-color:#f871714d;background:linear-gradient(180deg,#fff4f4fa,#fee2e2fa);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:#fffffffa;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;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateY(-50%)}.vs-confirm-actions:before{content:"";position:absolute;top:50%;right:-6px;width:10px;height:10px;background:#fffffffa;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-label{color:#c63b3b;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:#f8fafcfa;color:#475569}.vs-confirm-no:hover{transform:translateY(-1px);background:#f1f5f9fa;border-color:#94a3b847}.vs-session-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(90deg,#e8f5e9,#f1f8e9);border-bottom:1px solid #c8e6c9;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 #4caf50;border-radius:var(--radius-sm);background:#fff;color:#2e7d32;cursor:pointer;transition:background var(--transition)}.vs-session-done:hover{background:#e8f5e9}.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:#fff5f5f5;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:#64748b;font-size:11px}.pdf-ctx-menu{position:fixed;z-index:3000;width:fit-content;max-width:min(252px,calc(100vw - 16px));overflow:hidden;border-radius:14px;border:1px solid rgba(30,41,59,.08);background:#fffffff5;box-shadow:0 12px 28px #0f172a24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdf-ctx-menu-header{padding:10px 12px 8px;border-bottom:1px solid rgba(30,41,59,.08);background:#ffffffc7}.pdf-ctx-menu-kicker{margin-bottom:6px;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8794a9}.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:#22314a;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:#2455c2;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:#6a7890}.pdf-ctx-menu-section{padding:4px}.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-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;background:#3b82f61a;color:#2f6cf6}.pdf-ctx-menu-icon svg{width:13px;height:13px}.pdf-ctx-menu-icon-accent{background:#3b82f61f;color:#2455c2}.pdf-ctx-menu-icon-success{background:#2e8b571f;color:#2e8b57}.pdf-ctx-menu-icon-warning{background:#a073171f;color:#a07317}.pdf-ctx-menu-icon-danger{background:#d03d461f;color:#d03d46}.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:#18263a}.pdf-ctx-menu-help{display:block;margin-top:2px;font-size:11px;line-height:1.35;color:#6a7890}.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:#7b889c;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:#c53030}.pdf-ctx-menu-sep{height:1px;background:#1e293b14;margin:1px 0}.optimize-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.optimize-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:24px 32px;min-width:320px;text-align:center}.optimize-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}.optimize-subtitle{font-size:12px;color:var(--text-secondary);margin-bottom:16px}.optimize-bar-track{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.optimize-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.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:#c62828}.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;top:0;right:0;bottom:0;left:0;z-index:80;background:#0f172a29;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:#fff3e0;border-top:1px solid #ffe0b2;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:#c62828;color:#fff;border-color:#c62828}.ds-confirm-yes:hover{background:#b71c1c}.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:#fff;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:#555;pointer-events:none;-webkit-user-select:none;user-select:none}.autosave-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.autosave-dot.saved{background:#22c55e}.autosave-dot.dirty{background:#f59e0b}.autosave-dot.saving{background:#3b82f6;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:#8a8886;border-top:1px solid var(--border);background:var(--bg-primary);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:#475569;border-top:1px solid var(--border);background:#e2e8f0;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 #cbd5e1;background:#fff;color:#1e293b;font-size:10px;font-weight:500;cursor:pointer;white-space:nowrap}.account-footer-btn:hover{background:#f1f5f9}.page-nav-bar{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:3px 10px;background:linear-gradient(180deg,#fffffff5,#f5f8fceb);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:#55677f;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:#53657d;font-size:12px;letter-spacing:.01em}.pnb-scale-line{display:inline-block;width:52px;height:2px;border-radius:999px;background:#374151cc;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:#374151cc;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:#6b7d95;font-size:11px;font-weight:600}.pnb-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pnb-status-dot.saved{background:#22c55e}.pnb-status-dot.dirty{background:#f59e0b}.pnb-status-dot.saving{background:#3b82f6;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:#ffffffd6;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:#ffffffe6;font-size:10px;color:#6b7d95;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:#eff6fff5;color:#315ed6;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:#fffc;font-size:12px;font-weight:700;color:#334155;box-shadow:inset 0 1px #ffffffeb}.pnb-page-dot{width:8px;height:8px;border-radius:50%;background:#22c55e}.pnb-zoom-group{display:flex;align-items:center;gap:3px;background:#ffffffd6;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:#ffffffe6;padding:0 6px;height:22px;min-width:22px;font-size:13px;font-weight:700;color:#6b7d95;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:#eff6fff5;color:#315ed6;border-color:#60a5fa47;transform:translateY(-1px)}.pnb-zoom-val{font-size:12px;font-weight:700;color:#334155;min-width:46px;text-align:center;-webkit-user-select:none;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:#ffffffe0;font-size:11px;color:#6b7d95;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:#eff6fff5;color:#315ed6;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:#ffffffe0;border:1px solid rgba(148,163,184,.14);border-radius:8px;padding:0;font-size:14px;cursor:pointer;color:#6b7d95;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:#eff6fff5;color:#315ed6;border-color:#60a5fa47;transform:translateY(-1px)}.pnb-pan-btn.active{background:#eff4fff5;border-color:#4f7cff42;color:#2563eb;box-shadow:inset 0 1px #ffffffeb,0 4px 12px #4f7cff1f}.pnb-sync{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#6b7d95;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 #dbeafe;border-radius:10px;background:#eff6ff;color:#1e3a8a;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:#2563eb;background:#eff6ffeb;border:1px solid rgba(191,219,254,.92);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:#f0fdf4b3}.vs-mlist-divider-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#15803d}.vs-grid-row-mlist{background:#f4fcf6f5;border-left:3px solid rgba(34,197,94,.68);font-size:12px;cursor:default}.vs-grid-row-mlist:hover{background:#e8f9ecfa}.vs-mlist-num{font-size:10px;color:#666;font-weight:600}.vs-mlist-icon{color:#16a34a;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:#7b8ca5;font-weight:500;margin-left:4px}.vs-mlist-value{font-weight:700;color:#15803d!important}.vs-grid-row-mlist-sub{background:#f9fcf5fa;border-left:3px solid rgba(132,204,22,.34);font-size:11px}.vs-grid-row-mlist-sub:hover{background:#f2f8e2fa}.vs-mlist-sub-dims{display:flex;gap:8px;padding-left:12px;font-family:var(--mono);font-size:11px;color:#555}.vs-mlist-sub-t{color:#888;min-width:28px}.vs-mlist-sub-t:after{content:" ×";color:#aaa}.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:#f4f7fceb;color:#6b7d95;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:#2f4258;background:#f8fafdfa}.vs-tab-btn.vs-tab-active{color:#2c5ddb;background:#fffffffa;border-color:#bfdbfe9e;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:#475569;font-weight:800}.vs-tab-active .vs-tab-badge{background:#3b82f61f;color:#2563eb}.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:linear-gradient(180deg,#ecfdf5f0,#dcfce7db);border-bottom:1px solid rgba(34,197,94,.18);color:#14532d;cursor:pointer}.vs-magic-stage-header:hover{background:linear-gradient(180deg,#dcfce7fa,#bbf7d0e6)}.vs-magic-stage-remaining{background:linear-gradient(180deg,#f8fafcf5,#f1f5f9e6);border-bottom-color:#94a3b847;color:#475569}.vs-magic-stage-remaining:hover{background:linear-gradient(180deg,#f1f5f9fa,#e2e8f0e6)}.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:#fff;color:#14532d;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,#fbfdfffa,#f6f9fdfa)}.vs-opening-section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(180deg,#f9fbfffa,#f1f5fbf5);border-bottom:1px solid rgba(148,163,184,.12);font-weight:700;font-size:11px;color:#64748b}.vs-opening-subtotal{color:#dc4b4b;font-weight:700;font-size:11px}.vs-opening-grid{display:grid;grid-template-columns:50px 140px 80px 80px 80px;border-bottom:1px solid rgba(148,163,184,.1)}.vs-opening-grid-header{background:#f6f9fdfa;border-bottom:1px solid rgba(148,163,184,.12)}.vs-opening-grid-header .vs-opening-cell{font-weight:800;color:#7b8ca5;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-wall{color:var(--text-secondary)}.vs-opening-ded{color:#c62828;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:#fef3c7;color:#b45309;cursor:pointer}.vs-opening-badge-door:hover{background:#fde68a}.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:#f5f5f5;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;-webkit-user-select:none;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;-webkit-user-select:none;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;-webkit-user-select:none;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;-webkit-user-select:none;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 #ddd;border-radius:3px;padding:1px 4px;font-size:11px;font-weight:600;background:#fff}.ee-heading-input:focus{outline:none;border-color:var(--accent, #3b82f6)}.ee-row-remove{background:none;border:none;color:#999;cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.ee-row-remove:hover{color:#e53e3e}.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;-webkit-user-select:none;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;-webkit-user-select:none;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 #059669;border-radius:var(--radius-sm);background:#fff;color:#059669;cursor:pointer;transition:all var(--transition)}.ee-save-file-btn:hover{background:#ecfdf5;border-color:#047857;color:#047857}.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:#1e293b;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:#f8fafc;border-top:1px solid #e2e8f0;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:#f0f2f5;color:#475569;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 #cbd5e1;background:#fff;cursor:pointer;font-size:12px;color:#334155;white-space:nowrap}.wall-3d-toggle:hover{background:#f1f5f9;border-color:#94a3b8}.wall-3d-toggle.active{background:#1e293b;color:#fff;border-color:#1e293b}.wall-3d-overlay-wrap{flex:1;position:relative;display:flex;background:#e8eaed}.wall-3d-overlay-controls{position:absolute;top:8px;right:8px;z-index:25;pointer-events:auto;display:flex;align-items:center;gap:8px;background:#ffffffeb;-webkit-backdrop-filter:blur(6px);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;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:28px;background:#0f172a6b;-webkit-backdrop-filter:blur(3px);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:#fff;border:1px solid #dbe3ef;box-shadow:0 24px 70px #0f172a47;color:#1f2937}.combine-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px 14px;border-bottom:1px solid #e5edf7;background:linear-gradient(180deg,#f8fbff,#fff)}.combine-kicker{margin-bottom:3px;color:#4f7ddf;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 #d9e2ef;border-radius:10px;background:#fff;color:#64748b;font-size:24px;line-height:1;cursor:pointer}.combine-close-btn:hover:not(:disabled){background:#f1f5f9;color:#111827}.combine-intro{padding:12px 22px;border-bottom:1px solid #eef2f7;color:#64748b;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 #e5edf7}.combine-actions{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #eef2f7;color:#64748b;font-size:12px}.combine-actions button{border:1px solid #d8e2ef;border-radius:8px;background:#fff;color:#315fba;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:#f8fbff}.combine-row.selected{background:#eff6ff;border-color:#cfe0ff}.combine-row.previewed{box-shadow:inset 3px 0 #4f83f1}.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:#e8eef8;color:#516073;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:#1f2937}.combine-row-meta{color:#7b8aa1;font-size:12px}.combine-preview-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#4f7ddf;cursor:pointer}.combine-preview-btn:hover:not(:disabled){background:#eef5ff;border-color:#b9cefb}.combine-preview-panel{min-width:0;min-height:0;display:flex;flex-direction:column;padding:14px;background:#f7f9fc}.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:#7b8aa1;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:#64748b;font-size:13px}.combine-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;border-top:1px solid #e5edf7;background:#fff}.combine-footer-note{color:#64748b;font-size:12px}.combine-footer-actions{display:flex;align-items:center;gap:10px}.combine-cancel-btn,.combine-confirm-btn{min-width:104px;border:1px solid #d9e2ef;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:800;cursor:pointer}.combine-cancel-btn{background:#fff;color:#334155}.combine-confirm-btn{background:#3f7ee8;border-color:#3f7ee8;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:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stk-input{border:1px solid #d8e2ef;border-radius:10px;padding:10px 12px;font-size:14px;color:#1f2937;background:#fff;outline:none}.stk-input:focus{border-color:#4f7ddf;box-shadow:0 0 0 3px #4f7ddf29}.stk-option{display:flex;align-items:flex-start;gap:10px;border:1px solid #e5edf7;border-radius:10px;padding:12px;cursor:pointer}.stk-option+.stk-option{margin-top:8px}.stk-option:hover{border-color:#c7d6ee;background:#fafcff}.stk-option.selected{border-color:#4f7ddf;background:#f6f9ff}.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:#1f2937}.stk-option-desc{font-size:12px;color:#64748b;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 #e5edf7;max-height:42vh}.combine-footer{align-items:stretch;flex-direction:column}.combine-footer-actions{justify-content:flex-end}}.compare-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:0;background:#0f172a7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.compare-dialog{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;border-radius:0;background:#fff;border:0;box-shadow:none;color:#1f2937}.compare-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px 13px;border-bottom:1px solid #e5edf7;background:linear-gradient(180deg,#f8fbff,#fff)}.compare-kicker{margin-bottom:3px;color:#4f7ddf;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 #d9e2ef;border-radius:10px;background:#fff;color:#64748b;font-size:24px;line-height:1;cursor:pointer}.compare-close-btn:hover{background:#f1f5f9;color:#111827}.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 #e5edf7;background:#fbfdff}.compare-control-group{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.compare-label{display:flex;align-items:center;gap:8px;color:#334155;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 #d8e2ef;border-radius:10px;background:#fff;color:#1f2937;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:#526174;font-size:12px;font-weight:700}.compare-control-grid input[type=range]{padding:0;accent-color:#3f7ee8}.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:#64748b;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 #d8e2ef;border-radius:10px;background:#fff;color:#315fba;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:#eef5ff;border-color:#b9cefb}.compare-actions button:disabled,.compare-button-row button:disabled{opacity:.45;cursor:not-allowed}.compare-button-row button.active{background:#3f7ee8;border-color:#3f7ee8;color:#fff}.compare-primary-wide-btn{width:100%;border:1px solid #3f7ee8;border-radius:12px;background:#3f7ee8;color:#fff;padding:10px 12px;font-size:13px;font-weight:900;cursor:pointer;margin-bottom:9px}.compare-primary-wide-btn:hover{background:#2f6bd3;border-color:#2f6bd3}.compare-align-panel,.compare-export-panel{margin-bottom:14px;padding:12px;border:1px solid #e1e9f5;border-radius:12px;background:#fff}.compare-panel-title{margin-bottom:9px;color:#334155;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:#64748b;font-size:12px;line-height:1.35}.compare-pick-hint{margin-top:8px;border-radius:10px;background:#fff7ed;color:#9a3412;padding:8px 9px;font-size:12px;font-weight:800}.compare-help{border:1px solid #d8e7ff;border-radius:12px;background:#eff6ff;color:#436184;padding:11px 12px;font-size:12px;line-height:1.45}.compare-preview{min-width:0;min-height:0;display:flex;flex-direction:column;background:#e7ebf0;position:relative}.compare-preview-toolbar{min-height:42px;display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid #d9e2ef;background:#f8fafc;color:#334155;font-size:13px;font-weight:800}.compare-floating-pad{position:absolute;right:18px;bottom:18px;z-index:18;width:214px;border:1px solid rgba(203,220,248,.92);border-radius:18px;background:#fffffff0;box-shadow:0 16px 44px #0f172a3d;padding:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.compare-pad-title{margin-bottom:9px;color:#334155;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 #d8e2ef;border-radius:11px;background:#fff;color:#315fba;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:#eef5ff;border-color:#b9cefb}.compare-pad-grid button:disabled,.compare-pad-rotate button:disabled{opacity:.45;cursor:not-allowed}.compare-pad-centre{color:#475569!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 #d8e2ef;border-radius:8px;background:#fff;color:#315fba;font-size:12px;font-weight:800;cursor:pointer}.compare-zoom-controls input{width:130px;accent-color:#3f7ee8}.compare-zoom-controls span{min-width:42px;color:#526174;font-size:12px;text-align:right}.compare-rendering{color:#4f7ddf;font-weight:700}.compare-error{color:#dc2626;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 #cbdcf8;border-radius:16px;background:#fffffff7;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 #e4ecf8;background:linear-gradient(180deg,#f8fbff,#fff)}.compare-align-popout-header h4{margin:0;color:#1f2937;font-size:18px;font-weight:900}.compare-align-popout-close{width:32px;height:32px;border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#64748b;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 #e2e8f0;border-radius:13px;background:#fff;padding:10px}.compare-align-step.active{border-color:#f59e0b;background:#fff7ed}.compare-align-step.done{border-color:#bbf7d0;background:#f0fdf4}.compare-align-step.ready{border-color:#bfdbfe;background:#eff6ff}.compare-align-step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#e8eef8;color:#334155;font-size:13px;font-weight:900}.compare-align-step strong{display:block;margin-bottom:2px;color:#1f2937;font-size:13px}.compare-align-step p{margin:0;color:#64748b;font-size:12px;line-height:1.35}.compare-align-step button,.compare-align-popout-actions button{border:1px solid #d8e2ef;border-radius:10px;background:#fff;color:#315fba;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:#3f7ee8;border-color:#3f7ee8;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;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;image-rendering:auto}.compare-layer-base{top:0;right:0;bottom:0;left: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;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f8fafcdb;color:#4f7ddf;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 #e5edf7}.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}.fp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;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:#ef4444;background:#fef2f2}.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:#fecaca;color:#dc2626;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:#dc2626}.fp-opt-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:4px}.fp-opt-label{font-size:10px;font-weight:600;color:#fbbf24;text-align:center;line-height:1.2}.fp-opt-bar-track{width:80%;height:4px;background:#fff3;border-radius:2px;overflow:hidden}.fp-opt-bar-fill{height:100%;background:#fbbf24;border-radius:2px;transition:width .3s ease}.fp-opt-pages{font-size:9px;color:#ffffffb3}.fp-opt-badge{position:absolute;bottom:4px;left:4px;right:4px;background:#22c55ee6;color:#fff;font-size:9px;font-weight:600;text-align:center;padding:2px 4px;border-radius:3px}.fp-opt-footer{padding:4px 10px;text-align:center;border-top:1px solid var(--border-light, #eee);border-radius:0 0 5px 5px;width:100%}.fp-opt-link{background:none;border:none;font-family:inherit;font-size:10px;color:var(--text-muted, #888);cursor:pointer;padding:2px 6px;transition:color .15s}.fp-opt-link:hover{color:var(--accent);text-decoration:underline}.fp-opt-status{font-size:10px}.fp-opt-progress{color:#d97706}.fp-opt-done{color:#16a34a}.fp-help-wrap{position:relative;margin-left:6px;margin-right:auto}.fp-help-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--border, #ccc);background:var(--surface-hover, #f5f5f5);color:var(--text-muted, #888);font-size:11px;font-family:inherit;cursor:help;display:flex;align-items:center;justify-content:center;padding:0}.fp-help-tooltip{display:none;position:absolute;top:100%;left:0;margin-top:6px;width:240px;padding:10px 12px;background:#333;color:#fff;font-size:11px;line-height:1.5;border-radius:6px;box-shadow:0 4px 12px #00000040;z-index:20}.fp-help-wrap:hover .fp-help-tooltip{display:block}.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:#fff;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}
