:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text-dark);background-color:#efeff1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand: #7e3a72;--brand-hover: #6b2f61;--brand-bg: #f6eef5;--brand-bg-light: #ebf4ff;--brand-shadow: rgba(126, 58, 114, .06);--ai: #805ad5;--ai-hover: #6b46c1;--ai-nav: #7c3aed;--ai-nav-hover: #6d28d9;--text-dark: #1a202c;--text-primary: #2d3748;--text-secondary: #4a5568;--text-muted: #718096;--text-placeholder: #a0aec0;--text-disabled: #cbd5e0;--bg-root: #edf2f7;--bg-surface: #ffffff;--bg-hover: #f7fafc;--bg-active: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e0;--dark-bg: #1e293b;--dark-border: #334155;--dark-hover: #475569;--dark-text: #94a3b8;--dark-text-light: #cbd5e1;--error-bg: #fff5f5;--error-text: #c53030;--error-border: #fed7d7;--success-bg: #f0fff4;--success-text: #276749;--warning-text: #854d0e;--warning-bg: #fefce8;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 10px 25px rgba(0,0,0,.15);--overlay: rgba(0,0,0,.4);--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--radius-2xl: 12px;--transition: .15s ease}*{box-sizing:border-box;margin:0;padding:0}.titlebar-undoredo-btn,.status-bar-add-page,.status-bar-zoom-btn,.ribbon-tool-sm,.builder-toolbar-btn,.excel-qat-btn-ai,.builder-well-empty,.new-table-chooser-card-icon,.table-editor-col-header-add,.presence-avatar,.presence-overflow{display:flex;align-items:center;justify-content:center}.builder-layout,.report-canvas,.builder-canvas-area,.data-view,.model-view,.builder-content-main,.data-view-preview,.data-view-grid-wrapper,.json-source-editor,.measure-editor{display:flex;flex-direction:column;flex:1;min-height:0}.status-bar-tab,.status-bar-fit,.status-bar-zoom-btn,.page-tab,.builder-field-group-header,.builder-field-item,.builder-measure-menu-item,.builder-agg-option,.context-menu-item,.transform-step-item,.measure-list-item,.col-filter-btn,.share-panel-btn-link,.measure-func-ref-toggle,.selection-pane-icon-btn,.side-panel-btn{background:transparent;border:none;cursor:pointer}.toolbar-overflow-menu,.builder-measure-menu,.builder-select-menu,.builder-agg-dropdown,.context-menu,.col-filter-dropdown,.model-edge-toolbar{position:absolute;background:#fff;border:1px solid #e2e2e6;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:100}.builder-select-value,.builder-well-item-name,.builder-analytics-item-label,.transform-step-summary,.measure-list-item-expr,.model-table-header-name,.model-table-col-name,.data-view-grid-td,.selection-pane-item-name,.share-panel-peer-name,.share-panel-report-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.measure-list-header{padding:8px 14px;font-size:12px;font-weight:600;color:#65656c;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e2e6}.titlebar-btn-primary,.import-btn-import,.transform-add-btn,.col-filter-apply,.share-panel-btn-primary{background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:var(--radius-md);cursor:pointer;font-weight:500;transition:background var(--transition)}.titlebar-btn-primary:hover,.import-btn-import:hover:not(:disabled),.transform-add-btn:hover:not(:disabled),.col-filter-apply:hover,.share-panel-btn-primary:hover{background:var(--brand-hover)}.ai-config-save,.ai-insert-btn,.ai-send-btn,.table-editor-ai-btn{background:var(--ai);color:#fff;border:1px solid var(--ai);border-radius:var(--radius-md);cursor:pointer;font-weight:500;transition:background var(--transition)}.ai-config-save:hover,.ai-insert-btn:hover:not(:disabled),.ai-send-btn:hover:not(:disabled),.table-editor-ai-btn:hover:not(:disabled){background:var(--ai-hover)}.import-btn-import:disabled,.transform-add-btn:disabled,.new-table-preview-btn:disabled,.table-editor-preview-btn:disabled,.table-editor-ai-btn:disabled,.ai-send-btn:disabled,.visual-button:disabled,.share-panel-report:disabled{opacity:.5;cursor:not-allowed}.ai-insert-btn:disabled{opacity:.5;cursor:default;background:#9c9ca3;border-color:#9c9ca3}.share-panel-btn-primary:disabled{opacity:.6;cursor:default}.transform-step-selected,.measure-list-item-selected,.data-view-table-selected{background:var(--brand-bg)!important;border-left:3px solid var(--brand)}.status-bar-peer-dot,.titlebar-share-dot,.share-panel-live-dot,.stale-model-dot,.sync-toast-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.builder-field-group-header:hover,.transform-step-item:hover,.measure-list-item:hover,.data-view-table-item:hover,.builder-side-panel-collapsed:hover,.builder-props-tab:hover,.builder-select-option:hover,.builder-analytics-item-header:hover,.selection-pane-item:hover,.share-panel-peer:hover,.share-panel-ws:hover,.share-panel-report:hover,.data-view-back-btn:hover,.data-view-tab:hover,.measure-cancel-btn:hover,.import-btn-cancel:hover,.ai-config-toggle:hover,.table-editor-mode-btn:hover,.builder-add-btn:hover{background:#f7f7f8}.builder-field-item:hover,.builder-measure-menu-item:hover,.context-menu-item:hover:not(:disabled),.builder-agg-option:hover{background:var(--brand-bg);color:var(--brand-hover)}.new-table-col-remove:hover:not(:disabled),.new-table-row-remove:hover:not(:disabled),.measure-delete-btn:hover,.builder-well-item-remove:hover{color:#e53e3e}.status-bar-add-page:hover,.status-bar-tab:hover,.status-bar-zoom-btn:hover,.status-bar-fit:hover{background:var(--dark-border);color:#e2e2e6}.builder-props-tab:hover,.data-view-tab:hover,.table-editor-mode-btn:hover{color:#111113}.transform-step-summary,.measure-list-item-expr,.data-view-col-type,.measure-expr-hint,.transform-sql-hint,.measure-form-error,.publish-field-hint,.share-panel-peer-meta{font-size:11px}.builder-viz-section-label,.builder-well-label{font-size:11px;font-weight:600;color:#65656c;text-transform:uppercase;letter-spacing:.5px}.sidebar-resize-handle,.ai-panel-resize-handle{position:absolute;left:0;top:0;bottom:0;width:4px;cursor:col-resize;z-index:10}.sidebar-resize-handle:hover,.sidebar-resize-handle:active,.ai-panel-resize-handle:hover,.ai-panel-resize-handle:active{background:var(--brand)}.data-view-preview-error{padding:12px 16px;margin:8px;background:var(--error-bg);color:var(--error-text);border-radius:var(--radius-lg);font-size:12px}.data-view-preview-status{padding:20px;text-align:center;color:#9c9ca3;font-size:13px}.new-table-sql-input,.table-editor-sql-input{width:100%;border:1px solid #e2e2e6;border-radius:var(--radius-lg);font-family:SF Mono,Fira Code,monospace;font-size:13px;resize:vertical;background:#1e1e1e;color:#d4d4d4}.new-table-sql-input{padding:8px 10px}.table-editor-sql-input{padding:10px 12px}.new-table-sql-input:focus,.table-editor-sql-input:focus{border-color:var(--brand);outline:none}.new-table-preview-btn,.table-editor-preview-btn{padding:5px 12px;font-size:12px;border:1px solid #e2e2e6;border-radius:var(--radius-md);background:#fff;color:#44444b;cursor:pointer}.new-table-preview-btn:hover:not(:disabled),.table-editor-preview-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.new-table-preview-results,.table-editor-preview-results{max-height:240px;overflow:auto;border:1px solid #e2e2e6;border-radius:var(--radius-lg)}.new-table-preview-results{margin-top:8px}.new-table-grid,.table-editor-grid{width:100%;border-collapse:collapse;font-size:12px}.new-table-grid th,.table-editor-grid th{padding:6px 8px;text-align:left;font-weight:600;font-size:12px;color:#44444b;background:#f7f7f8;border-bottom:1px solid #e2e2e6;position:sticky;top:0;z-index:1}.table-editor-grid th{border-bottom:2px solid #e2e2e6}.new-table-grid th{border-bottom:1px solid #e2e2e6}.table-editor-grid td{padding:4px 8px;border-bottom:1px solid #efeff1}.new-table-col-remove,.new-table-row-remove,.measure-delete-btn,.builder-well-item-remove{background:none;border:none;cursor:pointer;line-height:1}.new-table-col-remove,.measure-delete-btn,.builder-well-item-remove{font-size:16px;color:#9c9ca3}.new-table-row-remove{font-size:16px;color:#cfcfd5;padding:0 4px}.new-table-col-remove{padding:0 2px}.builder-well-item-remove{font-size:14px;color:#9c9ca3;padding:0 2px}.new-table-col-remove:disabled,.new-table-row-remove:disabled{opacity:.3;cursor:not-allowed}.data-view-tab,.table-editor-mode-btn{padding:6px 12px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;font-size:11px;font-weight:500;color:#65656c;cursor:pointer;transition:background .1s}.table-editor-mode-btn{padding:6px 14px}.data-view-tab-active,.table-editor-mode-btn-active{background:#fff;border-color:#d1d1d1;color:var(--brand);font-weight:600}.page-tab-active,.builder-props-tab-active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.builder-props-tab-active{background:var(--brand-bg)}.new-table-add-col,.new-table-add-row{padding:4px 10px;font-size:12px;border:1px dashed #cfcfd5;border-radius:var(--radius-md);background:none;color:#65656c;cursor:pointer}.new-table-add-col:hover,.new-table-add-row:hover{border-color:var(--brand);color:var(--brand)}.json-editor-error,.json-editor-valid{font-size:11px;padding:1px 8px;border-radius:var(--radius-sm);margin-left:auto}.json-editor-error{color:#f48771;background:#f487711a}.json-editor-valid{color:#89d185;background:#89d1851a}.json-editor-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:#9c9ca3;cursor:pointer;-webkit-user-select:none;user-select:none}.json-editor-toggle input{margin:0;cursor:pointer}.json-editor-footer{padding:6px 10px;border-top:1px solid #e2e2e6;background:#f8f8fa;flex-shrink:0}.editor{display:flex;flex-direction:column;height:100vh;overflow:hidden;-webkit-user-select:none;user-select:none}.editor input,.editor textarea,.editor [contenteditable],.editor .cm-editor{-webkit-user-select:text;user-select:text}.app-body{display:flex;flex:1;min-height:0}.app-content{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.excel-titlebar{display:flex;align-items:center;padding:0 8px;position:relative;background:var(--brand);flex-shrink:0;height:32px;-webkit-user-select:none;user-select:none}.excel-titlebar-left{display:flex;align-items:center;gap:2px;min-width:0}.excel-titlebar-icon{font-size:11px;font-weight:800;color:#fff;letter-spacing:-.5px;background:#fff3;border-radius:var(--radius-sm);padding:2px 5px;margin-right:6px}.excel-titlebar-name{position:absolute;left:50%;transform:translate(-50%);font-size:12px;font-weight:500;color:#fffffff2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%;pointer-events:none}.excel-titlebar-app{font-weight:400;color:#fff9}.excel-titlebar-right{display:flex;align-items:center;gap:2px;margin-left:auto}.excel-qat-btn{padding:2px 8px;border-radius:var(--radius-sm);border:none;background:transparent;color:#ffffffd9;font-size:11px;font-weight:500;cursor:pointer;transition:background .12s;white-space:nowrap}.excel-qat-btn:hover{background:#ffffff26;color:#fff}.excel-qat-btn-primary{background:#ffffff26}.excel-qat-btn-primary:hover{background:#ffffff40}.excel-qat-publish{background:#4ade8033;color:#86efac}.excel-qat-publish:hover{background:#4ade804d;color:#4ade80}.excel-qat-discard{color:#fff6}.excel-qat-discard:hover{color:#fca5a5;background:#f8717126}.excel-qat-close{color:#ffffff80}.excel-qat-close:hover{color:#ffffffd9}.excel-qat-share{display:flex;align-items:center;gap:4px}.excel-qat-share-live{color:#86efac}.excel-qat-share-live:hover{color:#4ade80}.excel-qat-ai{color:#ffffffd9}.excel-qat-ai:hover{background:#fff3}.excel-qat-ai-active{background:#fff3;color:#fff}.save-indicator{display:flex;align-items:center;gap:6px;margin-left:6px;padding-left:6px;border-left:1px solid rgba(255,255,255,.15)}.save-autosave-toggle{display:flex;align-items:center;gap:4px;border:none;background:transparent;cursor:pointer;padding:0;color:#fffc;font-size:11px;font-weight:500}.save-autosave-toggle:disabled{cursor:default}.save-toggle-track{display:flex;align-items:center;width:26px;height:14px;border-radius:7px;background:#fff3;padding:2px;transition:background .15s;position:relative}.save-toggle-on{background:#4ade8099}.save-toggle-thumb{width:10px;height:10px;border-radius:50%;background:#fff;transition:transform .15s;transform:translate(0)}.save-toggle-on .save-toggle-thumb{transform:translate(12px)}.save-toggle-label{white-space:nowrap}.save-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:#ffffffb3;cursor:pointer;transition:background .12s,color .12s}.save-btn:hover:not(:disabled){background:#ffffff26;color:#fff}.save-btn:disabled{opacity:.3;cursor:default}.save-status{font-size:10px;font-weight:500;white-space:nowrap}.save-status-saved{color:#ffffff80}.save-status-saving{color:#4ade80e6}.save-status-unsaved{color:#fbbf24e6}.titlebar-undoredo{display:flex;align-items:center;gap:0}.titlebar-undoredo-btn{width:24px;height:24px;border:none;background:transparent;color:#ffffffb3;font-size:14px;cursor:pointer;border-radius:var(--radius-sm)}.titlebar-undoredo-btn:hover:not(:disabled){background:#ffffff26;color:#fff}.titlebar-undoredo-btn:disabled{opacity:.25;cursor:default}.nav-sidebar{display:flex;flex-direction:column;width:48px;background:var(--dark-bg);border-right:1px solid var(--dark-border);padding:8px 0;gap:2px;flex-shrink:0}.nav-sidebar-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 0;border:none;background:transparent;color:var(--dark-text);cursor:pointer;border-left:2px solid transparent;transition:color .15s,background .15s}.nav-sidebar-btn:hover{color:#e2e2e6;background:#ffffff0d}.nav-sidebar-btn-active{color:#fff;background:#ffffff14;border-left-color:var(--brand)}.nav-sidebar-label{font-size:9px;font-weight:500;letter-spacing:.02em}.editor-grid{position:relative;padding:16px 24px}.canvas-container{flex:1;overflow:hidden;background:#efeff1;display:flex;align-items:center;justify-content:center}.canvas-inner{position:relative}.page-tabs{display:flex;gap:0;padding:0 24px;background:#fff;border-bottom:1px solid #e2e2e6}.page-tab{padding:10px 20px;font-size:13px;font-weight:500;color:#65656c;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.page-tab:hover{color:#111113}.page-tab-rename-input{padding:4px 8px;border:1px solid var(--brand);border-radius:var(--radius-md);font-size:13px;color:#111113;outline:none;background:#fff;min-width:80px}.status-bar{display:flex;align-items:center;justify-content:space-between;height:32px;background:var(--dark-bg);border-top:1px solid var(--dark-border);padding:0 4px;flex-shrink:0}.status-bar-pages{display:flex;align-items:center;gap:0;overflow-x:auto;min-width:0}.status-bar-add-page{width:24px;height:24px;border:none;background:transparent;color:var(--dark-text);font-size:16px;cursor:pointer;border-radius:var(--radius-md);flex-shrink:0}.status-bar-tab{padding:4px 14px;color:var(--dark-text);font-size:12px;white-space:nowrap;border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:2px solid transparent;transition:color .15s,background .15s,border-color .15s}.status-bar-tab-active{color:#e2e2e6;border-bottom-color:var(--brand)}.status-bar-peer-dot{display:inline-block;margin-left:3px;vertical-align:middle}.status-bar-rename-input{padding:2px 6px;border:1px solid var(--brand);border-radius:var(--radius-sm);font-size:12px;color:#e2e2e6;background:var(--dark-bg);outline:none;min-width:60px}.status-bar-zoom{display:flex;align-items:center;gap:4px;flex-shrink:0}.status-bar-fit{padding:2px 8px;color:var(--dark-text);font-size:11px;border-radius:var(--radius-sm)}.status-bar-fit-active{color:#9a5d8e}.status-bar-zoom-btn{width:22px;height:22px;border:none;background:transparent;color:var(--dark-text);font-size:14px;cursor:pointer;border-radius:var(--radius-sm)}.status-bar-zoom-slider{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--dark-hover);border-radius:var(--radius-xs);outline:none;cursor:pointer}.status-bar-zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--dark-text);cursor:pointer}.status-bar-zoom-slider::-webkit-slider-thumb:hover{background:#e2e2e6}.status-bar-zoom-label{color:var(--dark-text);font-size:11px;min-width:36px;text-align:right}.import-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;justify-content:center;align-items:center;z-index:1000}.import-dialog{background:#fff;border-radius:var(--radius-2xl);box-shadow:0 20px 60px #0003;width:520px;max-height:80vh;overflow-y:auto}.import-dialog-wide{width:860px}.import-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e2e6}.import-header h2{font-size:16px;font-weight:600}.import-close{border:none;background:none;font-size:22px;color:#9c9ca3;cursor:pointer;line-height:1;padding:4px}.import-close:hover{color:#44444b}.import-body{padding:16px 20px}.import-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid #e2e2e6;padding-bottom:8px}.import-tab{padding:6px 12px;border:1px solid #e2e2e6;border-radius:var(--radius-lg);background:#fff;font-size:12px;font-weight:500;color:#65656c;cursor:pointer}.import-tab:hover{background:#f7f7f8;color:#111113}.import-tab-active{background:var(--brand-bg);color:var(--brand);border-color:#d4a5cc}.import-form{margin-bottom:12px}.import-label{display:block;font-size:12px;font-weight:600;color:#44444b;margin-bottom:10px}.import-input{display:block;width:100%;padding:8px 10px;margin-top:4px;border:1px solid #e2e2e6;border-radius:var(--radius-lg);font-size:13px;font-family:inherit}.import-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px #7e3a7226}.import-file-row{display:flex;gap:8px;margin-top:4px}.import-file-row .import-input{margin-top:0;flex:1}.import-browse{padding:8px 14px;border:1px solid #e2e2e6;border-radius:var(--radius-lg);background:#f7f7f8;font-size:13px;cursor:pointer;white-space:nowrap}.import-browse:hover{background:#efeff1}.import-file-browse-section{display:flex;align-items:center;margin-bottom:4px}.import-file-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;margin-top:4px}.import-file-entry{display:flex;align-items:center;gap:8px}.import-file-entry-name{font-size:12px;color:#555;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-file-entry-sheet{flex:0 0 110px!important;margin-top:0!important;font-size:12px!important}.import-file-entry-table{flex:1!important;margin-top:0!important}.import-file-entry-remove{width:24px;height:24px;padding:0;border:none;background:none;font-size:16px;color:#999;cursor:pointer;flex-shrink:0;border-radius:4px}.import-file-entry-remove:hover{background:#fee;color:#c00}.import-excel-file-group{border:1px solid #e8e8ec;border-radius:var(--radius-lg);padding:8px 10px}.import-excel-file-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.import-excel-file-name{font-size:12px;font-weight:600;color:#333;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-excel-sheets{display:flex;flex-direction:column;gap:2px}.import-excel-sheet-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#555;cursor:pointer;padding:2px 0}.import-excel-sheet-row:hover{color:#333}.import-excel-sheet-row input[type=checkbox]{accent-color:var(--brand)}.import-excel-sheet-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-navigator{display:flex;gap:0;border:1px solid #e2e2e6;border-radius:var(--radius-lg);overflow:hidden;height:320px}.import-navigator-left{width:220px;min-width:220px;border-right:1px solid #e2e2e6;overflow-y:auto;padding:8px;background:#fafafa}.import-navigator-right{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.import-browse-sm{padding:4px 10px;font-size:12px}.import-nav-file{margin-bottom:6px}.import-nav-file-header{display:flex;align-items:center;gap:4px;padding:2px 0}.import-nav-file-header input[type=checkbox]{accent-color:var(--brand);flex-shrink:0}.import-nav-chevron{border:none;background:none;padding:0 2px;font-size:9px;color:#999;cursor:pointer;flex-shrink:0;line-height:1}.import-nav-chevron:hover{color:#555}.import-nav-file-name{font-size:11px;font-weight:600;color:#555;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.import-nav-sheet{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 24px;border-radius:4px;font-size:12px;color:#444;cursor:pointer;-webkit-user-select:none;user-select:none}.import-nav-sheet:hover{background:#efeff1}.import-nav-sheet-active{background:var(--brand-bg);color:var(--brand)}.import-nav-sheet-active:hover{background:var(--brand-bg)}.import-nav-sheet input[type=checkbox]{accent-color:var(--brand);flex-shrink:0}.import-nav-sheet-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-nav-preview-header{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #e8e8ec;background:#fafafa;flex-shrink:0}.import-nav-preview-sheet{font-size:12px;font-weight:600;color:#333;white-space:nowrap}.import-nav-preview-tablename{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:11px;color:#888}.import-nav-preview-tablename input{flex:1;padding:3px 6px!important;margin:0!important;font-size:12px!important;min-width:80px}.import-nav-preview-unchecked{font-size:11px;color:#aaa;font-style:italic}.import-nav-preview-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#888;gap:8px}.import-nav-preview-table-wrap{overflow:auto;flex:1}.import-nav-preview-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px}.import-nav-preview-table th{position:sticky;top:0;background:#f3f3f5;border-bottom:1px solid #ddd;padding:6px 10px;text-align:left;font-weight:600;color:#333;white-space:nowrap}.import-nav-preview-table td{padding:4px 10px;border-bottom:1px solid #f0f0f0;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;color:#555}.import-nav-preview-table tbody tr:hover td{background:#fafafa}.import-status{padding:10px 12px;border-radius:var(--radius-lg);font-size:13px;margin-top:12px;display:flex;align-items:center;gap:8px}.import-status-loading{background:var(--brand-bg);color:var(--brand)}.import-status-success{background:var(--success-bg);color:var(--success-text)}.import-status-error{background:var(--error-bg);color:var(--error-text)}.import-spinner{width:16px;height:16px;border:2px solid #d4a5cc;border-top-color:var(--brand);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e2e2e6}.import-btn{padding:8px 16px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;cursor:pointer;border:1px solid #e2e2e6}.import-btn-cancel{background:#fff;color:#44444b}.import-btn-import{border-color:var(--brand)}.new-table-enter-data{display:flex;flex-direction:column;gap:8px}.new-table-column-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end}.new-table-column-header{display:flex;gap:4px;align-items:center;padding:4px 6px;background:#f7f7f8;border:1px solid #e2e2e6;border-radius:var(--radius-lg)}.new-table-col-name{width:100px;padding:3px 6px;border:1px solid #e2e2e6;border-radius:var(--radius-md);font-size:12px;background:#fff}.new-table-col-type{padding:3px 4px;border:1px solid #e2e2e6;border-radius:var(--radius-md);font-size:11px;background:#fff;color:#65656c}.new-table-col-remove{font-size:16px;padding:0 2px;line-height:1}.new-table-grid-wrapper{max-height:300px;overflow:auto;border:1px solid #e2e2e6;border-radius:var(--radius-lg)}.new-table-grid td{padding:2px 4px;border-bottom:1px solid #f0f0f0}.new-table-row-num{width:32px;color:#9c9ca3;font-size:11px;text-align:center!important}.new-table-row-actions{width:28px}.new-table-row-remove{padding:0 4px}.new-table-cell{width:100%;padding:4px 6px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background:transparent}.new-table-cell:focus{border-color:var(--brand);outline:none;background:#fff}.new-table-preview-btn{align-self:flex-start}.new-table-calculated{display:flex;flex-direction:column;gap:8px}.new-table-type-badge{display:inline-block;padding:1px 5px;font-size:10px;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.new-table-type-badge-inline{background:#e6fffa;color:#285e61}.new-table-type-badge-calculated{background:var(--brand-bg);color:var(--brand-hover)}.new-table-type-badge-file{background:#f7f7f8;color:#65656c}.data-view-table-edit-btn{background:none;border:none;color:#9c9ca3;cursor:pointer;font-size:11px;padding:2px 6px;border-radius:var(--radius-sm)}.data-view-table-edit-btn:hover{color:var(--brand);background:var(--brand-bg)}.data-view-table-remove-btn{background:none;border:none;color:#ccc;cursor:pointer;font-size:14px;padding:0 4px;border-radius:var(--radius-sm);line-height:1}.data-view-table-remove-btn:hover{color:#c00;background:#fee}.excel-ribbon{flex-shrink:0;background:#f3f3f3;border-bottom:1px solid #d1d1d1}.excel-ribbon-body{display:flex;align-items:stretch;padding:4px 8px;min-height:72px;gap:0}.excel-ribbon-groups{display:flex;align-items:stretch;gap:0;flex:1;min-width:0}.ribbon-group{display:flex;flex-direction:column;align-items:center;padding:2px 10px 0;min-width:0;position:relative}.ribbon-group-tools{display:flex;align-items:center;gap:2px;flex:1}.ribbon-group-tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}.ribbon-group-name{font-size:10px;color:#717171;padding:2px 0 1px;white-space:nowrap;text-align:center}.ribbon-group-sep{width:1px;margin:4px 2px;background:#d1d1d1;align-self:stretch}.ribbon-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;color:#444;transition:all .1s;min-width:44px}.ribbon-tool:hover{background:#0000000d;border-color:#c8c8c8}.ribbon-tool-active{background:var(--brand-bg);border-color:#d4a5cc;color:var(--brand-hover)}.ribbon-tool-active:hover{background:#f3e5f0;border-color:#c48fbb}.ribbon-tool-disabled{opacity:.35;cursor:default}.ribbon-tool-disabled:hover{background:transparent;border-color:transparent}.ribbon-tool-label{font-size:10px;line-height:1.1;white-space:nowrap}.ribbon-tool-sm{width:26px;height:26px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;color:#555;transition:all .1s;display:flex;align-items:center;justify-content:center}.ribbon-tool-sm:hover{background:#0000000f;border-color:#c8c8c8}.ribbon-align-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border:1px solid #d1d1d1;border-radius:var(--radius-lg);box-shadow:0 4px 12px #0000001a;padding:4px;min-width:160px}.ribbon-align-section{font-size:10px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.04em;padding:6px 8px 2px}.ribbon-align-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:none;border-radius:var(--radius-md);background:transparent;cursor:pointer;font-size:13px;color:#444}.ribbon-align-item:hover{background:#f3f3f3}.ribbon-group-tools-info{justify-content:center}.ribbon-info-text{font-size:11px;color:#9c9ca3;padding:0 8px;white-space:nowrap}.ribbon-tool-badge{position:relative}.ribbon-tool-badge:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--brand)}.ribbon-insert-dropdown{position:absolute;top:100%;left:0;z-index:100;background:#fff;border:1px solid #d1d1d1;border-radius:6px;box-shadow:0 8px 24px #0000001f;padding:8px;width:280px}.ribbon-insert-section{font-size:10px;font-weight:600;color:#9c9ca3;text-transform:uppercase;letter-spacing:.04em;padding:4px 4px 2px;margin-top:4px}.ribbon-insert-section:first-child{margin-top:0}.ribbon-insert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.ribbon-insert-item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;border:none;border-radius:4px;background:transparent;cursor:pointer;transition:background .1s}.ribbon-insert-item:hover{background:#f3f3f3}.ribbon-insert-icon{font-size:16px;line-height:1}.ribbon-insert-label{font-size:9px;color:#65656c;white-space:nowrap}.ribbon-ai-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 28px;margin-left:auto;flex-shrink:0;border:1px solid transparent;border-radius:var(--radius-md);background:var(--brand-bg);cursor:pointer;color:var(--brand);transition:all .15s;align-self:stretch}.ribbon-ai-btn:hover{background:#f3e5f0;border-color:#d4a5cc;box-shadow:0 1px 4px #7e3a721a}.ribbon-ai-btn-active{background:#f3e5f0;border-color:#c48fbb;color:var(--brand-hover);box-shadow:0 1px 6px #7e3a7226}.ribbon-ai-label{font-size:12px;font-weight:600;letter-spacing:.02em}.builder-toolbar-label{font-size:12px;font-weight:600;color:#65656c;margin-right:4px}.builder-add-btn{padding:4px 10px;border-radius:var(--radius-md);border:1px solid #e2e2e6;background:#fff;font-size:12px;cursor:pointer;color:#44444b}.builder-add-btn:hover{border-color:#cfcfd5}.builder-main{display:flex;flex:1;min-height:0;overflow:hidden}.builder-canvas-area{overflow:hidden;min-width:0}.builder-canvas .builder-grid{background:#f7f7f8;border:1px dashed var(--dark-text)}.builder-visual-card{cursor:grab;position:relative;transition:box-shadow .15s;background:var(--lvz-card-bg, #ffffff);isolation:isolate}.builder-visual-card:active{cursor:grabbing}.builder-visual-card:hover:not(.builder-visual-selected):not(.builder-visual-multiselected){outline:1px solid var(--text-dark);outline-offset:0}.builder-edge-handle{position:absolute;z-index:15}.builder-edge-top{top:-3px;left:8px;right:8px;height:6px;cursor:ns-resize}.builder-edge-bottom{bottom:-3px;left:8px;right:8px;height:6px;cursor:ns-resize}.builder-edge-left{top:8px;bottom:8px;left:-3px;width:6px;cursor:ew-resize}.builder-edge-right{top:8px;bottom:8px;right:-3px;width:6px;cursor:ew-resize}.builder-corner-handle{position:absolute;width:8px;height:8px;z-index:16;background:#fff;border:2px solid var(--brand);border-radius:1px}.builder-corner-nw{top:-4px;left:-4px;cursor:nwse-resize}.builder-corner-ne{top:-4px;right:-4px;cursor:nesw-resize}.builder-corner-sw{bottom:-4px;left:-4px;cursor:nesw-resize}.builder-corner-se{bottom:-4px;right:-4px;cursor:nwse-resize}.builder-visual-selected{box-shadow:0 0 0 4px #7e3a7226}.builder-visual-selected:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--brand);border-radius:inherit;z-index:20;pointer-events:none}.builder-visual-multiselected{box-shadow:0 0 0 3px #7e3a721a}.builder-visual-multiselected:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed var(--brand);border-radius:inherit;z-index:20;pointer-events:none}.snap-guide-vertical{width:0;border-left:1px dashed #e53e3e}.snap-guide-horizontal{height:0;border-top:1px dashed #e53e3e}.builder-field-picker{background:#fff;overflow-y:auto}.builder-panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 10px;height:29px;font-size:12px;font-weight:600;color:#111113;border-bottom:1px solid #e2e2e6;background:#f8f8fa}.builder-field-group{border-bottom:1px solid #f7f7f8}.builder-field-group-header{display:flex;align-items:center;gap:6px;width:100%;padding:8px 14px;font-size:12px;font-weight:600;color:#44444b;text-align:left}.builder-chevron{font-size:8px;color:#9c9ca3}.builder-field-list{padding:0 0 4px}.builder-field-item{display:flex;align-items:center;gap:6px;width:100%;padding:5px 14px 5px 24px;font-size:12px;color:#44444b;text-align:left}.builder-field-item.is-used{background:var(--brand-bg);color:var(--brand-hover)}.builder-field-group-header.is-used{color:var(--brand-hover)}.field-well-badge{margin-left:auto;font-size:9px;font-weight:600;line-height:1;padding:2px 5px;border-radius:var(--radius-xl);background:var(--brand);color:#fff;white-space:nowrap;flex-shrink:0}.builder-field-icon{font-size:10px;color:#9c9ca3;width:16px;text-align:center;flex-shrink:0}.builder-field-measure{font-weight:500;color:var(--brand-hover)}.builder-field-measure .builder-field-icon{color:var(--brand)}.builder-measure-item{position:relative}.builder-measure-menu{min-width:180px}.builder-measure-menu-item{display:block;width:100%;padding:8px 12px;font-size:12px;color:#44444b;text-align:left}.builder-properties-panel{background:#fff;display:flex;flex-direction:column;flex:1;min-height:0}.builder-props-body{flex:1;min-height:0;overflow-y:auto}.builder-props-footer{flex-shrink:0;padding:6px 12px;border-top:1px solid #e2e2e6;background:linear-gradient(to bottom,#fafafa,#f2f2f4);display:flex;justify-content:flex-end}.builder-props-multiselect-banner{padding:6px 12px;font-size:11px;font-weight:500;background:var(--brand-bg);color:var(--brand);border-bottom:1px solid #e2d0df;text-align:center}.builder-props-tabs{display:flex;gap:0;border-bottom:1px solid #e2e2e6;flex-shrink:0;background:linear-gradient(to bottom,#fafafa,#f2f2f4)}.builder-props-tab{flex:1;padding:5px 12px;border:none;border-bottom:2px solid transparent;background:transparent;font-size:11px;font-weight:600;color:#65656c;cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.builder-props-empty{padding:20px 14px;font-size:12px;color:#9c9ca3;text-align:center}.builder-delete-btn{padding:3px 10px;border-radius:var(--radius-sm);border:1px solid #e2e2e6;background:#fff;font-size:10px;font-weight:600;color:#e53e3e;cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.builder-delete-btn:hover{background:#fff5f5;border-color:#feb2b2}.builder-props-section{border-bottom:1px solid #e2e2e6}.builder-props-section-header{display:flex;align-items:center;gap:5px;width:100%;padding:6px 12px;font-size:10px;font-weight:700;color:#44444b;text-transform:uppercase;letter-spacing:.8px;background:linear-gradient(to bottom,#fafafa,#f2f2f4);border:none;border-bottom:1px solid #e2e2e6;border-top:1px solid #f7f7f8;cursor:pointer;font-family:inherit;text-align:left}.builder-props-section-header:hover{background:linear-gradient(to bottom,#f2f2f4,#eaeaec)}.builder-props-chevron{display:inline-block;width:0;height:0;border-left:4px solid #9c9ca3;border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform .15s ease}.builder-props-chevron.open{transform:rotate(90deg)}.builder-prop-group{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-bottom:1px solid #ebebed}.builder-prop-group:last-child{border-bottom:none}.builder-prop-label{display:block;font-size:10px;font-weight:600;color:#9c9ca3;text-transform:uppercase;letter-spacing:.6px}.builder-prop-select,.builder-prop-input{display:block;width:100%;padding:3px 5px;border:1px solid #e2e2e6;border-radius:var(--radius-sm);font-size:11px;font-family:inherit;background:#fff;color:#44444b;height:24px;box-sizing:border-box}.builder-prop-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l3 3 3-3' stroke='%2365656c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center;padding-right:18px;cursor:pointer}.builder-prop-select:hover,.builder-prop-input:hover{border-color:#ccccd0}.builder-prop-select:focus,.builder-prop-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 1px #7e3a7226}.builder-number-wrap input[type=number]{-moz-appearance:textfield}.builder-number-wrap input[type=number]::-webkit-inner-spin-button,.builder-number-wrap input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.builder-number-wrap{display:flex;align-items:stretch}.builder-number-wrap .builder-prop-input{flex:1;min-width:0;text-align:left;padding-left:2px;padding-right:2px;border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.builder-number-arrows{display:flex;flex-direction:column;width:16px;flex-shrink:0;border:1px solid #e2e2e6;border-left:1px solid #efeff1;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#f7f7f8}.builder-number-arrows button{display:flex;align-items:center;justify-content:center;flex:1;border:none;background:transparent;cursor:pointer;padding:0;color:#9c9ca3;line-height:0}.builder-number-arrows button:first-child{border-bottom:1px solid #efeff1}.builder-number-arrows button:hover{background:#efeff1;color:#44444b}.builder-number-arrows button:active{background:#e2e2e6}.builder-number-wrap:focus-within .builder-prop-input{border-color:var(--brand);box-shadow:0 0 0 1px #7e3a7226}.builder-number-wrap:focus-within .builder-number-arrows{border-color:var(--brand);border-left-color:#efeff1}.builder-prop-row{display:flex;gap:4px}.builder-prop-row .builder-prop-select,.builder-prop-row .builder-select{flex:1}.builder-select{position:relative;width:100%;min-width:0}.builder-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;padding:3px 5px;border:1px solid #e2e2e6;border-radius:var(--radius-sm);font-size:11px;font-family:inherit;background:#fff;cursor:pointer;color:#44444b;text-align:left;gap:4px;height:24px;box-sizing:border-box}.builder-select-trigger:hover{border-color:#ccccd0}.builder-select-trigger:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 1px #7e3a7226}.builder-select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-select-chevron{flex-shrink:0;color:#9c9ca3;transition:transform .15s}.builder-select-menu{border-radius:var(--radius-sm);padding:2px;max-height:180px;overflow-y:auto;border:1px solid #e2e2e6;background:#fff;box-shadow:0 2px 8px #0000001a;z-index:9999}.builder-select-option{display:block;width:100%;padding:4px 8px;border:none;background:none;font-size:11px;font-family:inherit;color:#44444b;text-align:left;cursor:pointer;border-radius:var(--radius-xs)}.builder-select-option:hover{background:#f7f7f8}.builder-select-option-active{background:var(--brand-bg);color:var(--brand);font-weight:600}.builder-select-option-active:hover{background:#f3e5f0}.builder-prop-position{display:flex;gap:8px;font-size:11px;color:#65656c}.builder-prop-position>.builder-style-label{flex:1;min-width:0}.builder-island{border:1px solid #e2e2e6;border-radius:var(--radius-sm);background:#fafafa}.builder-island-header{display:flex;align-items:center;gap:5px;width:100%;padding:4px 8px;font-size:10px;font-weight:600;color:#65656c;text-transform:uppercase;letter-spacing:.6px;background:linear-gradient(to bottom,#f7f7f8,#f0f0f2);border:none;border-bottom:1px solid transparent;cursor:pointer;font-family:inherit;text-align:left}.builder-island-header:hover{background:linear-gradient(to bottom,#f0f0f2,#eaeaec)}.builder-island-body{display:flex;flex-direction:column;gap:6px;padding:8px;border-top:1px solid #e2e2e6}.builder-title-toolbar{display:flex;align-items:center;gap:4px}.builder-toolbar-group{display:flex;align-items:center;border:1px solid #e2e2e6;border-radius:var(--radius-sm);overflow:hidden}.builder-toolbar-btn{width:26px;height:24px;background:#fff;color:#9c9ca3;font-size:11px;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center}.builder-toolbar-btn+.builder-toolbar-btn{border-left:1px solid #e2e2e6}.builder-toolbar-btn:hover{background:#f7f7f8;color:#44444b}.builder-toolbar-btn.active{background:var(--brand-bg);color:var(--brand)}.builder-toolbar-fontsize{width:36px;height:24px;border:none;background:#fff;font-size:11px;font-family:inherit;text-align:center;color:#111113;padding:0 2px;-moz-appearance:textfield}.builder-toolbar-fontsize::-webkit-inner-spin-button,.builder-toolbar-fontsize::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.builder-toolbar-fontsize:focus{outline:none;background:#f7f7f8}.builder-style-row{display:flex;align-items:center;gap:8px}.builder-style-label{display:block;font-size:11px;color:#65656c}.builder-style-row>.builder-style-label{min-width:68px;flex-shrink:0}.builder-style-row>.builder-prop-input,.builder-style-row>.builder-prop-select,.builder-style-row>.builder-select,.builder-style-row>select,.builder-style-row>.builder-style-color-row,.builder-style-row>.builder-number-wrap{flex:1;min-width:0;width:auto}.builder-style-row>input[type=range]{flex:1;min-width:0}.builder-style-row>input[type=checkbox]{flex:none}.builder-inline-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;min-width:0}.builder-inline-pair>.builder-style-row{min-width:0}.builder-style-color-row{display:flex;gap:6px;align-items:center}.builder-style-color{width:24px;height:24px;padding:1px;border:1px solid #e2e2e6;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0}.builder-style-color:hover{border-color:#ccccd0}.builder-color-map-reset{font-size:10px;padding:0 4px;cursor:pointer;border:1px solid #ccc;border-radius:var(--radius-sm);background:#fff;line-height:1.4}.builder-style-value{font-size:10px;color:#65656c;min-width:28px;text-align:right;background:#f7f7f8;border:1px solid #e2e2e6;border-radius:var(--radius-sm);padding:2px 4px;height:24px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.builder-style-row>input[type=range]{height:24px;accent-color:var(--brand)}.builder-canvas-settings-wrapper{position:relative}.builder-canvas-popover{position:absolute;top:100%;left:0;margin-top:4px;width:240px;background:#fff;border:1px solid #e2e2e6;border-radius:var(--radius-xl);box-shadow:0 4px 12px #0000001f;padding:12px;z-index:50;display:flex;flex-direction:column;gap:10px}.builder-canvas-popover-title{font-size:12px;font-weight:600;color:#111113;margin-bottom:2px}.builder-canvas-popover .builder-prop-input,.builder-canvas-popover .builder-style-color-row{margin-top:3px}.transform-pane{display:flex;flex-direction:column}.transform-step-item{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid #f7f7f8;background:#fff;text-align:left;font-family:inherit;width:100%}.transform-step-drag-handle{font-size:12px;color:#9c9ca3;cursor:grab;flex-shrink:0;line-height:1}.transform-step-drag-handle:active{cursor:grabbing}.transform-step-content{flex:1;min-width:0}.transform-step-label{font-size:12px;font-weight:600;color:#111113}.transform-step-summary{color:#65656c}.transform-step-remove{font-size:16px;color:#9c9ca3;background:none;border:none;cursor:pointer;padding:2px 6px;line-height:1;border-radius:var(--radius-sm);flex-shrink:0}.transform-step-remove:hover{color:var(--error-text);background:var(--error-bg)}.transform-step-edit-btn{font-size:12px;color:#9c9ca3;background:none;border:none;cursor:pointer;padding:2px 6px;line-height:1;border-radius:var(--radius-sm);flex-shrink:0;opacity:0}.transform-step-item:hover .transform-step-edit-btn,.transform-step-editing .transform-step-edit-btn{opacity:1}.transform-step-edit-btn:hover{color:var(--brand);background:var(--brand-bg)}.transform-step-editing{border-left:2px solid var(--brand)}.transform-step-sql{margin:0;padding:8px 12px;background:#f9f9fb;font-size:10px;color:#65656c;font-family:var(--font-mono, monospace);white-space:pre-wrap;word-break:break-all;line-height:1.5;border-top:1px solid #e2e2e6;border-radius:0 0 var(--radius-sm) var(--radius-sm)}.transform-add-step{display:flex;gap:4px;padding:8px 14px;border-bottom:1px solid #e2e2e6}.transform-add-step .builder-prop-select{flex:1}.transform-add-btn{padding:4px 10px;font-size:12px}.transform-step-config{padding:8px 14px;background:#f7f7f8;border-bottom:1px solid #e2e2e6}.transform-step-popout{position:fixed;width:320px;background:#fff;border:1px solid #e2e2e6;border-radius:var(--radius-xl);box-shadow:0 8px 24px #0000001f;z-index:1000;padding:12px;overflow:visible}.transform-step-popout-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12px;font-weight:600;color:#44444b}.col-autocomplete{position:relative;flex:1}.col-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;max-height:160px;overflow-y:auto;background:#fff;border:1px solid #e2e2e6;border-top:none;border-radius:0 0 6px 6px;box-shadow:0 4px 12px #00000014;z-index:1010;font-size:12px}.col-autocomplete-item{padding:4px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-autocomplete-item:hover,.col-autocomplete-item-active{background:#efeff1}.transform-config-row{display:flex;align-items:center;gap:4px;padding:4px 0}.transform-list-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.transform-list-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;background:#efeff1;border-radius:var(--radius-sm);font-size:11px;color:#44444b}.transform-list-chip-remove{background:none;border:none;cursor:pointer;font-size:12px;color:#9c9ca3;padding:0 2px;line-height:1}.transform-list-chip-remove:hover{color:var(--error-text)}.transform-config-arrow{color:#9c9ca3;font-size:12px;flex-shrink:0}.transform-sql-textarea{font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:12px;resize:vertical;min-height:60px}.transform-sql-hint{color:#9c9ca3;margin-top:4px}.transform-sql-hint code{background:#efeff1;padding:1px 4px;border-radius:var(--radius-sm);font-size:11px}.measure-editor{height:100%}.measure-editor-body{display:flex;flex:1;min-height:0;overflow:hidden}.measure-list{width:280px;min-width:280px;background:#fff;border-right:1px solid #e2e2e6;overflow-y:auto;display:flex;flex-direction:column}.measure-table-group-header{padding:6px 14px;font-size:11px;font-weight:600;color:#44444b;background:#f7f7f8;border-bottom:1px solid #e2e2e6;text-transform:uppercase;letter-spacing:.3px}.measure-list-item{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid #f7f7f8;background:#fff;text-align:left;width:100%}.measure-list-item-content{flex:1;min-width:0}.measure-list-item-name{font-size:12px;font-weight:600;color:var(--brand-hover)}.measure-list-item-expr{color:#65656c}.measure-delete-btn{padding:0 4px}.measure-add{padding:8px 14px}.measure-config{flex:1;overflow-y:auto;padding:16px}.measure-config-empty{color:#9c9ca3;font-size:13px;text-align:center;padding:40px 20px}.measure-form{max-width:480px}.measure-expr-textarea{resize:vertical;font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace;font-size:12px;min-height:60px}.measure-expr-hint{color:#9c9ca3;margin-top:2px}.measure-func-ref{margin-top:6px}.measure-func-ref-toggle{font-size:11px;color:var(--brand);padding:0;text-decoration:underline}.measure-func-ref-toggle:hover{color:var(--brand-hover)}.measure-func-ref-content{margin-top:6px;border:1px solid #e2e2e6;border-radius:var(--radius-lg);padding:6px 8px;max-height:220px;overflow-y:auto;background:#f7f7f8}.measure-func-ref-category{margin-bottom:6px}.measure-func-ref-category:last-child{margin-bottom:0}.measure-func-ref-category-name{font-size:10px;font-weight:600;color:#65656c;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.measure-func-ref-item{display:flex;gap:8px;padding:1px 0;font-size:11px;line-height:1.4}.measure-func-ref-syntax{font-family:monospace;color:#111113;white-space:nowrap;min-width:160px}.measure-func-ref-desc{color:#9c9ca3}.measure-form-actions{display:flex;gap:8px;margin-top:16px}.measure-form-error{color:var(--error-text);margin-top:2px}.measure-cancel-btn{background:none;border:1px solid #cfcfd5;color:#44444b;padding:4px 14px;border-radius:var(--radius-md);font-size:12px;cursor:pointer}.data-view-body>.builder-side-panel .json-editor-header{display:none}.data-view-transform-label{font-size:11px;font-weight:500;color:var(--brand);padding:2px 8px;background:var(--brand-bg);border-radius:var(--radius-sm)}.data-view-tab-badge{position:relative}.data-view-tab-badge:after{content:"";position:absolute;top:6px;right:6px;width:5px;height:5px;border-radius:50%;background:var(--brand)}.builder-field-transforms-btn{font-size:10px;color:#65656c;background:none;border:1px solid #e2e2e6;border-radius:var(--radius-sm);padding:1px 6px;cursor:pointer;margin-left:auto;flex-shrink:0}.builder-field-transforms-btn:hover,.builder-split-toggle-active{background:var(--brand-bg);color:var(--brand);border-color:#d4a5cc}.builder-side-panel{display:flex;flex-direction:column;background:#fff;border-left:1px solid #e2e2e6;overflow:hidden;position:relative;flex-shrink:0}.builder-side-panel-collapsed{width:40px!important;min-width:40px;cursor:pointer}.side-panel-header{display:flex;align-items:center;padding:0 10px;height:29px;border-bottom:1px solid #e2e2e6;flex-shrink:0;gap:4px;cursor:grab;background:#f8f8fa}.side-panel-header:active{cursor:grabbing}.side-panel-title{flex:1;font-size:12px;font-weight:600;color:#111113}.side-panel-btn{color:#9c9ca3;padding:2px 4px;font-size:14px;line-height:1}.side-panel-btn:hover{color:#44444b}.side-panel-collapsed-rail{writing-mode:vertical-rl;display:flex;gap:16px;padding:12px 0;align-items:center;justify-content:center;height:100%;font-size:12px;color:#65656c}.side-panel-collapsed-title{cursor:pointer}.sidebar-content{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.panel-drop-zone{display:flex;flex-direction:row;flex-shrink:0;align-items:stretch}.panel-drop-zone-empty{min-width:0;width:0;transition:min-width .15s ease}.panel-drop-zone-empty.drag-over{min-width:40px;background:var(--brand-shadow);border:1px dashed #c48fbb;border-radius:var(--radius-md)}.panel-drop-zone.drag-over{background:#7e3a7208}.panel-drop-zone-left .builder-side-panel{border-left:none;border-right:1px solid #e2e2e6}.panel-drop-zone-left .sidebar-resize-handle{left:auto;right:0}.panel-drop-indicator.active{width:3px;align-self:stretch;flex-shrink:0;background:var(--brand);border-radius:var(--radius-xs)}.side-panel-dragging{opacity:.4}.canvas-edge-drop-left{border-left:3px solid var(--brand)}.canvas-edge-drop-right{border-right:3px solid var(--brand)}.builder-panel-toggles{display:flex;align-items:center;gap:4px;margin-left:8px}.builder-viz-panel{background:#fff;overflow-y:auto}.builder-viz-section-label{padding:10px 14px 2px}.builder-type-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:4px 14px 8px}.builder-type-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;border:1px solid #e2e2e6;border-radius:var(--radius-md);background:#fff;font-size:9px;color:#65656c;cursor:pointer;transition:all .15s}.builder-type-btn:hover{background:#f7f7f8;border-color:#cfcfd5}.builder-type-btn-active{background:var(--brand-bg);border-color:var(--brand);color:var(--brand);font-weight:600}.builder-type-btn-icon{font-size:14px}.builder-wells-section{padding:8px 0}.builder-well{padding:0 14px;margin-bottom:8px}.builder-well-label{margin-bottom:4px}.builder-well-dropzone{min-height:32px;border:1px dashed #cfcfd5;border-radius:var(--radius-lg);padding:4px;transition:all .15s}.builder-well-dropzone-active{border-color:var(--brand);background:var(--brand-bg)}.builder-well-empty{padding:6px;font-size:11px;color:#9c9ca3}.builder-well-drop-indicator{height:2px;background:var(--brand);border-radius:1px;margin:1px 0}.builder-well-item{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#f7f7f8;border:1px solid #e2e2e6;border-radius:var(--radius-md);font-size:12px;color:#111113;margin-bottom:2px;cursor:grab}.builder-well-item:active{cursor:grabbing}.builder-well-item-measure{background:var(--brand-bg);border-color:#d4a5cc;color:var(--brand-hover)}.builder-well-item-name{flex:1}.builder-well-item-agg{font-size:10px;padding:1px 4px;border:1px solid #e2e2e6;border-radius:var(--radius-sm);background:#fff;color:#65656c;cursor:pointer}.builder-well-item-agg:hover{border-color:var(--brand);color:var(--brand)}.builder-analytics-section{padding:4px 12px 8px}.builder-analytics-item{border:1px solid #e2e2e6;border-radius:var(--radius-lg);margin-bottom:4px;overflow:hidden}.builder-analytics-item-header{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;font-size:12px;color:#44444b;-webkit-user-select:none;user-select:none}.builder-analytics-swatch{width:10px;height:10px;border-radius:var(--radius-xs);flex-shrink:0}.builder-analytics-item-label{flex:1;min-width:0}.builder-analytics-item-props{padding:4px 8px 8px;border-top:1px solid #efeff1;display:flex;flex-direction:column;gap:4px}.builder-prop-group-inline{display:flex;align-items:center;gap:6px}.builder-prop-label-sm{font-size:11px;color:#65656c;min-width:60px;flex-shrink:0}.builder-prop-input-sm{flex:1;min-width:0;font-size:11px;padding:2px 4px;border:1px solid #e2e2e6;border-radius:var(--radius-md);background:#fff;color:#111113}.builder-prop-color{width:24px;height:20px;border:1px solid #e2e2e6;border-radius:var(--radius-md);padding:0;cursor:pointer}.builder-analytics-add{margin-top:4px}.builder-analytics-add select{width:100%;font-size:12px}.context-menu{position:fixed;z-index:200;box-shadow:0 4px 12px #00000026;min-width:140px;overflow:hidden;padding:4px 0}.context-menu-item{display:block;width:100%;padding:6px 12px;font-size:12px;color:#44444b;text-align:left}.context-menu-item:disabled{color:#cfcfd5;cursor:default}.context-menu-item-danger:hover:not(:disabled){background:var(--error-bg);color:#e53e3e}.context-menu-item-divider{border-top:1px solid #e2e2e6;margin-top:4px;padding-top:10px}.builder-well-item-rename-input{flex:1;min-width:0;border:1px solid var(--brand);border-radius:var(--radius-sm);padding:1px 4px;font-size:12px;color:#111113;outline:none;background:#fff}.builder-agg-dropdown{top:100%;right:0;min-width:140px;overflow:hidden}.builder-agg-option{display:block;width:100%;padding:6px 12px;font-size:12px;color:#44444b;text-align:left}.builder-agg-option-active{font-weight:600;color:var(--brand)}.json-source-editor{background:#1e1e1e;height:100%;overflow:hidden}.json-editor-body{flex:1;min-height:0;overflow:hidden}.json-editor-body .cm-editor{height:100%;font-size:12.5px}.json-editor-body .cm-scroller{overflow:auto}.cm-gutterElement.cm-gutter-highlighted{background:#7e3a7226;color:#569cd6}.publish-description{font-size:13px;color:#65656c;line-height:1.6;margin-bottom:16px;padding:10px 12px;background:#f7f7f8;border-radius:var(--radius-lg)}.publish-summary{margin-top:12px;padding:10px 12px;background:#f7f7f8;border-radius:var(--radius-lg)}.publish-summary-title{font-size:12px;font-weight:600;color:#44444b;margin-bottom:6px}.publish-summary-item{font-size:12px;color:#65656c;padding:2px 0 2px 12px;position:relative}.publish-summary-item:before{content:"•";position:absolute;left:0;color:#9c9ca3}.publish-field-hint{font-size:11px;color:#65656c;margin-top:2px}.publish-field-hint-update{color:#d69e2e;font-weight:600}.builder-content{display:flex;flex:1;min-height:0}.builder-content-main{min-width:0}.ai-panel{position:relative;display:flex;flex-direction:column;flex-shrink:0;border-left:1px solid #e2e2e6;background:#fafafa}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #e2e2e6;flex-shrink:0}.ai-panel-header h3{font-size:13px;font-weight:600;color:#111113;margin:0}.ai-config-toggle{padding:3px 8px;border-radius:var(--radius-md);border:1px solid #e2e2e6;background:#fff;font-size:11px;cursor:pointer;color:#65656c}.ai-config{padding:10px 14px;border-bottom:1px solid #e2e2e6;background:#f7f7f8;flex-shrink:0}.ai-config-label{display:block;font-size:11px;font-weight:600;color:#65656c;margin-bottom:8px}.ai-config-input{display:block;width:100%;padding:5px 8px;margin-top:3px;border:1px solid #e2e2e6;border-radius:var(--radius-md);font-size:12px;outline:none;box-sizing:border-box}.ai-config-input:focus{border-color:var(--ai);box-shadow:0 0 0 1px var(--ai)}.ai-config-save{margin-top:8px;padding:5px 14px;font-size:12px}.ai-messages{flex:1;overflow-y:auto;padding:10px 14px}.ai-empty{font-size:12px;color:#9c9ca3;line-height:1.6;padding:12px 0}.ai-empty em{color:#65656c}.ai-message{margin-bottom:12px;padding:8px 10px;border-radius:var(--radius-xl);font-size:12px;line-height:1.5}.ai-message-user{background:var(--brand-bg);color:var(--brand-hover);margin-left:20px}.ai-message-assistant{background:#fff;color:#111113;border:1px solid #e2e2e6;margin-right:20px}.ai-message-content{white-space:pre-wrap;word-break:break-word}.ai-thinking{color:#9c9ca3;font-style:italic}.ai-visuals-preview{margin-top:8px;padding:8px;background:#f7f7f8;border-radius:var(--radius-lg);border:1px solid #e2e2e6}.ai-visuals-count{font-size:11px;font-weight:600;color:#44444b;margin-bottom:6px}.ai-visuals-list{list-style:none;padding:0;margin:0 0 8px}.ai-visuals-list li{font-size:11px;color:#65656c;padding:2px 0}.ai-visual-type{display:inline-block;padding:1px 5px;border-radius:var(--radius-sm);background:#efeff1;color:#44444b;font-size:10px;font-weight:600;text-transform:uppercase;margin-right:6px}.ai-insert-btn{width:100%;padding:5px 10px;font-size:11px}.ai-error{padding:6px 14px;font-size:11px;color:#e53e3e;background:var(--error-bg);border-top:1px solid var(--error-border);flex-shrink:0}.ai-input-area{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-top:1px solid #e2e2e6;background:#fff;flex-shrink:0}.ai-input-options{display:flex;align-items:center;justify-content:space-between;gap:8px}.ai-sample-values-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:#65656c;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-sample-values-toggle input{margin:0;cursor:pointer}.ai-input{flex:1;padding:6px 8px;border:1px solid #e2e2e6;border-radius:var(--radius-lg);font-size:12px;font-family:inherit;resize:none;outline:none;min-height:0}.ai-input:focus{border-color:var(--ai);box-shadow:0 0 0 1px var(--ai)}.ai-send-btn{padding:6px 14px;border-radius:var(--radius-lg);font-size:12px;align-self:flex-end}.data-view-toolbar{display:flex;align-items:center;gap:0;padding:4px 8px;background:#f3f3f3;border-bottom:1px solid #d1d1d1;flex-shrink:0;min-height:52px}.data-view-back-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;font-size:11px;font-weight:500;cursor:pointer;color:#44444b;transition:background .1s}.data-view-back-btn:hover{background:#0000000f}.data-view-selected-label{font-size:13px;font-weight:600;color:#111113;padding:0 12px}.data-view-tab-group{display:flex;gap:0;margin-left:auto}.data-view-body{display:flex;flex:1;min-height:0;overflow:hidden}.data-view-table-list{background:#fff;border-right:1px solid #e2e2e6;display:flex;flex-direction:column;position:relative;flex-shrink:0}.data-view-table-list-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:2}.data-view-table-list-resize:hover{background:#2563eb26}.table-context-menu{position:fixed;z-index:100;background:#fff;border:1px solid #e2e2e6;border-radius:6px;box-shadow:0 4px 16px #0000001f;padding:4px 0;min-width:140px}.table-context-menu-item{display:block;width:100%;padding:6px 14px;border:none;background:none;text-align:left;font-size:12px;font-family:inherit;cursor:pointer;color:#111113}.table-context-menu-item:hover{background:#f3f4f6}.table-context-menu-item-danger{color:#ef4444}.table-context-menu-item-danger:hover{background:#fef2f2}.data-view-table-list-scroll{flex:1;overflow-y:auto}.data-view-table-item{display:block;width:100%;padding:10px 14px;border:none;border-bottom:1px solid #f7f7f8;background:#fff;cursor:pointer;text-align:left;font-family:inherit;position:relative}.data-view-table-name{font-size:13px;font-weight:600;color:#111113}.data-view-table-meta{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:11px;color:#9c9ca3}.data-view-transform-badge{position:absolute;bottom:6px;right:8px;padding:1px 6px;border-radius:var(--radius-sm);background:#faf5ff;border:1px solid transparent;color:var(--ai);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s}.data-view-transform-badge:hover{background:#f0e8ff;border-color:#c4b5fd}.data-view-transform-badge.active{background:#ede9fe;border-color:#c4b5fd}.data-view-preview{min-width:0;overflow:hidden}.data-view-preview-header{display:flex;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:600;color:#111113;background:#f8f8fa;border-bottom:1px solid #e2e2e6;flex-shrink:0;height:29px}.data-view-row-count{font-size:11px;font-weight:400;color:#9c9ca3}.data-view-preview-empty{display:flex;justify-content:center;align-items:center;height:100%;color:#9c9ca3;font-size:13px}.data-view-grid-wrapper{font-size:12px}.data-view-grid-header-scroll{overflow:hidden;flex-shrink:0;border-bottom:2px solid #e2e2e6;background:#fff}.data-view-grid-header{position:relative}.data-view-grid-th{display:flex;flex-direction:column;padding:6px 10px;white-space:nowrap;box-sizing:border-box}.data-view-grid-th-content{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.data-view-grid-th-text{display:flex;flex-direction:column;min-width:0;overflow:hidden}.col-sortable{cursor:pointer}.col-sortable:hover .data-view-col-name{color:var(--brand)}.col-sort-indicator{font-size:9px;color:var(--brand)}.col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;z-index:2}.col-resize-handle:hover,.col-resize-handle:active{background:var(--brand)}.col-filter-btn{flex-shrink:0;padding:0 2px;font-size:10px;line-height:1;color:#9c9ca3;opacity:0;transition:opacity .1s}.data-view-grid-th:hover .col-filter-btn,.col-filter-btn-active{opacity:1}.col-filter-btn-active{color:var(--brand)}.col-filter-btn:hover{color:#111113}.col-filter-dropdown{top:100%;left:0;width:220px;max-height:320px;display:flex;flex-direction:column;font-weight:400;box-shadow:0 4px 12px #0000001f}.col-filter-search{width:100%;padding:8px 10px;border:none;border-bottom:1px solid #e2e2e6;font-size:12px;outline:none}.col-filter-search:focus{border-bottom-color:var(--brand)}.col-filter-actions{display:flex;gap:8px;padding:6px 10px;border-bottom:1px solid #efeff1}.col-filter-actions button{border:none;background:none;color:var(--brand);cursor:pointer;font-size:11px;padding:0}.col-filter-actions button:hover{text-decoration:underline}.col-filter-list{flex:1;overflow-y:auto;max-height:200px;padding:4px 0}.col-filter-item{display:flex;align-items:center;gap:6px;padding:3px 10px;cursor:pointer;font-size:12px;color:#44444b}.col-filter-item:hover{background:#efeff1}.col-filter-item input[type=checkbox]{margin:0;flex-shrink:0}.col-filter-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-filter-empty{padding:8px 10px;font-size:12px;color:#9c9ca3;text-align:center}.col-filter-apply{width:100%;padding:8px;border:none;border-top:1px solid #e2e2e6;font-size:12px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.data-view-col-name{font-weight:600;color:#111113}.data-view-col-type{color:#9c9ca3;text-transform:uppercase;font-weight:400}.props-panel{padding:12px;overflow-y:auto;height:100%}.props-panel-empty{padding:16px;color:#9c9ca3;font-size:12px}.props-section{margin-bottom:16px}.props-section-title{font-size:11px;font-weight:700;text-transform:uppercase;color:#9c9ca3;margin-bottom:8px;letter-spacing:.5px}.props-field{margin-bottom:8px}.props-field-label{font-size:11px;font-weight:600;color:#6b7280;margin-bottom:2px}.props-field-value{font-size:12px;color:#111113}.props-textarea{width:100%;border:1px solid #e5e7eb;border-radius:4px;padding:6px 8px;font-size:12px;resize:none;overflow:hidden;font-family:inherit;color:#111113;background:#fff;outline:none;box-sizing:border-box}.props-textarea:focus{border-color:#2563eb}.props-textarea-sm{font-size:11px;padding:4px 6px}.props-column{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #f3f4f6}.props-column:last-child{border-bottom:none}.props-column-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.props-column-name{font-size:12px;font-weight:600;color:#111113}.props-column-type{font-size:10px;color:#9c9ca3;text-transform:uppercase}.props-column-source{font-size:10px;color:#b0b0b5;font-style:italic;margin-left:auto}.data-view-grid-body{flex:1;overflow:auto;min-height:0}.data-view-grid-td{padding:4px 10px;border-bottom:1px solid #efeff1;white-space:nowrap;line-height:20px;box-sizing:border-box}.data-view-grid-td-even{background:#f7f7f8}.data-view-grid-td-placeholder{background:#f7f7f8;opacity:.5}.model-view-toolbar{display:flex;align-items:center;gap:0;padding:4px 8px;background:#f3f3f3;border-bottom:1px solid #d1d1d1;min-height:52px}.model-view-title{font-size:13px;font-weight:600;color:#111113;padding:0 12px}.model-view-stats{font-size:11px;color:#9c9ca3}.model-view-canvas{flex:1;min-height:0}.model-table-node{background:#fff;border:1px solid #e2e2e6;border-radius:var(--radius-lg);box-shadow:0 1px 4px #00000014;min-width:200px;max-width:260px;font-family:inherit;overflow:visible!important}.model-table-header{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;font-size:12px;font-weight:700;color:#fff;background:var(--brand);border-radius:5px 5px 0 0;position:relative}.model-table-header-count{font-size:10px;font-weight:600;background:#ffffff40;border-radius:var(--radius-xl);padding:0 6px;line-height:18px;flex-shrink:0;margin-left:8px}.model-table-columns{max-height:260px;overflow-y:auto;padding:2px 0}.model-table-columns::-webkit-scrollbar{width:4px}.model-table-columns::-webkit-scrollbar-track{background:transparent}.model-table-columns::-webkit-scrollbar-thumb{background:#cfcfd5;border-radius:var(--radius-xs)}.model-table-col{display:flex;align-items:center;gap:6px;padding:3px 10px;border-bottom:1px solid #f7f7f8;font-size:11px;position:relative}.model-table-col:last-child{border-bottom:none}.model-table-col-related{background:var(--brand-bg)}.model-table-col-measure{font-style:italic}.model-table-divider{height:1px;background:#e2e2e6;margin:2px 10px}.model-table-col-icon{font-size:10px;width:16px;text-align:center;flex-shrink:0}.model-table-col-name{font-weight:500;color:#111113;flex:1}.model-table-col-type{font-size:9px;color:#9c9ca3;text-transform:uppercase;flex-shrink:0}.model-edge-label{position:absolute;font-size:12px;font-weight:700;color:var(--brand);pointer-events:none}.model-edge-center-label{position:absolute;font-size:14px;color:#65656c}.model-view-hint{font-size:11px;color:#9c9ca3;margin-left:auto}.model-col-handle{width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;background:var(--brand)!important;border:2px solid white!important;opacity:0;pointer-events:auto!important;cursor:crosshair;transition:opacity .15s;z-index:10}.model-col-handle-left{left:-5px!important}.model-col-handle-right{right:-5px!important}.model-table-col:hover .model-col-handle{opacity:1}.model-table-col-related .model-col-handle{opacity:.6}.model-table-col-related:hover .model-col-handle{opacity:1}.model-edge-toolbar{display:flex;align-items:center;gap:2px;padding:4px 6px;box-shadow:0 2px 8px #0000001f;white-space:nowrap}.model-edge-toolbar-btn{padding:2px 8px;font-size:11px;font-weight:500;border:1px solid #e2e2e6;border-radius:var(--radius-md);background:#fff;color:#44444b;cursor:pointer;transition:all .1s}.model-edge-toolbar-btn:hover{background:#efeff1}.model-edge-toolbar-btn-active{background:var(--brand);color:#fff;border-color:var(--brand)}.model-edge-toolbar-btn-active:hover{background:var(--brand-hover)}.model-edge-toolbar-btn-delete{color:#e53e3e;font-size:14px;font-weight:700;padding:2px 6px}.model-edge-toolbar-btn-delete:hover{background:var(--error-bg);border-color:#e53e3e}.model-edge-toolbar-sep{width:1px;height:16px;background:#e2e2e6;margin:0 2px}.new-table-chooser-dialog{background:#fff;border:1px solid #e2e2e6;border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);width:90vw;max-width:420px;display:flex;flex-direction:column;overflow:hidden}.new-table-chooser-dialog .import-header{border-bottom:1px solid #e2e2e6;padding:1.25rem 1.5rem}.new-table-chooser-dialog .import-header h2{font-size:.95rem;font-weight:600;color:#111113;letter-spacing:-.01em}.new-table-chooser-dialog .import-close{color:#9c9ca3}.new-table-chooser-dialog .import-close:hover{color:#111113}.new-table-chooser-body{padding:1rem 1.5rem 1.5rem}.new-table-chooser-subtitle{margin:0 0 1rem;font-size:.8rem;color:#65656c}.new-table-chooser-grid{display:flex;flex-direction:column;gap:8px}.new-table-chooser-card{display:flex;align-items:center;gap:14px;padding:.85rem 1rem;background:#f7f7f8;border:1px solid #e2e2e6;border-radius:var(--radius-xl);cursor:pointer;text-align:left;transition:border-color .15s,background .15s,transform .1s,box-shadow .15s}.new-table-chooser-card:hover{border-color:var(--brand);background:var(--brand-shadow);box-shadow:0 4px 20px #00000014;transform:translateY(-2px)}.new-table-chooser-card:active{transform:scale(.98)}.new-table-chooser-card-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-xl);background:#f7f7f8;border:1px solid #e2e2e6;color:#65656c}.new-table-chooser-card:hover .new-table-chooser-card-icon{color:var(--brand);border-color:var(--brand);background:var(--brand-shadow)}.new-table-chooser-card-text{display:flex;flex-direction:column;gap:2px}.new-table-chooser-card-label{font-size:.85rem;font-weight:600;color:#111113;display:block}.new-table-chooser-card-desc{font-size:.75rem;color:#9c9ca3;display:block}.table-editor-dialog{background:#fff;border-radius:var(--radius-2xl);box-shadow:0 20px 60px #0003;width:90vw;max-width:860px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.table-editor-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;min-height:0}.table-editor-top-row{display:flex;align-items:flex-end;gap:12px}.table-editor-mode-toggle{display:flex;border:1px solid #e2e2e6;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0}.table-editor-ai-bar{display:flex;gap:6px;padding:8px 10px;background:#faf5ff;border:1px solid #e9d8fd;border-radius:var(--radius-xl)}.table-editor-ai-input{flex:1;padding:6px 10px;border:1px solid #d6bcfa;border-radius:var(--radius-lg);font-size:12px;font-family:inherit;background:#fff;outline:none}.table-editor-ai-input:focus{border-color:var(--ai);box-shadow:0 0 0 2px #805ad526}.table-editor-ai-btn{padding:6px 14px;border-radius:var(--radius-lg);font-size:12px;white-space:nowrap}.table-editor-grid-area{border:1px solid #e2e2e6;border-radius:var(--radius-xl);overflow:hidden}.table-editor-col-header{display:flex;flex-direction:column;gap:3px;padding:4px 2px;width:100%}.table-editor-col-header-top{display:flex;align-items:center;gap:2px}.table-editor-col-header-name{flex:1;min-width:0;padding:2px 5px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:12px;font-weight:600;color:#111113;background:transparent}.table-editor-col-header-name:hover{border-color:#e2e2e6;background:#f7f7f8}.table-editor-col-header-name:focus{outline:none;border-color:var(--brand);background:#fff}.table-editor-col-header-type{width:100%;padding:1px 3px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:10px;color:#9c9ca3;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.table-editor-col-header-type:hover{border-color:#e2e2e6;background:#f7f7f8;color:#65656c}.table-editor-col-header-type:focus{outline:none;border-color:var(--brand);background:#fff;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.table-editor-col-header-remove{flex-shrink:0;background:none;border:none;color:#cfcfd5;cursor:pointer;font-size:14px;padding:0 2px;line-height:1;border-radius:var(--radius-sm)}.table-editor-col-header-remove:hover{color:#e53e3e;background:var(--error-bg)}.table-editor-col-header-add{width:100%;height:100%;background:none;border:none;font-size:18px;color:#cfcfd5;cursor:pointer}.table-editor-col-header-add:hover{color:var(--brand);background:var(--brand-bg)}.table-editor-sql-area{display:flex;flex-direction:column;gap:8px}.table-editor-sql-actions{display:flex;gap:8px}.table-editor-grid{font-size:12px}.waterfall-chart,.funnel-chart{width:100%;height:100%}.gantt-chart{width:100%;height:100%;overflow:auto}.visual-textbox{line-height:1.6;word-wrap:break-word}.visual-textbox h1{font-size:20px;font-weight:700;margin:8px 0 4px}.visual-textbox h2{font-size:16px;font-weight:600;margin:6px 0 3px}.visual-textbox h3{font-size:14px;font-weight:600;margin:4px 0 2px}.visual-textbox li{margin-left:16px;list-style:disc}.visual-image img{display:block}.visual-button{padding:8px 20px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,color .15s}.visual-button-primary{background:var(--brand);color:#fff;border-color:var(--brand)}.visual-button-primary:hover:not(:disabled){background:var(--brand-hover)}.visual-button-secondary{background:#fff;color:#44444b;border-color:#e2e2e6}.visual-button-secondary:hover:not(:disabled){background:#f7f7f8}.visual-shape-line hr{margin:0}.filter-row{background:#f7f7f8;border:1px solid #e2e2e6;border-radius:var(--radius-md);padding:6px 8px;margin-bottom:2px;cursor:grab}.filter-row:active{cursor:grabbing}.filter-row-measure{background:var(--brand-bg);border-color:#d4a5cc}.filter-row-header{display:flex;align-items:center;gap:4px}.filter-row-grip{font-size:10px;color:#9c9ca3;flex-shrink:0;cursor:grab}.filter-row-header .builder-prop-select{flex:1;min-width:0}.filter-row-controls{display:flex;flex-direction:column;gap:4px;margin-top:4px}.filter-row-controls .builder-prop-select,.filter-row-controls .builder-prop-input{width:100%}.filter-between-inputs{display:flex;gap:4px}.filter-between-inputs .builder-prop-input{flex:1}.filter-empty{font-size:12px;color:#9c9ca3;font-style:italic;padding:4px 0}.selection-pane{display:flex;flex-direction:column;gap:1px;padding:4px 0}.selection-pane-item{display:flex;align-items:center;gap:4px;min-height:32px;padding:2px 8px;cursor:pointer;border-left:3px solid transparent;-webkit-user-select:none;user-select:none}.selection-pane-item-selected{border-left-color:var(--brand);background:var(--brand-bg)}.selection-pane-item-hidden .selection-pane-item-name{opacity:.4;text-decoration:line-through}.selection-pane-item-name{flex:1;font-size:13px}.selection-pane-icon-btn{padding:2px 4px;font-size:14px;border-radius:var(--radius-sm);opacity:.5;line-height:1}.selection-pane-icon-btn:hover{opacity:1;background:#efeff1}.selection-pane-icon-btn.active{opacity:1;color:var(--brand)}.selection-pane-item-drop-target{border-top:2px solid var(--brand)}.selection-pane-empty{font-size:12px;color:#9c9ca3;font-style:italic;padding:8px;text-align:center}.builder-visual-locked{cursor:default!important}.builder-lock-indicator{position:absolute;top:4px;right:4px;font-size:12px;opacity:.5;pointer-events:none;z-index:1}.titlebar-collab-section{display:flex;align-items:center;gap:4px}.titlebar-share-dot{background:#22c55e}.presence-bar{display:flex;align-items:center;padding:0 2px}.presence-avatar{width:26px;height:26px;border-radius:50%;font-size:11px;font-weight:600;color:#fff;border:2px solid var(--dark-bg);margin-left:-8px;cursor:default;position:relative;transition:transform .15s}.presence-avatar:first-child{margin-left:0}.presence-avatar:hover{transform:translateY(-2px);z-index:10!important}.presence-overflow{margin-left:-4px;padding:0 8px;height:26px;border-radius:13px;background:#ffffff1f;color:var(--dark-text);font-size:11px;font-weight:600;border:2px solid var(--dark-bg)}.stale-model-indicator{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--warning-bg);border:1px solid #eab308;border-radius:var(--radius-lg);font-size:12px;color:var(--warning-text);white-space:nowrap}.stale-model-dot{background:#eab308}.stale-model-refresh-btn{background:none;border:1px solid #ca8a04;border-radius:var(--radius-md);padding:2px 8px;font-size:11px;color:var(--warning-text);cursor:pointer}.stale-model-refresh-btn:hover{background:#fef9c3}.share-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:#fff;border-radius:var(--radius-2xl);box-shadow:0 8px 32px #0000002e,0 0 0 1px #0000000f;z-index:1000;overflow:hidden;animation:share-panel-in .15s ease}@keyframes share-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.share-panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid #efeff1}.share-panel-title{font-size:13px;font-weight:600;color:var(--dark-bg)}.share-panel-status-live{display:flex;align-items:center;gap:6px;font-size:12px;color:#16a34a;font-weight:500}.share-panel-live-dot{background:#16a34a;animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.4}}.share-panel-error{padding:8px 16px;background:#fef2f2;color:#dc2626;font-size:12px;border-bottom:1px solid #fecaca}.share-panel-section-label{padding:10px 16px 6px;font-size:11px;font-weight:500;color:var(--dark-text);text-transform:uppercase;letter-spacing:.04em}.share-panel-peers{padding:6px 0;max-height:260px;overflow-y:auto}.share-panel-peer{display:flex;align-items:center;gap:10px;padding:6px 16px;transition:background .1s}.share-panel-peer-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}.share-panel-peer-info{min-width:0}.share-panel-peer-name{font-size:13px;font-weight:500;color:var(--dark-bg)}.share-panel-you{color:var(--dark-text);font-weight:400}.share-panel-peer-meta{color:var(--dark-text)}.share-panel-hint{padding:10px 16px;font-size:12px;color:var(--dark-text)}.share-panel-browse{padding:2px 0 8px;max-height:300px;overflow-y:auto}.share-panel-ws{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;background:none;border:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--dark-border);text-align:left;transition:background .1s}.share-panel-ws-arrow{color:var(--dark-text);font-size:10px;width:12px;flex-shrink:0}.share-panel-ws-reports{padding-left:20px}.share-panel-report{display:flex;justify-content:space-between;align-items:center;width:100%;padding:6px 16px;background:none;border:none;cursor:pointer;font-size:13px;color:#475569;text-align:left;transition:background .1s}.share-panel-report-join{font-size:12px;font-weight:500;color:var(--brand);opacity:0;transition:opacity .15s;flex-shrink:0;padding-left:8px}.share-panel-report:hover .share-panel-report-join{opacity:1}.share-panel-auth{padding:4px 16px 16px}.share-panel-field{margin-bottom:10px}.share-panel-field label{display:block;font-size:12px;font-weight:500;color:#65656c;margin-bottom:4px}.share-panel-field input{width:100%;padding:7px 10px;border-radius:var(--radius-lg);border:1px solid #e2e2e6;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.share-panel-field input:focus{border-color:var(--brand);box-shadow:0 0 0 2px #7e3a721a}.share-panel-auth-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.share-panel-footer{padding:10px 16px;border-top:1px solid #efeff1}.share-panel-btn{width:100%;padding:7px 14px;border-radius:var(--radius-lg);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.share-panel-btn-primary{border:none;width:100%;padding:8px 16px;border-radius:var(--radius-lg);font-size:13px}.share-panel-btn-disconnect{background:#fff;color:#65656c;border:1px solid #e2e2e6}.share-panel-btn-disconnect:hover{color:#dc2626;border-color:#fecaca;background:#fef2f2}.share-panel-btn-link{color:var(--brand);font-size:12px;padding:0;text-align:center}.share-panel-btn-link:hover{color:var(--brand-hover)}.sync-toast{position:fixed;bottom:16px;right:16px;display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--dark-bg);color:#e2e2e6;font-size:12px;font-weight:500;border-radius:var(--radius-xl);box-shadow:0 4px 16px #0003;z-index:2000;animation:sync-toast-in .3s ease}.sync-toast-dot{background:var(--brand)}@keyframes sync-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes lvz-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
