.customer-selection{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.customer-selection-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;padding-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border)}.customer-selection-title-section h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 6px;font-weight:var(--font-weight-semibold)}.customer-selection-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.loading-state{text-align:center;padding:80px var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-md)}.customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-2xl)}.customer-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all .2s ease;display:flex;flex-direction:column;background:var(--color-bg-primary);position:relative;overflow:hidden}.customer-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);opacity:0;transition:opacity .2s ease}.customer-card:hover{box-shadow:var(--shadow-xl);border-color:var(--color-secondary-hover);transform:translateY(-2px)}.customer-card:hover:before{opacity:1}.customer-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg);gap:var(--spacing-md)}.customer-card-title-section{flex:1;min-width:0}.customer-card-header h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0;font-weight:var(--font-weight-semibold);line-height:1.4}.customer-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);font-size:var(--font-size-xs);padding:var(--spacing-lg) 0;border-top:1px solid var(--color-bg-hover);margin-top:auto}.customer-card-footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-bg-hover)}.template-list{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.template-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;padding-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border)}.template-list-title-section h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 6px;font-weight:var(--font-weight-semibold)}.template-list-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.template-list-actions{display:flex;gap:var(--spacing-md)}.empty-state{text-align:center;padding:80px var(--spacing-xl);color:var(--color-text-secondary)}.empty-state-icon{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg);opacity:.6}.empty-state p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-2xl) 0;max-width:400px;margin-left:auto;margin-right:auto}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--spacing-2xl)}.template-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all .2s ease;display:flex;flex-direction:column;background:var(--color-bg-primary);position:relative;overflow:hidden}.template-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);opacity:0;transition:opacity .2s ease}.template-card:hover{box-shadow:var(--shadow-xl);border-color:var(--color-secondary-hover);transform:translateY(-2px)}.template-card:hover:before{opacity:1}.template-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg);gap:var(--spacing-md)}.template-card-title-section{flex:1;min-width:0}.template-card-header h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 6px;font-weight:var(--font-weight-semibold);line-height:1.4}.template-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.template-actions{display:flex;gap:6px;flex-shrink:0}.template-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);font-size:var(--font-size-xs);padding:var(--spacing-lg) 0;border-top:1px solid var(--color-bg-hover);margin-top:auto}.meta-item{display:flex;align-items:center;gap:var(--spacing-sm)}.meta-label{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.meta-value{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.template-card-footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-bg-hover)}.template-form-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.template-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.template-form-header h2{font-size:var(--font-size-xl);color:var(--color-text-primary)}.template-form{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.form-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-section label{display:flex;flex-direction:column;gap:6px;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-section input[type=text],.form-section textarea,.form-section select{padding:10px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.form-section input[type=text]:focus,.form-section textarea:focus,.form-section select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.section-header h3{font-size:var(--font-size-lg);color:var(--color-text-primary)}.columns-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.columns-list .column-item{display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--spacing-sm)}.columns-list .column-item .column-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s;width:100%;flex-shrink:0;box-sizing:border-box}.columns-list .column-item .column-header:hover{background:var(--color-bg-hover)}.columns-list .column-item .column-header-title{display:flex;align-items:center;gap:var(--spacing-sm);flex:1}.columns-list .column-item .column-header-toggle{font-size:var(--font-size-sm);color:var(--color-text-secondary);width:20px;display:inline-block}.columns-list .column-item .column-header-text{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-md)}.columns-list .column-item .column-content{padding:var(--spacing-lg);background:var(--color-bg-secondary);width:100%;box-sizing:border-box}.columns-list .column-item .column-content .column-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:var(--spacing-md);align-items:start;width:100%;max-width:100%;box-sizing:border-box}.columns-list .column-content .column-form-grid .column-form-field:first-child{grid-column:span 2}.columns-list .column-content .column-form-grid .column-form-field:last-child{grid-column:span 4}.columns-list .column-content .column-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:0;box-sizing:border-box}.columns-list .column-content .column-form-field label{display:flex;flex-direction:column;gap:var(--spacing-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.columns-list .column-content .column-form-field input[type=text],.columns-list .column-content .column-form-field select{padding:var(--spacing-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit;width:100%;box-sizing:border-box}.columns-list .column-content .column-form-field input[type=text]:focus,.columns-list .column-content .column-form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.columns-list .column-content .column-form-field .checkbox-label{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding-top:var(--spacing-sm)}.columns-list .column-content .column-form-field .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.columns-list .column-item .column-drag-grip{cursor:grab;padding:0 var(--spacing-xs);color:var(--color-text-tertiary);font-size:var(--font-size-md);line-height:1;-webkit-user-select:none;user-select:none;touch-action:none}.columns-list .column-item .column-drag-grip:active{cursor:grabbing}.column-drag-overlay .column-item{box-shadow:var(--shadow-lg);background:var(--color-bg-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md)}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.select-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:inherit;transition:all .2s;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer}.select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.select:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.6}.select-error{border-color:var(--color-danger)}.select-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef44441a}.select-error-message{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--spacing-xs)}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border-light);display:flex;justify-content:flex-end;gap:var(--spacing-sm);background:var(--color-bg-secondary)}.error-banner{position:relative;padding:20px;background:#f8d7da;border:1px solid #dc3545;border-radius:8px;margin:20px 0;color:#721c24}.error-banner h3{margin-top:0;margin-bottom:10px;font-size:var(--font-size-lg)}.error-banner p{margin:0;font-size:var(--font-size-md)}.error-banner-dismiss{position:absolute;top:10px;right:10px;background:none;border:none;font-size:24px;color:#721c24;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color .2s}.error-banner-dismiss:hover{background-color:#721c241a}body.modal-open{overflow:hidden}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:1000px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-content.test-modal{max-width:95vw;width:95%}.modal-content.rule-form-modal{max-width:1100px;width:92%}.modal-content.rule-form-modal.with-chat{max-width:1600px;width:95%}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.modal-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.modal-header-actions .btn-open-chat{font-size:var(--font-size-xs);padding:6px var(--spacing-md)}.modal-close{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color .2s}.modal-close:hover{background-color:var(--color-bg-hover)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1;display:flex;flex-direction:column}.modal-body.with-chat{flex-direction:row;gap:var(--spacing-lg);padding:var(--spacing-lg);overflow:hidden;min-height:0}.modal-chat-container{width:50%;flex-shrink:0;border-right:1px solid var(--color-border-light);padding-right:var(--spacing-lg);min-height:0;order:2;overflow-y:auto}.modal-chat-container .mapping-chat-panel.embedded{min-height:min-content;display:flex;flex-direction:column}.modal-form-container,.modal-content-container{flex:1;min-width:0;overflow-y:auto;display:flex;flex-direction:column;order:1}.modal-form-container.with-chat,.modal-content-container.with-chat{width:50%;max-width:none;min-height:0}.modal-content-container.with-cell-selection{width:100%!important;max-width:none}.file-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.file-item{padding:var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.file-item:hover{border-color:var(--color-primary);background-color:var(--color-system-bg);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.file-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.file-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-md)}.file-date{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.file-item-meta{display:flex;gap:var(--spacing-md);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.empty-state,.loading{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.error-banner{background-color:var(--color-error-bg);color:var(--color-error-text);padding:var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md)}.execute-migration{max-width:1400px;margin:0 auto;padding:var(--spacing-2xl)}.execute-migration-header{margin-bottom:var(--spacing-2xl)}.execute-migration-header .btn-back{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-hover) 100%);border:1px solid var(--color-secondary-hover);color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s;margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.execute-migration-header .btn-back:hover{background:linear-gradient(135deg,var(--color-secondary-hover) 0%,var(--color-secondary-hover) 100%);border-color:var(--color-secondary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.execute-migration-header h2{margin:1rem 0 0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.step-section{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.step-section h3{font-size:var(--font-size-lg);margin:0 0 var(--spacing-lg) 0;color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.branch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.branch-card{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);background:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.branch-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.branch-card.selected{border-color:var(--color-primary);background:linear-gradient(135deg,#3b82f60d,#2563eb1a);box-shadow:var(--shadow-md)}.branch-name{flex:1}.branch-selected-check{color:var(--color-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.template-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.template-select-card{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-lg);background:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-align:left}.template-select-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.template-select-card.selected{border-color:var(--color-primary);background:linear-gradient(135deg,#3b82f60d,#2563eb1a);box-shadow:var(--shadow-md)}.template-select-card-content{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.template-select-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.template-select-description{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.template-select-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.template-selected-check{color:var(--color-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-left:var(--spacing-md)}.source-system-select{max-width:400px}.source-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg);align-items:start}.source-template-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.source-template-card-header h4{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.source-template-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.source-template-meta .meta-item{font-size:var(--font-size-sm)}.source-template-meta .meta-label{color:var(--color-text-secondary);margin-right:var(--spacing-xs)}.source-template-meta .meta-value{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.natural-key-display{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-system-bg);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.natural-key-label{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap}.natural-key-value{color:var(--color-primary);font-family:monospace;word-break:break-word}.columns-section{margin:var(--spacing-md) 0;padding-top:var(--spacing-md);border-top:1px solid var(--color-bg-hover)}.expand-toggle{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-sm) 0;display:flex;align-items:center;gap:var(--spacing-xs);transition:color .2s}.expand-toggle:hover{color:var(--color-primary-hover)}.columns-table-container{margin-top:var(--spacing-md);max-height:300px;overflow-y:auto}.columns-table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:4px;overflow:hidden}.columns-table thead{background-color:#f3f4f6;position:sticky;top:0}.columns-table th{padding:.75rem;text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:2px solid var(--color-border-light)}.columns-table td{padding:.75rem;font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-light)}.columns-table tbody tr:last-child td{border-bottom:none}.columns-table code{background-color:#f3f4f6;padding:.25rem .5rem;border-radius:4px;font-size:.8125rem;color:var(--color-text-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace}.source-template-card-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light)}.source-template-card-actions .btn{width:100%}.create-new-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border-light)}.execute-migration .empty-state{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.execute-migration .empty-state-icon{font-size:2.5rem;margin-bottom:var(--spacing-md)}.execute-migration .empty-state h4{margin:0 0 var(--spacing-sm) 0;color:var(--color-text-primary)}.execute-migration .empty-state p{margin:0}.execute-migration .error-banner{background-color:var(--color-error-bg);color:var(--color-error-text);padding:1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.execute-migration .loading{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.searchable-select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.searchable-select-label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.searchable-select{position:relative}.searchable-select-trigger{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background-color:var(--color-bg-primary);cursor:pointer;gap:var(--spacing-sm)}.searchable-select-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.searchable-select.open .searchable-select-trigger{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.searchable-select.has-error .searchable-select-trigger{border-color:var(--color-danger)}.searchable-select.disabled .searchable-select-trigger{opacity:.6;cursor:not-allowed;background-color:var(--color-bg-secondary)}.searchable-select-placeholder{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.searchable-select-value{color:var(--color-text-primary);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select-arrow{flex-shrink:0;font-size:var(--font-size-xxs);color:var(--color-text-secondary)}.searchable-select-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:center;flex:1}.searchable-select-tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.searchable-select-tag.intermediate{background-color:transparent;color:var(--color-primary);border:1.5px dashed var(--color-primary)}.searchable-select-tag-remove{background:none;border:none;color:inherit;cursor:pointer;font-size:var(--font-size-md);line-height:1;padding:0;margin:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.searchable-select-tag-remove:hover{background-color:#fff3}.searchable-select-tag.intermediate .searchable-select-tag-remove{color:var(--color-primary)}.searchable-select-tag.intermediate .searchable-select-tag-remove:hover{background-color:#00000014}.searchable-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:var(--spacing-xs);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);box-shadow:0 4px 6px #0000001a;z-index:1000;overflow:hidden}.searchable-select-search{position:relative;padding:var(--spacing-sm);border-bottom:1px solid var(--color-border-light)}.searchable-select-search-input{width:100%;box-sizing:border-box;padding:var(--spacing-sm) var(--spacing-md);padding-right:32px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.searchable-select-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.searchable-select-search-clear{position:absolute;right:calc(var(--spacing-sm) + 8px);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:1;padding:2px;display:flex;align-items:center;justify-content:center}.searchable-select-search-clear:hover{color:var(--color-text-primary)}.searchable-select-options{max-height:280px;overflow-y:auto}.searchable-select-group-header{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:1}.searchable-select-option{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary);transition:background-color .1s}.searchable-select-option:hover,.searchable-select-option.highlighted{background-color:var(--color-primary);color:#fff}.searchable-select-option.selected{font-weight:var(--font-weight-medium)}.searchable-select-option.intermediate{padding-left:calc(var(--spacing-md) + 8px);font-style:italic;color:var(--color-text-secondary)}.searchable-select-option.intermediate:hover,.searchable-select-option.intermediate.highlighted{background-color:var(--color-primary);color:#fff}.searchable-select-empty{padding:var(--spacing-md);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.searchable-select-error{color:var(--color-error-text);font-size:var(--font-size-xs)}.natural-key-selector{display:flex;flex-direction:column;gap:var(--spacing-md)}.natural-key-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.natural-key-label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.natural-key-label .required{color:var(--color-danger)}.natural-key-help{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.natural-key-empty{padding:var(--spacing-lg);text-align:center;color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px dashed var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.file-upload-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.file-upload-header{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.file-upload-header h2{font-size:var(--font-size-xl);color:var(--color-text-primary);margin:0}.template-info{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.template-info-line{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.template-info-line strong{color:var(--color-primary)}.help-text{margin-top:.5rem;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}.file-upload-header .btn-back{align-self:flex-start;position:relative;z-index:10}.file-upload-content{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.file-name-input label{display:flex;flex-direction:column;gap:var(--spacing-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.file-name-input input{padding:10px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.drop-zone{border:2px dashed var(--color-border-light);border-radius:var(--radius-lg);padding:60px var(--spacing-xl);text-align:center;cursor:pointer;transition:all .2s;background:var(--color-bg-tertiary)}.drop-zone:hover,.drop-zone.dragging{border-color:var(--color-primary);background:var(--color-system-bg)}.drop-zone.has-file{border-color:var(--color-success);background:var(--color-success-bg)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.drop-icon{font-size:var(--font-size-4xl)}.file-selected{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.file-icon{font-size:var(--font-size-4xl)}.file-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.file-size{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.upload-actions{display:flex;justify-content:center}.sample-file-option{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.sample-file-divider{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.btn-sample{min-width:280px}.tenant-selection{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-lg)}.tenant-selection h3{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-md);color:var(--color-text-primary)}.tenant-dropdowns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}@media (max-width: 768px){.tenant-dropdowns{grid-template-columns:1fr}}.choice-card{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);overflow:hidden}.choice-card-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);min-height:32px}.choice-card-title{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;padding:6px 0}.choice-card-tabs{display:flex;gap:0;overflow-x:auto;flex:1;min-width:0}.choice-card-tab{padding:6px 10px;font-size:11px;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.choice-card-tab:hover{color:var(--color-text-primary)}.choice-card-tab.active{border-bottom-color:var(--color-primary)}.choice-card-tab.answered{color:var(--color-text-muted, var(--color-text-secondary));font-weight:400}.choice-card-close{background:none;border:none;font-size:16px;line-height:1;color:var(--color-text-secondary);cursor:pointer;padding:0 2px;flex-shrink:0;margin-left:8px}.choice-card-close:hover{color:var(--color-text-primary)}.choice-card-question{padding:8px 12px;font-size:13px;color:var(--color-text-primary);line-height:1.4}.choice-card-question.markdown-content p{margin:.2em 0}.choice-card-options{display:flex;flex-direction:column;padding:0 12px}.choice-card-option{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;color:var(--color-text-primary);cursor:pointer;border:none;background:none;text-align:left}.choice-card-option input[type=radio]{margin:0;accent-color:var(--color-primary)}.choice-card-option:hover{color:var(--color-primary)}.choice-card-option.selected .choice-card-label{font-weight:var(--font-weight-semibold)}.choice-card-label{line-height:1.3}.choice-card-other-input{padding:2px 12px 4px 32px}.choice-card-other-input input{width:100%;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:12px;outline:none}.choice-card-other-input input:focus{border-color:var(--color-primary)}.choice-card-footer{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-top:1px solid var(--color-border)}.choice-card-count{font-size:11px;color:var(--color-text-secondary)}.choice-card-submit{padding:3px 14px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:12px;cursor:pointer}.choice-card-submit:disabled{opacity:.4;cursor:default}.choice-card-submit:hover:not(:disabled){opacity:.9}.tool-line{display:flex;flex-direction:column;border-radius:var(--radius-sm);transition:background-color .15s ease;position:relative}.tool-line:hover,.tool-line.expanded{background:#00000005}.chat-message.tool-line-wrapper{position:relative}.chat-message.tool-line-wrapper:has(+.chat-message.tool-line-wrapper):after{content:"";position:absolute;left:16px;bottom:-6px;width:1.5px;height:10px;background:var(--color-border, #d0d0d0);opacity:.6;z-index:1}.tool-line-header{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:28px;border-radius:var(--radius-sm);transition:background-color .15s ease}.tool-line-header:hover{background:#00000008}.tool-line-dot{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;position:relative;overflow:visible}.tool-line-dot.success{color:var(--color-success-hover, #22c55e)}.tool-line-dot.error{color:var(--color-error-text, #ef4444)}.tool-line-dot.pending{color:var(--color-text-muted, #888)}.tool-line-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #4f46e5);border-radius:50%;animation:tool-line-spin .7s linear infinite}@keyframes tool-line-spin{to{transform:rotate(360deg)}}.tool-line-check,.tool-line-x{font-size:12px;font-weight:700;line-height:1}.tool-line-label{font-size:13px;font-weight:600;color:var(--color-text-primary, #1a1a1a);white-space:nowrap}.tool-line-summary{font-size:12px;color:var(--color-text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.tool-line-chevron{font-size:14px;color:var(--color-text-muted, #999);transition:transform .2s ease;flex-shrink:0;margin-left:auto}.tool-line-chevron.open{transform:rotate(90deg)}.tool-line-details{padding:10px 12px 10px 32px;margin:2px 0 4px;background:#1e1e2e;color:#cdd6f4;border-radius:var(--radius-sm, 4px);animation:tool-line-expand .15s ease-out}@keyframes tool-line-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tool-line-section{margin-top:6px}.tool-line-section:first-child{margin-top:0}.tool-line-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#7f849c;margin-bottom:4px}.tool-line-pre{margin:0;padding:6px 8px;background:#00000040;border-radius:var(--radius-sm, 4px);font-size:11px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.5;overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;color:#cdd6f4}.tool-line-sql{border-radius:var(--radius-sm, 4px);overflow:hidden}.tool-line-sql .ace_editor{border-radius:var(--radius-sm, 4px)}.tool-line-use-query{margin-top:6px;padding:4px 10px;background:#ffffff1f;color:#cdd6f4;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:11px;font-weight:500;transition:all .15s}.tool-line-use-query:hover{background:#fff3;border-color:#ffffff40}.tool-line-muted{font-size:12px;color:#7f849c}.tool-line-notes{display:flex;flex-direction:column;gap:4px}.tool-line-note-item{font-size:12px;line-height:1.4;color:#cdd6f4}.tool-line-note-item strong{color:#f5c2e7}.tool-line-todos{display:flex;flex-direction:column;gap:2px}.tool-line-todo-item{display:flex;align-items:flex-start;gap:6px;padding:3px 0;font-size:12px;line-height:1.4}.tool-line-todo-icon{flex-shrink:0;width:14px;text-align:center;font-weight:700}.tool-line-todo-completed .tool-line-todo-icon{color:var(--color-success-hover, #22c55e)}.tool-line-todo-in_progress .tool-line-todo-icon{color:var(--color-warning, #f59e0b)}.tool-line-todo-pending .tool-line-todo-icon{color:var(--color-text-muted, #999)}.tool-line-todo-text{flex:1;color:#cdd6f4}.tool-line-test-results{display:flex;flex-direction:column;gap:4px}.tool-line-test-item{display:flex;align-items:flex-start;gap:6px;padding:4px 6px;border-radius:var(--radius-sm, 4px);font-size:12px}.tool-line-test-item.pass{background:#22c55e1a}.tool-line-test-item.fail{background:#ef44441a}.tool-line-test-icon{flex-shrink:0;font-weight:700;width:14px;text-align:center}.tool-line-test-item.pass .tool-line-test-icon{color:var(--color-success-hover, #22c55e)}.tool-line-test-item.fail .tool-line-test-icon{color:var(--color-error-text, #ef4444)}.tool-line-test-body{flex:1;min-width:0}.tool-line-test-error{color:var(--color-error-text, #ef4444)}.tool-line-test-row{display:flex;align-items:baseline;gap:4px}.tool-line-test-label{font-size:10px;font-weight:600;color:#7f849c;text-transform:uppercase;flex-shrink:0}.tool-line-test-row code{font-size:11px;font-family:Monaco,Menlo,monospace;color:#cdd6f4;word-break:break-all}.chat-panel{position:fixed;right:0;top:0;height:calc(100vh - 80px);background:var(--color-bg-primary);box-shadow:-4px 0 16px #00000014;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:100;margin-bottom:80px;border-left:1px solid var(--color-border)}.mapping-chat-panel.embedded{position:relative;flex:1;min-height:0;height:auto;width:100%;transform:none;border-left:none;box-shadow:none;margin-bottom:0;background:var(--color-bg-primary);display:flex;flex-direction:column}.chat-resize-handle{position:absolute;left:0;top:0;bottom:0;width:4px;cursor:ew-resize;background:transparent;z-index:101;transition:background-color .2s}.chat-resize-handle:hover,.chat-panel.resizing .chat-resize-handle{background:var(--color-primary)}.chat-panel.open{transform:translate(0)}.chat-panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl) var(--spacing-2xl);border-bottom:1px solid var(--color-border);background:linear-gradient(to bottom,var(--color-bg-tertiary),var(--color-bg-primary))}.chat-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.chat-model-select{background:var(--color-bg-hover);border:1px solid var(--color-border);font-size:11px;font-weight:var(--font-weight-medium);cursor:pointer;padding:3px 6px;border-radius:var(--radius-sm);color:var(--color-text-secondary);max-width:120px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.chat-model-select:disabled{opacity:.5;cursor:not-allowed}.chat-reset-btn{background:var(--color-bg-hover);border:1px solid var(--color-border);font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer;padding:4px var(--spacing-sm);border-radius:var(--radius-sm);transition:all .2s;color:var(--color-text-secondary)}.chat-reset-btn:hover:not(:disabled){background:var(--color-secondary);border-color:var(--color-secondary-hover);color:var(--color-text-primary)}.chat-reset-btn:disabled{opacity:.5;cursor:not-allowed}.chat-panel-header h3{margin:0;font-size:13px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.01em}.chat-toggle{background:var(--color-bg-hover);border:1px solid var(--color-border);font-size:13px;font-weight:var(--font-weight-medium);cursor:pointer;padding:6px var(--spacing-md);border-radius:var(--radius-md);transition:all .2s;color:var(--color-text-primary)}.chat-toggle:hover{background:var(--color-secondary);border-color:var(--color-secondary-hover)}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-xl);background:var(--color-bg-tertiary)}.chat-empty{text-align:center;color:var(--color-text-secondary);padding:40px var(--spacing-xl);font-style:italic;font-size:13px}.chat-message{display:flex;flex-direction:column}.chat-message.user,.chat-message.system{align-items:flex-end}.chat-message.agent{align-items:flex-start}.chat-message-content{max-width:85%;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--spacing-md);word-wrap:break-word;box-shadow:var(--shadow-sm);font-size:13px;line-height:1.4;overflow:hidden;min-width:0}.chat-message.user .chat-message-content{background:#1e1e2e;color:#cdd6f4;border-bottom-right-radius:var(--radius-sm)}.chat-message.agent .chat-message-content{background:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm)}.chat-message.tool-line-wrapper{align-items:stretch;max-width:100%}.chat-message.tool-line-wrapper+.chat-message.tool-line-wrapper{margin-top:calc(-1 * var(--spacing-xl) + 4px)}.chat-message.system .chat-message-content{background:var(--color-system-bg);color:var(--color-system-text);border-left:3px solid var(--color-primary)}.system-message-content{width:100%}.system-message-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;opacity:.8}.mapping-system-message{background:var(--color-bg-secondary);border-left:3px solid var(--color-text-muted);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm)}.mapping-system-message .system-message-header{display:flex;align-items:center;gap:var(--spacing-xs)}.mapping-system-message .system-message-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-style:italic;color:var(--color-text-secondary);text-transform:none;letter-spacing:normal;margin-bottom:0;opacity:1}.mapping-system-message .system-message-body{font-size:var(--font-size-xs);font-style:italic;color:var(--color-text-secondary);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.typing-indicator{display:inline-block;animation:blink 1s infinite;color:var(--color-primary);font-weight:var(--font-weight-medium)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.choice-card-popup{padding:var(--spacing-md) var(--spacing-2xl);border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.choice-response-item{padding:6px 0}.choice-response-item+.choice-response-item{border-top:1px solid rgba(255,255,255,.1)}.choice-response-question{font-size:11px;color:#a6adc8;margin-bottom:2px}.choice-response-answer{font-size:13px;color:#cdd6f4;font-weight:var(--font-weight-semibold)}.chat-input-container{display:flex;gap:10px;padding:var(--spacing-xl) var(--spacing-2xl);border-top:1px solid var(--color-border);background:var(--color-bg-primary);box-shadow:0 -2px 8px #0000000a}.chat-input{flex:1;padding:10px var(--spacing-sm);border:1px solid var(--color-secondary-hover);border-radius:var(--radius-lg);font-size:13px;font-family:inherit;transition:all .2s;background:var(--color-bg-primary);line-height:1.5;overflow-y:auto;word-wrap:break-word;resize:none;min-height:40px;max-height:200px}.chat-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.chat-input::placeholder{color:var(--color-text-muted)}.chat-input::-webkit-scrollbar{width:6px}.chat-input::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:3px}.chat-input::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:3px}.chat-input::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.chat-send-btn{padding:10px var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:13px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.chat-send-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary-hover) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.chat-send-btn:active:not(:disabled){transform:translateY(0)}.chat-send-btn:disabled{background:var(--color-secondary-hover);cursor:not-allowed;box-shadow:none;transform:none}.chat-stop-btn{padding:10px var(--spacing-xl);background:linear-gradient(135deg,#dc3545,#c82333);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:13px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.chat-stop-btn:hover{background:linear-gradient(135deg,#c82333,#bd2130);box-shadow:var(--shadow-md);transform:translateY(-1px)}.chat-stop-btn:active{transform:translateY(0)}.markdown-content{line-height:1.6}.user-markdown-content{line-height:1.5}.user-markdown-content p{margin:.25em 0}.user-markdown-content p:first-child{margin-top:0}.user-markdown-content p:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1em;margin-bottom:.5em;font-weight:var(--font-weight-semibold)}.markdown-content h1{font-size:1.3em}.markdown-content h2{font-size:1.15em}.markdown-content h3{font-size:1.05em}.markdown-content p{margin:.5em 0}.markdown-content ul,.markdown-content ol{margin:.5em 0;padding-left:1.5em}.markdown-content li{margin:.25em 0}.markdown-content code{background:#0000000d;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:12px}.markdown-content pre{background:#0000000d;padding:var(--spacing-md);border-radius:var(--radius-sm);overflow-x:auto;margin:.5em 0}.markdown-content pre code{background:none;padding:0}.markdown-content blockquote{border-left:3px solid var(--color-primary);padding-left:1em;margin:.5em 0;color:var(--color-text-secondary);font-style:italic}.markdown-content strong{font-weight:var(--font-weight-semibold)}.markdown-content em{font-style:italic}.markdown-content table{border-collapse:collapse;margin:.75em 0;font-size:.9em;display:block;overflow-x:auto;white-space:nowrap;max-width:100%}.markdown-content thead{background:#0000000d}.markdown-content th,.markdown-content td{border:1px solid var(--color-border);padding:6px 10px;text-align:left}.markdown-content th{font-weight:var(--font-weight-semibold)}.markdown-content tbody tr:nth-child(2n){background:#00000005}.markdown-content tbody tr:hover{background:#0000000a}.thinking-indicator{display:flex;align-items:center;gap:10px;padding:var(--spacing-sm) 0}.thinking-spinner{width:var(--spacing-lg);height:var(--spacing-lg);border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.thinking-text{color:var(--color-text-secondary);font-size:13px;font-style:italic}.mapping-chat-panel.embedded .chat-panel-header{padding:var(--spacing-md) var(--spacing-lg)}.mapping-chat-panel.embedded .chat-messages{flex:1;min-height:0}.mapping-chat-panel.embedded .chat-input-container{padding:var(--spacing-md)}.dvf-container{width:260px;max-height:400px;display:flex;flex-direction:column;padding:8px;font-size:13px;background:var(--ag-background-color, #fff);color:var(--ag-foreground-color, #181d1f)}.dvf-tabs{display:flex;gap:0;margin-bottom:8px;border-bottom:1px solid var(--ag-border-color, #babfc7)}.dvf-tab{flex:1;padding:6px 0;border:none;background:none;font-size:12px;font-weight:500;color:var(--ag-secondary-foreground-color, #6b7280);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.dvf-tab:hover{color:var(--ag-foreground-color, #181d1f)}.dvf-tab-active{color:var(--ag-input-focus-border-color, #2196f3);border-bottom-color:var(--ag-input-focus-border-color, #2196f3)}.dvf-condition{display:flex;flex-direction:column;gap:8px;padding:4px 0;flex:1}.dvf-condition-select{width:100%;padding:6px 8px;border:1px solid var(--ag-border-color, #babfc7);border-radius:4px;font-size:13px;background:var(--ag-background-color, #fff);color:var(--ag-foreground-color, #181d1f);outline:none;box-sizing:border-box}.dvf-condition-select:focus{border-color:var(--ag-input-focus-border-color, #2196f3)}.dvf-condition-input{width:100%;padding:6px 8px;border:1px solid var(--ag-border-color, #babfc7);border-radius:4px;font-size:13px;outline:none;box-sizing:border-box}.dvf-condition-input:focus{border-color:var(--ag-input-focus-border-color, #2196f3)}.dvf-date-row{display:flex;gap:6px}.dvf-date-input{flex:1;min-width:0}.dvf-year-input{width:70px;flex-shrink:0;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.dvf-year-input::-webkit-inner-spin-button,.dvf-year-input::-webkit-outer-spin-button{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0}.dvf-search{width:100%;padding:6px 8px;border:1px solid var(--ag-border-color, #babfc7);border-radius:4px;font-size:13px;outline:none;box-sizing:border-box}.dvf-search:focus{border-color:var(--ag-input-focus-border-color, #2196f3)}.dvf-toggle-row{display:flex;gap:8px;padding:6px 0 4px;border-bottom:1px solid var(--ag-border-color, #babfc7)}.dvf-toggle-btn{background:none;border:none;padding:2px 0;font-size:12px;color:var(--ag-input-focus-border-color, #2196f3);cursor:pointer}.dvf-toggle-btn:hover:not(:disabled){text-decoration:underline}.dvf-toggle-btn:disabled{color:var(--ag-disabled-foreground-color, #babfc7);cursor:default}.dvf-list{flex:1;overflow-y:auto;max-height:240px;padding:4px 0}.dvf-item{display:flex;align-items:center;gap:6px;padding:3px 4px;cursor:pointer;border-radius:3px}.dvf-item:hover{background:var(--ag-row-hover-color, rgba(33, 150, 243, .08))}.dvf-item-blanks{border-top:1px solid var(--ag-border-color, #babfc7);margin-top:4px;padding-top:6px}.dvf-item-blanks .dvf-value{font-style:italic;color:var(--ag-secondary-foreground-color, #6b7280)}.dvf-item input[type=checkbox]{flex-shrink:0;margin:0}.dvf-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dvf-count{flex-shrink:0;color:var(--ag-secondary-foreground-color, #6b7280);font-size:11px}.dvf-loading,.dvf-empty{padding:8px 4px;color:var(--ag-secondary-foreground-color, #6b7280);font-style:italic;text-align:center}.dvf-load-more{display:block;width:100%;background:none;border:none;padding:6px 4px;font-size:12px;color:var(--ag-input-focus-border-color, #2196f3);cursor:pointer;text-align:center}.dvf-load-more:hover{text-decoration:underline}.dvf-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--ag-border-color, #babfc7)}.dvf-btn{padding:5px 14px;border:1px solid var(--ag-border-color, #babfc7);border-radius:4px;font-size:12px;cursor:pointer;background:var(--ag-background-color, #fff);color:var(--ag-foreground-color, #181d1f)}.dvf-btn:hover{background:var(--ag-row-hover-color, rgba(33, 150, 243, .08))}.dvf-btn-apply{background:var(--ag-input-focus-border-color, #2196f3);color:#fff;border-color:var(--ag-input-focus-border-color, #2196f3)}.dvf-btn-apply:hover{opacity:.9}.ag-grid-container{width:100%;height:600px;border-radius:var(--radius-lg);overflow:hidden}.sql-query-panel{display:flex;flex-direction:column;gap:var(--spacing-md);flex:1;min-height:0}.sqp-editor-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.sqp-editor-header{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md)}.sqp-shortcut-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.sqp-run-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background .15s ease}.sqp-run-btn:hover:not(:disabled){background:var(--color-primary-hover)}.sqp-run-btn:disabled{opacity:.5;cursor:not-allowed}.sqp-editor-wrapper{border-radius:var(--radius-md);border:1px solid #334155;overflow:hidden}.sqp-editor-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.sqp-editor-wrapper .cm-editor{border-radius:var(--radius-md)}.sqp-editor-wrapper .cm-editor.cm-focused{outline:none}.sqp-error{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-error-bg);color:var(--color-error-text);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.sqp-error-icon{flex-shrink:0}.sqp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl) 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.sqp-loading-spinner{width:28px;height:28px;border:3px solid var(--border-color, #e2e8f0);border-top-color:#2563eb;border-radius:50%;animation:sqp-spin .8s linear infinite}@keyframes sqp-spin{to{transform:rotate(360deg)}}.sqp-results{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--color-bg-primary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);overflow:hidden}.sqp-results-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-tertiary);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sqp-grid{flex-grow:1;min-height:200px}.sqp-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-muted);font-size:var(--font-size-sm)}.file-explorer-container{display:flex;flex-direction:column;height:100vh;position:relative;padding:var(--spacing-xl);box-sizing:border-box}.file-explorer-main-wrapper{position:relative}.ai-query-badge{position:absolute;top:-12px;right:var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-text-inverse);padding:6px var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);z-index:10;box-shadow:var(--shadow-primary-hover);letter-spacing:.3px}.file-explorer-header{margin-bottom:var(--spacing-lg);position:relative;z-index:10;display:flex;justify-content:flex-start;align-items:center}.file-explorer-main{flex:0 0 75%;display:flex;flex-direction:column;min-height:0;background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-xl);transition:width .3s ease,box-shadow .3s ease;position:relative}.file-explorer-main.ai-query{box-shadow:0 0 0 3px #3b82f666,0 0 20px #3b82f64d}.query-section,.notes-section{display:flex;flex-direction:column;height:100%;min-height:0;overflow:visible}.query-input-container{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-shrink:0;overflow:visible}.query-controls-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg)}.pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.pagination-info{color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap}.query-input-wrapper{position:relative;width:100%;overflow:visible}.query-resize-handle{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;z-index:10;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.query-resize-handle:hover{background:#3b82f61a}.resize-handle-icon{color:var(--color-text-muted);font-size:var(--font-size-md);line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none}.query-resize-handle:hover .resize-handle-icon{color:var(--color-primary)}.query-editor{border-radius:var(--radius-md);border:1px solid var(--color-secondary-hover)}.query-editor .ace_scroller,.query-editor .ace_content{padding:var(--spacing-lg)!important}.query-editor .ace_gutter{padding-top:var(--spacing-lg)!important;padding-bottom:var(--spacing-lg)!important}.query-editor .ace_line{padding-left:0!important;padding-right:0!important}.query-editor:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.file-name-header{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);margin:calc(-1 * var(--spacing-xl)) calc(-1 * var(--spacing-xl)) var(--spacing-xl) calc(-1 * var(--spacing-xl));display:flex;align-items:center;gap:var(--spacing-sm)}.file-name-label{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.file-name-value{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.tabs-container{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin:0 calc(-1 * var(--spacing-xl)) var(--spacing-xl) calc(-1 * var(--spacing-xl));padding:0 var(--spacing-xl)}.tab-button{padding:var(--spacing-md) var(--spacing-2xl);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all .2s;margin-bottom:-2px}.tab-button:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.notes-section{display:flex;flex-direction:column;height:100%;min-height:0}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.notes-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.notes-actions{display:flex;gap:var(--spacing-sm)}.notes-table-container{flex:1;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.notes-table{width:100%;border-collapse:collapse;background:var(--color-bg-primary)}.notes-table thead{background:var(--color-bg-tertiary);position:sticky;top:0;z-index:1}.notes-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:2px solid var(--color-border)}.notes-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-bg-hover)}.notes-column-name{width:200px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);vertical-align:top;padding-top:var(--spacing-lg)}.notes-column-input{width:auto}.notes-textarea{width:100%;min-width:400px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-secondary-hover);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit;resize:vertical;transition:border-color .2s}.notes-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.query-results-container{flex:1;display:flex;flex-direction:column;min-height:0}.query-results-table-wrapper{flex:1;overflow-x:auto;overflow-y:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);width:100%;min-width:0;padding:20px;box-sizing:border-box}.query-results-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs);min-width:100%}.query-results-table thead{background:var(--color-bg-secondary);position:sticky;top:0;z-index:10}.query-results-table th{padding:var(--spacing-sm) 10px;text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:2px solid var(--color-border-light);white-space:nowrap}.query-results-table td{padding:6px 10px;border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary)}.query-results-table tbody tr:hover{background:var(--color-bg-tertiary)}.query-results-table td.cell-selected{border:3px solid #007bff!important;box-shadow:0 0 0 3px #007bff,0 0 8px 4px #007bff99,0 0 12px 6px #007bff66!important;z-index:10!important;position:relative!important;outline:none!important;background-color:#007bff0d!important}.file-explorer-actions{position:fixed;bottom:var(--spacing-2xl);right:var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-end;z-index:1000}.file-explorer-actions .btn-proceed-mapping{position:relative;bottom:auto;right:auto}.btn-open-chat{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease}.btn-open-chat:hover{background:var(--color-bg-tertiary);border-color:var(--color-border)}.btn-proceed-mapping{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease}.btn-proceed-mapping:hover{background:var(--color-primary-hover)}.code-editor-cm{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden;resize:vertical;min-height:200px;background-color:#1e1e1e}.code-editor-cm:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.code-editor-cm>div{height:100%}.code-editor-cm .cm-editor{height:100%}.code-editor-cm--readonly{resize:none;min-height:0}.code-editor-cm--readonly:focus-within{border-color:var(--color-border-light);box-shadow:none}.condition-builder{display:flex;flex-direction:column;gap:12px}.condition-builder-header{display:flex;align-items:center;gap:12px}.condition-logic-toggle{display:flex;align-items:center;gap:8px}.condition-logic-label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.condition-rows,.condition-row{display:flex;flex-direction:column;gap:4px}.condition-logic-separator{font-size:11px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;padding:2px 0;text-align:center}.condition-fields{display:flex;align-items:center;gap:8px}.condition-column-select{flex:1;min-width:0}.condition-operator-select{width:180px;flex-shrink:0}.condition-value-input{flex:1;min-width:0}.condition-remove-btn{flex-shrink:0;width:28px;height:28px;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;border-radius:4px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.condition-remove-btn:hover{background:var(--color-bg-danger-subtle, #fee2e2);color:var(--color-text-danger, #dc2626)}.condition-add-btn{align-self:flex-start;padding:6px 12px;border:1px dashed var(--color-border);background:transparent;color:var(--color-text-secondary);border-radius:6px;cursor:pointer;font-size:13px}.condition-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-bg-primary-subtle, #eff6ff)}.rule-form-modal{max-width:1200px;width:95%}.rule-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-section+.form-section{padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light)}.form-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin-bottom:2px}.required{color:var(--color-primary);font-weight:400}.form-field>label{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm);display:inline;align-self:flex-start}.form-field input,.form-field select,.form-field textarea{width:100%;box-sizing:border-box;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.field-error{color:var(--color-error-text);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.radio-group{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-xs)}.radio-option{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer}.radio-option input[type=radio]{cursor:pointer}.segmented-toggle{display:inline-flex;align-self:flex-start;background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:3px;border:1px solid var(--color-border-light);gap:2px}.segmented-option{padding:var(--spacing-xs) var(--spacing-lg);border:none;background:transparent;border-radius:calc(var(--radius-md) - 2px);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all .15s ease;white-space:nowrap}.segmented-option:hover:not(.active){color:var(--color-text-primary);background:var(--color-bg-hover)}.segmented-option.active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.method-description,.method-example{padding:var(--spacing-sm);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);margin-bottom:var(--spacing-sm)}.method-code{margin-bottom:var(--spacing-md)}.method-code strong{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-primary)}.code-test-section{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.code-test-header{margin-bottom:var(--spacing-md)}.code-test-header h4{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-md);color:var(--color-text-primary)}.code-test-description{margin:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.code-test-input{display:flex;gap:var(--spacing-sm);align-items:flex-end;margin-bottom:var(--spacing-md)}.code-test-input label{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:var(--font-size-sm)}.code-test-input input{padding:var(--spacing-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.code-test-error{padding:var(--spacing-sm);background-color:#fee2e2;border:1px solid #ef4444;border-radius:var(--radius-sm);color:#dc2626;font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.code-test-unsupported{padding:var(--spacing-sm);background-color:#f0f4f8;border:1px solid #cbd5e1;border-radius:var(--radius-sm);color:#64748b;font-size:var(--font-size-sm);font-style:italic}.code-test-result{padding:var(--spacing-sm);background-color:#f0fdf4;border:1px solid #86efac;border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.code-test-result-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs);color:var(--color-text-primary)}.code-test-result-type{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:400}.code-test-result-value{font-family:Monaco,Menlo,Ubuntu Mono,monospace;white-space:pre-wrap;word-break:break-word;color:var(--color-text-primary);background-color:var(--color-bg-primary);padding:var(--spacing-sm);border-radius:var(--radius-sm);margin-top:var(--spacing-xs)}.sample-values-section{margin-top:var(--spacing-md);border-top:1px solid var(--color-border-light);padding-top:var(--spacing-md)}.sample-values-toggle{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;display:flex;align-items:center;gap:var(--spacing-xs);font-weight:500}.sample-values-toggle:hover{color:var(--color-primary-dark);text-decoration:underline}.sample-values-list{margin-top:var(--spacing-sm);max-height:400px;overflow-y:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background-color:var(--color-bg-secondary);padding:var(--spacing-sm)}.sample-values-search{margin-bottom:var(--spacing-md)}.sample-values-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.sample-values-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.sample-values-loading,.sample-values-error,.sample-values-empty{padding:var(--spacing-md);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.sample-values-error{color:var(--color-error)}.sample-values-grid{display:flex;flex-direction:column;gap:4px;max-width:500px}.sample-value-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);padding:4px 8px;background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);transition:background-color .2s}.sample-value-item:hover{background-color:var(--color-bg-hover)}.sample-value-text{flex:1;font-size:12px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sample-value-select{flex-shrink:0;padding:2px 8px;font-size:11px;min-width:auto;height:22px}.sample-values-pagination{margin-top:var(--spacing-sm);display:flex;justify-content:center;max-width:500px}.json-editor{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-sm);padding:var(--spacing-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background-color:var(--color-bg-primary);color:var(--color-text-primary);resize:vertical}.json-editor:focus{outline:none;border-color:var(--color-primary)}.form-field small{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:400}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.form-field>label.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:400}.checkbox-label input[type=checkbox]{width:auto;margin:0}.form-field>label.checkbox-label input[type=checkbox]{width:16px;height:16px;flex-shrink:0;padding:0}.method-param{margin-bottom:var(--spacing-md)}.method-param label{display:flex;flex-direction:column;gap:var(--spacing-xs)}.method-param small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:400}.intermediate-column-input{width:100%;box-sizing:border-box;padding:var(--spacing-sm) var(--spacing-md);border:1.5px dashed var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit;background-color:#f8faff}.intermediate-column-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring);border-style:solid}.intermediate-hint{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:400;font-style:italic}.prior-versions-section{margin-top:var(--spacing-lg);border-top:1px solid var(--color-border-light);padding-top:var(--spacing-lg)}.prior-versions-header h4{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.prior-versions-loading,.prior-versions-empty{padding:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}.prior-versions-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.prior-version-item{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden}.prior-version-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.prior-version-header:hover{background:var(--color-bg-tertiary)}.prior-version-number{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.prior-version-timestamp{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-left:auto;margin-right:var(--spacing-md)}.prior-version-toggle{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-bold);width:20px;text-align:center}.prior-version-content{padding:var(--spacing-md);background:var(--color-bg-primary);border-top:1px solid var(--color-border-light)}.prior-version-field{margin-bottom:var(--spacing-md)}.prior-version-field strong{display:block;margin-bottom:var(--spacing-xs);color:var(--color-text-primary);font-size:var(--font-size-sm)}.prior-version-metadata{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.prior-version-metadata div{display:flex;gap:var(--spacing-xs)}.prior-version-metadata strong{font-weight:var(--font-weight-medium)}.code-diff{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-xs);line-height:1.5;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-sm);max-height:400px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word}.diff-added{background-color:#4caf501a;color:#2e7d32;padding:2px 4px;margin:1px 0;display:block}.diff-removed{background-color:#f443361a;color:#c62828;padding:2px 4px;margin:1px 0;display:block;text-decoration:line-through}.diff-unchanged{color:var(--color-text-primary);padding:2px 4px;margin:1px 0;display:block}.code-preview{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-xs);line-height:1.5;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-sm);max-height:400px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;margin:0}.prompt-preview{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--font-size-xs);line-height:1.5;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-sm);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word;margin:0}.value-diff{font-size:var(--font-size-sm);line-height:1.5;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);word-wrap:break-word}.diff-separator{color:var(--color-text-secondary);margin:0 var(--spacing-xs);font-weight:var(--font-weight-medium)}.output-mode-toggle{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.output-mode-toggle .radio-option{font-size:var(--font-size-sm)}.categories-selector{display:flex;flex-direction:column;gap:var(--spacing-md)}.categories-selector select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.categories-selector select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.cell-lineage-popup{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:8px;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;width:100%}.cell-lineage-popup.relative{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden}.cell-lineage-popup-header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px;border-bottom:1px solid #e0e0e0;flex-shrink:0}.cell-lineage-popup-header h3{margin:0;font-size:18px;color:#333}.elevate-uuid-pill{display:inline-block;padding:4px 10px;background-color:#f5f5f5;color:#999;border-radius:12px;font-size:11px;font-family:Courier New,monospace;font-weight:400;letter-spacing:.3px}.cell-lineage-popup-close{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.cell-lineage-popup-close:hover{background-color:#f0f0f0}.cell-lineage-popup-content{display:flex;flex-direction:column;gap:20px;overflow-y:auto;flex:1;padding:16px;min-height:0}.rule-group{display:flex;flex-direction:column;gap:16px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.rule-group:last-child{border-bottom:none;padding-bottom:0}.lineage-cells-container{display:flex;gap:24px;align-items:flex-start}.lineage-cells-group{flex:1;display:flex;flex-direction:column;gap:8px}.lineage-section{display:flex;flex-direction:column;gap:12px}.lineage-section h4{margin:0;font-size:14px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.lineage-cells-group h4{margin:0 0 8px;font-size:13px;font-weight:600;color:#666;text-transform:none;letter-spacing:normal}.lineage-section h5{margin:0 0 8px;font-size:13px;font-weight:600;color:#666}.lineage-cells{display:flex;flex-wrap:wrap;gap:12px}.lineage-cell{padding:8px 12px;border-radius:4px;border:1px solid #ddd;min-width:150px}.lineage-cell.source-cell{box-shadow:0 0 0 3px #ff9800,0 0 8px 4px #ff980080,0 0 16px 6px #ff98004d;border-color:#ff9800}.lineage-cell.output-cell{box-shadow:0 0 0 3px #007bff,0 0 8px 4px #007bff80,0 0 16px 6px #007bff4d;border-color:#007bff}.lineage-cell-label{font-size:12px;font-weight:600;color:#666;margin-bottom:4px}.lineage-cell-value{font-size:14px;color:#000;word-break:break-word}.lineage-cell.source-cell .lineage-cell-value{color:#000}.rule-info{display:flex;flex-direction:column;gap:8px;padding:12px;background-color:#f9f9f9;border-radius:4px}.rule-info-row{display:flex;gap:12px}.rule-info-label{font-weight:600;color:#666;min-width:120px;font-size:13px}.rule-info-value{color:#333;font-size:13px;flex:1}.rule-execution-section{margin-top:12px;padding:12px;background-color:#f9f9f9;border-radius:4px;border-left:3px solid #007bff}.rule-execution-code{margin:0;padding:12px;background-color:#282c34;color:#abb2bf;border-radius:4px;font-family:Courier New,monospace;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.rule-execution-prompt{margin:0;padding:12px;background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:13px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.rule-execution-value{margin:0;padding:12px;background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;font-weight:500;color:#333}.no-rule-message{color:#999;font-style:italic;padding:12px;text-align:center}.column-selector{position:relative;display:inline-block}.column-selector-trigger{display:flex;align-items:center;gap:4px;padding:5px 10px;font-size:var(--font-size-xs);background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-primary);white-space:nowrap;transition:border-color .15s}.column-selector-trigger:hover{border-color:var(--color-border);background:var(--color-bg-hover)}.column-selector-trigger-arrow{font-size:10px;color:var(--color-text-secondary)}.column-selector-panel{position:absolute;top:calc(100% + 4px);right:0;z-index:200;background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.12));min-width:200px;max-width:280px;max-height:320px;display:flex;flex-direction:column;overflow:hidden}.column-selector-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-sm);flex-shrink:0}.column-selector-header-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.column-selector-header-actions{display:flex;gap:var(--spacing-xs)}.column-selector-header-btn{background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-xs, 3px);padding:2px 6px;font-size:var(--font-size-xs);cursor:pointer;color:var(--color-text-secondary);transition:background-color .15s}.column-selector-header-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.column-selector-search{position:relative;padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.column-selector-search-input{width:100%;box-sizing:border-box;padding:4px 28px 4px 8px;border:1px solid var(--color-border-light);border-radius:var(--radius-xs, 3px);font-size:var(--font-size-xs);font-family:inherit}.column-selector-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.column-selector-search-clear{position:absolute;right:calc(var(--spacing-sm) + 4px);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:14px;line-height:1;padding:2px;display:flex;align-items:center;justify-content:center}.column-selector-search-clear:hover{color:var(--color-text-primary)}.column-selector-empty{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.column-selector-list{overflow-y:auto;flex:1}.column-selector-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:5px var(--spacing-md);cursor:pointer;transition:background-color .1s}.column-selector-item:hover{background:var(--color-bg-hover)}.column-selector-item input[type=checkbox]{margin:0;flex-shrink:0;cursor:pointer}.column-selector-item-label{font-size:var(--font-size-xs);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.column-selector-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.column-selector-dot.source{background:#ff9800}.column-selector-dot.intermediate{background:#9ca3af}.column-selector-dot.destination{background:var(--color-primary, #1976d2)}.modal-content.data-review-modal{width:95vw;max-width:95vw;height:92vh;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}.drm-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-secondary);flex-shrink:0;flex-wrap:wrap}.drm-tabs{display:flex;align-items:center;gap:0;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden}.drm-tab{background:none;border:none;padding:6px var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap}.drm-tab:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.drm-tab.active{background:var(--color-primary);color:#fff}.drm-tab+.drm-tab{border-left:1px solid var(--color-border-light)}.drm-toolbar-sep{flex:1}.drm-run-group{display:flex;align-items:center;gap:var(--spacing-xs)}.drm-num-rows-select{font-size:var(--font-size-sm);padding:4px 8px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);cursor:pointer}.drm-num-rows-select:disabled{opacity:.5;cursor:not-allowed}.drm-body{flex:1;min-height:0;display:flex;overflow:hidden}.drm-grid-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;transition:flex .3s ease}.drm-body.chat-open .drm-grid-area{flex:0 0 70%;max-width:70%}.drm-chat-area{flex:0 0 30%;min-width:0;min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--color-border-light);overflow:hidden}.drm-lineage-panel{flex-shrink:0;border-bottom:1px solid var(--color-border-light);background:var(--color-bg-secondary);max-height:220px;overflow-y:auto}.drm-ag-container{flex:1;min-height:0;width:100%;border-radius:0;overflow:hidden}.drm-tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.drm-tab-panel.hidden{display:none}.drm-status-bar{flex-shrink:0;padding:4px var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-secondary);border-top:1px solid var(--color-border-light);display:flex;align-items:center;gap:var(--spacing-md)}.drm-status-removed{color:#92400e}.drm-progress-wrap{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border-light)}.drm-progress-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:4px}.drm-progress-bar{width:100%;height:6px;background:var(--color-bg-primary);border-radius:var(--radius-sm);overflow:hidden}.drm-progress-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-sm);transition:width .2s ease}.drm-banner{flex-shrink:0;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--spacing-sm)}.drm-banner.error{background:var(--color-error-bg, #fee2e2);color:var(--color-error-text, #dc2626);border-bottom:1px solid var(--color-error-border, #ef4444)}.drm-banner.stale{background:#fff7ed;color:#92400e;border-bottom:1px solid #fed7aa}.drm-banner.warning{background:var(--color-warning-bg, #fff3cd);color:var(--color-warning-text, #856404);border-bottom:1px solid #f59e0b33}.drm-banner-warning-content{flex:1}.drm-banner-toggle{background:none;border:none;cursor:pointer;color:inherit;text-decoration:underline;font-size:inherit;padding:0;margin-left:var(--spacing-xs)}.drm-banner-toggle:hover{opacity:.8}.drm-error-detail-list{flex-shrink:0;max-height:200px;overflow-y:auto;background:var(--color-warning-bg, #fff3cd);border-bottom:1px solid #f59e0b33;padding:var(--spacing-xs) var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-warning-text, #856404)}.drm-error-detail-item{display:flex;gap:var(--spacing-sm);padding:2px 0}.drm-error-detail-item.propagated{opacity:.7}.drm-error-detail-item code{font-family:monospace;font-size:var(--font-size-xs)}.drm-error-row-label{font-weight:var(--font-weight-semibold);white-space:nowrap}.drm-error-detail-overflow{padding:var(--spacing-xs) 0;font-style:italic;opacity:.8}.drm-banner-dismiss{margin-left:auto;background:none;border:none;cursor:pointer;font-size:var(--font-size-sm);color:inherit;opacity:.7;padding:0 2px}.drm-banner-dismiss:hover{opacity:1}.drm-banner.drm-banner-centered{width:100%;justify-content:center}.drm-empty-state{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.drm-empty-state p{margin:0}.drm-empty-state.error-list{flex-direction:column;align-items:flex-start;padding:var(--spacing-lg);overflow-y:auto}.drm-error-list-title{margin-bottom:var(--spacing-sm);color:var(--color-error-text, #dc2626)}.drm-error-list-item{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-error-bg, #fee2e2);border-radius:var(--radius-sm);width:100%}.drm-error-list-item code{font-family:monospace}.ag-header-cell.col-source .ag-header-cell-label{color:#ff9800;font-weight:var(--font-weight-semibold)}.ag-header-cell.col-intermediate .ag-header-cell-label{color:#9ca3af}.ag-header-cell.col-destination .ag-header-cell-label{color:var(--color-primary, #1976d2);font-weight:var(--font-weight-semibold)}.ag-header-cell.col-errored{background-color:#f59e0b14}.ag-header-cell.col-errored .ag-header-cell-label:before{content:"⚠️";margin-right:4px;font-size:var(--font-size-xs)}.drm-btn-chat{padding:5px 10px;font-size:var(--font-size-xs)}.drm-loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-border-light);border-top-color:var(--color-primary);border-radius:50%;animation:drm-spin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes drm-spin{to{transform:rotate(360deg)}}.chat-panel-hidden{display:none}.mapping-page-wrapper{display:flex;flex-direction:column;gap:var(--spacing-lg);position:relative;max-width:1600px;margin:0 auto;width:100%}.app-container:has(.mapping-page-wrapper){max-width:1800px}.mapping-page-top-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);position:relative}.mapping-page-top-bar>.btn-back{width:auto;display:inline-flex}.mapping-page-container{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md);transition:margin-right .3s ease}.mapping-page-wrapper:has(.chat-panel.open) .mapping-page-container{margin-right:33.33%}.mapping-page-header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.mapping-page-header-top{display:flex;justify-content:space-between;align-items:center}.mapping-page-header h2{font-size:var(--font-size-xl);color:var(--color-text-primary);margin:0}.mapping-context-info{display:flex;flex-direction:column;gap:var(--spacing-sm)}.mapping-context-item{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-sm)}.mapping-context-label{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.mapping-context-value{color:var(--color-primary);font-weight:var(--font-weight-medium)}.mapping-status-indicator{position:relative;display:inline-flex;align-items:center}.mapping-status-compact{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s}.mapping-status-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.mapping-status-compact:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.mapping-status-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap}.mapping-status-text.status-zero{color:var(--color-danger)}.mapping-status-text.status-partial{color:var(--color-warning)}.mapping-status-text.status-complete{color:var(--color-primary)}.mapping-status-bar-mini{width:60px;height:6px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);overflow:hidden}.mapping-status-fill-mini{height:100%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);transition:width .3s ease;border-radius:var(--radius-sm)}.mapping-status-popover{position:absolute;top:calc(100% + 2px);right:0;width:400px;max-height:500px;background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s ease .15s,visibility .2s ease .15s;pointer-events:none;overflow:hidden;display:flex;flex-direction:column}.mapping-status-popover:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px;background:transparent;pointer-events:auto}.mapping-status-indicator:hover .mapping-status-popover,.mapping-status-popover:hover{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.mapping-status-popover-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.mapping-status-popover-header h4{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.mapping-status-summary{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.mapping-status-sections{overflow-y:auto;flex:1}.mapping-status-section{padding:var(--spacing-md)}.mapping-status-section:not(:last-child){border-bottom:1px solid var(--color-border-light)}.mapping-status-section-header{margin-bottom:var(--spacing-sm)}.mapping-status-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.mapping-status-section-title.unmapped-title{color:var(--color-danger)}.mapping-status-columns{display:flex;flex-direction:column;gap:var(--spacing-xs)}.mapping-status-column-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.mapping-status-column-item.mapped{background:var(--color-success-bg)}.mapping-status-column-item.unmapped{background:var(--color-bg-secondary)}.mapping-status-column-name{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.mapping-status-rule-type{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:capitalize;padding:2px var(--spacing-xs);background:var(--color-bg-primary);border-radius:var(--radius-sm)}.btn-back{background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:all .2s}.btn-back:hover{background:var(--color-bg-hover);border-color:var(--color-border-hover)}.btn-lg{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-md)}.searchable-chips{display:flex;flex-direction:column;gap:var(--spacing-sm)}.searchable-chips-search{position:relative}.searchable-chips-search-input{width:100%;box-sizing:border-box;padding:var(--spacing-sm) var(--spacing-md);padding-right:32px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit}.searchable-chips-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.searchable-chips-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:1;padding:2px;display:flex;align-items:center;justify-content:center}.searchable-chips-search-clear:hover{color:var(--color-text-primary)}.searchable-chips-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.searchable-chips-empty{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-sm)}.chip{padding:8px 16px;border:2px solid #ddd;border-radius:20px;background:#fff;cursor:pointer;transition:all .2s;font-size:14px}.chip:hover{border-color:#007bff;background:#f0f8ff}.chip.selected{background:#007bff;color:#fff;border-color:#007bff}.chip.chip-system{border-style:dashed;border-color:#6c757d;background:#f8f9fa;font-style:italic}.chip.chip-system:hover{border-color:#007bff;background:#e8f4ff}.chip.chip-system.selected{background:#6c757d;color:#fff;border-color:#6c757d;border-style:solid}.pipeline-stepper{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:16px 0}.pipeline-step-wrapper{display:flex;align-items:flex-start}.pipeline-step{display:flex;flex-direction:column;align-items:center;min-width:100px;text-align:center}.pipeline-step-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;margin-bottom:6px;transition:background-color .2s,border-color .2s}.pipeline-step--pending .pipeline-step-icon{background-color:#e5e7eb;color:#9ca3af}.pipeline-step--pending .pipeline-step-label{color:#9ca3af}.step-dot{width:8px;height:8px;border-radius:50%;background-color:currentColor}.pipeline-step--active .pipeline-step-icon{background-color:#dbeafe;color:#2563eb;border:2px solid #2563eb}.pipeline-step--active .pipeline-step-label{color:#2563eb;font-weight:600}.step-spinner{width:16px;height:16px;border:2px solid #93c5fd;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pipeline-step--complete .pipeline-step-icon{background-color:#dcfce7;color:#16a34a}.pipeline-step--complete .pipeline-step-label{color:#16a34a;font-weight:600}.step-check{font-size:16px}.pipeline-step--failed .pipeline-step-icon{background-color:#fee2e2;color:#dc2626}.pipeline-step--failed .pipeline-step-label{color:#dc2626;font-weight:600}.step-x{font-size:16px}.pipeline-step--skipped .pipeline-step-icon{background-color:#f3f4f6;color:#d1d5db}.pipeline-step--skipped .pipeline-step-label{color:#d1d5db;text-decoration:line-through}.pipeline-step-label{font-size:13px;line-height:1.2;white-space:nowrap}.pipeline-step-sub{font-size:11px;color:#2563eb;margin-top:2px;white-space:nowrap}.pipeline-step-summary{font-size:11px;color:#6b7280;margin-top:2px;white-space:nowrap}.pipeline-step-connector{width:40px;height:2px;background-color:#e5e7eb;margin-top:16px;flex-shrink:0}.pipeline-step-connector--complete{background-color:#16a34a}.pipeline-step-connector--active{background-color:#2563eb}.output-validation-page{padding:20px;max-width:1800px;margin:0 auto;width:100%}.output-validation-header{display:flex;align-items:center;gap:15px;margin-bottom:30px}.output-validation-header h1{margin:0;font-size:28px}.output-validation-container{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 4px #0000001a}.deduplication-settings{margin-bottom:30px}.deduplication-settings h2{margin-top:0;margin-bottom:20px;font-size:22px}.output-files-section{margin-bottom:30px}.output-files-section h2{margin-top:0;margin-bottom:20px;font-size:22px}.settings-section{margin-bottom:25px}.settings-section label{display:block;margin-bottom:10px;font-weight:600}.settings-section label input[type=checkbox]{margin-right:8px}.settings-section select{font-size:14px;padding:8px 12px;border:2px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;transition:border-color .2s}.settings-section select:hover{border-color:#007bff}.settings-section select:focus{outline:none;border-color:#007bff}.match-fields-selector{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.execution-progress{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:8px}.execution-progress h2{margin-top:0;margin-bottom:15px}.progress-info{margin-bottom:20px}.progress-info p{margin:5px 0;font-size:16px}.column-progress{margin-top:20px}.column-progress-item{margin-bottom:15px}.column-progress-header{display:flex;justify-content:space-between;margin-bottom:5px;font-size:14px;font-weight:500}.progress-bar{width:100%;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:#007bff;transition:width .3s}.progress-fill.completed{background:#28a745}.execution-actions{margin-top:30px;text-align:center}.output-results-container{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 4px #0000001a}.results-section{margin-bottom:30px;padding:20px;background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border-light)}.results-section h2{margin-top:0;margin-bottom:15px;font-size:var(--font-size-xl);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.section-description{margin-bottom:15px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.execution-summary{margin-top:15px}.execution-summary p{margin:8px 0;font-size:var(--font-size-base);color:var(--color-text-primary)}.execution-summary code{font-family:Courier New,monospace;background:var(--color-bg-secondary);padding:2px 6px;border-radius:3px;font-size:var(--font-size-sm)}.results-section h3{margin-top:20px;margin-bottom:10px;font-size:18px}.duplicate-stats{margin-bottom:20px}.duplicate-stats p{margin:5px 0;font-size:16px}.duplicate-groups{margin-top:20px}.duplicate-group{margin-bottom:30px;padding:15px;background:#fff;border-radius:6px;border:1px solid #ddd}.duplicate-key{margin:8px 0 12px;font-size:14px;color:var(--color-text-secondary)}.duplicate-key code{background:var(--color-bg-secondary);padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:13px;color:var(--color-text-primary)}.duplicate-table{width:100%;margin-top:10px;border-collapse:collapse}.duplicate-table th,.duplicate-table td{padding:8px;text-align:left;border-bottom:1px solid #ddd}.duplicate-table th{background:#f8f9fa;font-weight:600}.duplicate-table tr.kept-row{background:#d4edda}.duplicate-table tr.kept-row:hover{background:#c3e6cb}.duplicate-table tr.removed-row{background:#f8d7da}.duplicate-table tr.removed-row:hover{background:#f5c6cb}.status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.kept{background:#28a745;color:#fff}.status-badge.removed{background:#dc3545;color:#fff}.error-section{background:#fff3cd;border:1px solid #ffc107}.error-group{margin-bottom:25px;padding:15px;background:#fff;border-radius:6px;border:1px solid #ffc107}.error-group h3{margin-top:0;margin-bottom:15px;font-size:18px;color:#856404}.error-count{font-weight:400;color:#666;font-size:14px}.error-list{margin-top:15px}.error-item{padding:10px;margin-bottom:10px;background:#fff9e6;border-radius:4px;border-left:3px solid #ffc107}.error-item p{margin:5px 0;font-size:14px}.error-uuid{font-size:12px;color:#666;font-family:monospace}.error-more{margin-top:10px;font-style:italic;color:#666;font-size:13px}.success-section{background:#d4edda;border:1px solid #28a745}.success-section h2{color:#28a745}.error-banner{padding:20px;background:#f8d7da;border:1px solid #dc3545;border-radius:8px;margin:20px 0;color:#721c24}.error-banner h3{margin-top:0;margin-bottom:10px}.error-banner p{margin:0}.validation-warning-banner{display:flex;align-items:flex-start;gap:12px;padding:16px;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #ffc107;border-left:4px solid #ffc107;border-radius:6px;margin-bottom:16px}.validation-warning-banner .warning-icon{font-size:24px;line-height:1}.validation-warning-banner .warning-content{flex:1}.validation-warning-banner .warning-description{color:#856404}.validation-warning-banner .warning-details{margin-top:8px;font-size:13px}.validation-warning-banner .warning-field-count{color:#856404}.validation-warning-banner .validation-banner-dismiss{margin-left:auto;background:none;border:none;cursor:pointer;font-size:14px;color:#856404;opacity:.7;padding:0 2px;flex-shrink:0;align-self:flex-start}.validation-warning-banner .validation-banner-dismiss:hover{opacity:1}.execution-settings{margin-bottom:30px}.execution-settings h2{margin-top:0;margin-bottom:20px;font-size:22px}.setting-description{margin-top:5px;font-size:14px;color:#666;font-style:italic}.info-section{background:var(--color-bg-primary);border:1px solid var(--color-border-light)}.warning-section{background:var(--color-bg-primary);border:1px solid var(--color-warning)}.warning-section h2{color:var(--color-warning)}.skipped-columns-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.collapsible-section{cursor:pointer}.collapsible-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible-header:hover{opacity:.8}.collapse-icon{font-size:12px;color:var(--color-text-secondary);transition:transform .2s}.collapsible-content{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border-light)}.query-section{margin-top:30px}.query-header{margin-bottom:var(--spacing-lg)}.table-names-display{display:flex;flex-direction:column;gap:var(--spacing-sm)}.table-name-display{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.table-name-label{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.table-name-value{flex:1;font-family:Courier New,monospace;color:var(--color-text-primary);font-size:var(--font-size-xs);background:var(--color-bg-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:3px;border:1px solid var(--color-border-light)}.btn-copy{padding:4px 8px;background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-secondary);transition:all .2s}.btn-copy:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.query-input-container{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.query-input-wrapper{position:relative;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden}.query-resize-handle{position:absolute;bottom:0;left:0;right:0;height:8px;cursor:ns-resize;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;z-index:10}.query-resize-handle:hover{background:var(--color-border-light)}.resize-handle-icon{font-size:12px;color:var(--color-text-secondary);letter-spacing:2px}.query-controls-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.query-error{padding:var(--spacing-md);background:var(--color-error-bg);color:var(--color-error-text);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg);border-left:4px solid var(--color-error-text)}.query-results-container{margin-top:var(--spacing-lg)}.query-results-header{margin-bottom:var(--spacing-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.ovp-ag-container{height:700px;width:100%}.ag-header-cell.col-source .ag-header-cell-label{color:#ff9800}.ag-header-cell.col-destination .ag-header-cell-label{color:var(--color-primary, #1976d2)}.ovp-lineage-panel{flex-shrink:0;max-height:220px;overflow-y:auto;margin-bottom:var(--spacing-md)}.validation-summary-stats{margin-bottom:20px;padding:15px;background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.validation-summary-stats p{margin:5px 0;font-size:var(--font-size-med);color:var(--color-text-primary)}.validation-summary-grid{margin-top:20px;width:100%;height:600px}.validation-summary-grid .ag-cell{display:flex;align-items:center}.validation-summary-grid .ag-row.validation-error-row{background:#fff3cd}.validation-summary-grid .ag-row.validation-error-row:hover{background:#ffeaa7}.blank-null-count{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-left:5px}.validations-list{display:flex;flex-wrap:wrap;gap:5px}.validation-badge{display:inline-block;padding:4px 8px;background:var(--color-primary);color:#fff;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.no-validations{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-xs)}.error-counts{display:flex;flex-wrap:wrap;gap:4px}.error-badge{display:inline-block;padding:4px 8px;background:#ffc107;color:#856404;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.error-badge.error-badge-clickable{cursor:pointer;transition:background .15s}.error-badge.error-badge-clickable:hover{background:#e0a800}.error-badge.error-badge-clickable:focus-visible{outline:2px solid var(--color-primary, #4f46e5);outline-offset:1px}.no-errors{color:#28a745;font-weight:var(--font-weight-medium)}.validation-status{display:inline-block;padding:4px 12px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.validation-status.passed{background:#d4edda;color:#155724}.validation-status.failed{background:#f8d7da;color:#721c24}.validation-status.skipped{background:#e2e3e5;color:#383d41}.output-validation-actions{position:fixed;bottom:var(--spacing-2xl);right:var(--spacing-2xl);z-index:100;display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-end}.btn-review-agent{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease}.btn-review-agent:hover{background:var(--color-primary-hover)}.btn-resolution{padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#6366f1,#4f46e5);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #6366f14d}.btn-resolution:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 4px 8px #6366f166;transform:translateY(-2px)}.removed-count-badge{background:#dc3545;color:#fff;padding:4px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-left:auto;margin-right:10px}.removed-rows-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:15px;margin-bottom:20px}.removed-rows-header p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-primary)}.removed-rows-filters{display:flex;align-items:center;gap:10px}.removed-rows-filters label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.removed-rows-filters select{padding:6px 12px;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:#fff;cursor:pointer}.removed-rows-filters select:focus{outline:none;border-color:var(--color-primary)}.removed-rows-loading{padding:20px;text-align:center;color:var(--color-text-secondary);font-style:italic}.removed-rows-empty{padding:20px;text-align:center;color:var(--color-text-secondary);font-style:italic;background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.removed-rows-count{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:10px}.removed-rows-table-container{overflow-x:auto}.removed-rows-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs);background:#fff}.removed-rows-table th{background:var(--color-bg-secondary);padding:10px 12px;text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);border-bottom:2px solid var(--color-border-light);white-space:nowrap}.removed-rows-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary);vertical-align:top}.removed-rows-table tr:hover{background:var(--color-bg-secondary)}.removed-rows-table code{font-family:Courier New,monospace;background:var(--color-bg-secondary);padding:2px 6px;border-radius:3px;font-size:var(--font-size-xs);word-break:break-all}.removal-type-badge{display:inline-block;padding:3px 8px;border-radius:10px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:capitalize}.removal-type-badge.duplicate{background:#e3f2fd;color:#1565c0}.removal-type-badge.manual{background:#fff3e0;color:#e65100}.removal-type-badge.rule{background:#f3e5f5;color:#7b1fa2}.removal-reason{max-width:250px;font-size:var(--font-size-xs);color:var(--color-text-secondary);word-break:break-word}.original-data-details{cursor:pointer}.original-data-details summary{color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.original-data-details summary:hover{text-decoration:underline}.original-data-json{margin-top:10px;padding:10px;background:#2d2d2d;color:#f8f8f2;border-radius:var(--radius-sm);font-size:11px;font-family:Courier New,monospace;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-all}.removed-rows-more{margin-top:15px;text-align:center;font-style:italic;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.output-results-layout{display:flex;gap:20px;align-items:flex-start}.output-results-main{flex:1 1 100%;transition:flex .3s ease}.output-results-main--with-chat{flex:0 0 var(--main-width, 66.67%);min-width:800px}.output-not-stored{color:#999;font-style:italic}.query-section-content{margin-top:var(--spacing-md)}.query-section-header-title{margin:0}.query-section-toggle{font-size:14px;color:#666}.file-status-loading{padding:16px;text-align:center;color:#666}.file-status-item{padding:12px;border-radius:4px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.file-status-item--current{border:1px solid #28a745;background-color:#f0f9f4}.file-status-item--other{border:1px solid #ddd;background-color:#f9f9f9}.file-status-info{display:flex;flex-direction:column;gap:4px}.file-status-name{font-weight:600}.file-status-meta{font-size:13px;color:#666}.file-status-empty{padding:12px;color:#666;font-style:italic}.previous-files-section{margin-top:16px}.previous-files-label{font-size:14px;font-weight:600;margin-bottom:8px;color:#666}.previous-files-list{display:flex;flex-direction:column;gap:8px}.modal-body--spaced{margin-bottom:20px}.modal-warning-box{margin-bottom:20px;padding:12px;background:#fff3cd;border-radius:4px}.modal-warning-list{margin:8px 0 0;padding-left:20px}.output-files-container{margin-top:30px}.ovp-mode-toggle{display:inline-flex;border-radius:6px;border:1px solid #e0e0e0;overflow:hidden;margin-bottom:16px}.ovp-mode-btn{padding:6px 20px;border:none;background:#f5f5f5;color:#555;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.ovp-mode-btn:not(:last-child){border-right:1px solid #e0e0e0}.ovp-mode-btn.active{background:var(--color-primary, #4f46e5);color:#fff}.ovp-mode-btn:hover:not(.active){background:#e8e8e8}.ovp-review-controls{display:flex;align-items:center;gap:16px;padding:12px 0}.ovp-selection-count{font-size:14px;color:#555;font-weight:500}.modal-content.ovp-remove-modal{max-width:480px}.modal-content.ovp-remove-modal label{display:block;font-weight:500;margin-bottom:6px;color:#333}.modal-content.ovp-remove-modal textarea{width:100%;padding:8px 12px;border:1px solid #d0d0d0;border-radius:4px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box}.modal-content.ovp-remove-modal textarea:focus{outline:none;border-color:var(--color-primary, #4f46e5);box-shadow:0 0 0 2px #4f46e526}.modal-content.ovp-remove-modal p{margin:0 0 12px;color:#555}.modal-content.ovp-re-execution-warning{max-width:480px}.modal-content.ovp-re-execution-warning p{margin:0;color:#555}.btn-save-download{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;background:var(--color-primary, #4f46e5);color:#fff;transition:background .15s}.btn-save-download:hover:not(:disabled){background:var(--color-primary-dark, #4338ca)}.btn-save-download:disabled{opacity:.6;cursor:not-allowed}.sql-editor-page{display:flex;height:calc(100vh - 60px);background:var(--color-bg-secondary);margin:calc(-1 * var(--spacing-xl));margin-top:0}.sql-sidebar{min-width:200px;max-width:600px;flex-shrink:0;background:var(--color-bg-primary);border-right:1px solid var(--color-border-light);display:flex;flex-direction:column;overflow:hidden}.sidebar-resize-handle{width:4px;cursor:col-resize;background:transparent;flex-shrink:0;transition:background .15s ease;position:relative;z-index:10}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--color-primary)}.sidebar-section{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.sidebar-section.tables-section{flex:1;overflow-y:auto;border-bottom:none}.sidebar-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-md)}.db-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer}.db-select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.db-description{margin-top:var(--spacing-sm);font-size:var(--font-size-xxs);color:var(--color-text-muted);line-height:1.4}.materialize-info{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.materialize-stats{display:block;font-size:var(--font-size-xxs);color:var(--color-success);font-weight:var(--font-weight-medium)}.materialize-warnings{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-xxs);color:var(--color-warning);cursor:help}.materialize-errors{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm)}.materialize-errors-header{display:block;font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);color:var(--color-error-text);margin-bottom:var(--spacing-xs)}.materialize-errors-list{margin:0;padding-left:var(--spacing-md);font-size:var(--font-size-xxxs);color:var(--color-error-text)}.materialize-error-item{margin-bottom:2px;word-break:break-word}.sidebar-empty,.sidebar-loading{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.table-list{display:flex;flex-direction:column;gap:1px}.table-item{border-radius:var(--radius-sm);overflow:hidden}.table-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s ease}.table-header:hover{background:var(--color-bg-hover)}.table-chevron{font-size:var(--font-size-xs);color:var(--color-text-muted);transition:transform .15s ease;width:12px}.table-chevron.expanded{transform:rotate(90deg)}.table-name{flex:1;font-size:var(--font-size-xs);font-family:SF Mono,Fira Code,Consolas,monospace;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-all-btn{opacity:0;width:24px;height:24px;border:none;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease,background .15s ease}.table-header:hover .select-all-btn{opacity:1}.select-all-btn:hover{background:var(--color-primary-hover)}.table-columns{padding:var(--spacing-xs) var(--spacing-lg);padding-left:calc(var(--spacing-lg) + 6px + var(--spacing-sm));background:var(--color-bg-tertiary)}.column-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:3px 0;font-size:var(--font-size-xs);border:none}.column-name{font-family:SF Mono,Fira Code,Consolas,monospace;color:var(--color-text-primary);font-size:var(--font-size-xxs);border:none;background:none;padding:0}.column-type{display:inline-block;padding:2px 6px;background:#6b7280;color:#fff;border-radius:12px;font-size:var(--font-size-xxxs);font-weight:var(--font-weight-medium);line-height:1.2;border:none}.column-loading{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic;padding:var(--spacing-xs) 0}.tree-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;transition:color .15s ease}.tree-branch{margin-bottom:var(--spacing-xs)}.tree-branch-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s ease}.tree-branch-header:hover{background:var(--color-bg-hover)}.tree-icon-branch{width:16px;height:16px;border-radius:3px;background:var(--color-text-muted);color:var(--color-bg-primary);font-size:12px;font-weight:700}.tree-branch-label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-bold, 700);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px}.tree-branch-children{margin-left:7px;padding-left:var(--spacing-md);border-left:1px solid var(--color-border-light)}.tree-template{margin-bottom:1px}.tree-template-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:3px var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s ease}.tree-template-header:hover{background:var(--color-bg-hover)}.tree-template-label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:2px 8px;border-radius:10px;border:1px solid var(--color-border-light)}.tree-template-count{font-size:10px;color:var(--color-text-muted);min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border-radius:8px;font-weight:var(--font-weight-medium)}.tree-template-children{margin-left:5px;padding-left:var(--spacing-md);border-left:1px solid var(--color-border-light)}.tree-template-children .table-header{padding:2px var(--spacing-xs)}.tree-template-children .table-name{font-size:var(--font-size-xxs);font-weight:var(--font-weight-normal, 400);color:var(--color-text-secondary)}.tree-icon-table{width:12px;font-size:7px;color:var(--color-primary)}.tree-icon-table.expanded{color:var(--color-text-muted)}.table-type-badge{flex-shrink:0;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;font-size:9px;font-weight:700;line-height:1}.table-type-badge.source{background:#3b82f626;color:var(--color-primary)}.table-type-badge.output{background:#10b98126;color:var(--color-success)}.tree-template-children .select-all-btn{width:20px;height:20px;font-size:10px}.sql-main{flex:1;display:flex;flex-direction:column;padding:var(--spacing-lg);gap:var(--spacing-lg);overflow:hidden;min-width:0}.query-editor-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.editor-header{display:flex;align-items:center;justify-content:space-between}.editor-header h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.editor-actions{display:flex;align-items:center;gap:var(--spacing-md)}.shortcut-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.sql-editor-wrapper{border-radius:var(--radius-md);border:1px solid #334155;overflow:hidden}.sql-editor-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626}.sql-editor-wrapper .cm-editor{border-radius:var(--radius-md)}.sql-editor-wrapper .cm-editor.cm-focused{outline:none}.results-section{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--color-bg-primary);border-radius:var(--radius-md);border:1px solid var(--color-border-light);overflow:hidden}.results-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-tertiary)}.results-header h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.results-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.query-error{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-error-bg);color:var(--color-error-text);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-error-border)}.error-icon{flex-shrink:0}.sql-results-grid{flex:1;height:auto;min-height:200px}.results-empty,.results-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--color-text-muted)}.empty-icon,.placeholder-icon{font-size:48px;opacity:.5}.results-empty p,.results-placeholder p{font-size:var(--font-size-sm);margin:0}.categories-page{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.categories-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border)}.categories-title-section h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 6px;font-weight:var(--font-weight-semibold)}.categories-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.categories-actions{display:flex;gap:var(--spacing-md)}.categories-stats{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.categories-stats .stat-item{display:inline}.categories-stats .stat-item strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.category-form-container{margin-bottom:var(--spacing-xl)}.category-form{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.category-form h3{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-lg);color:var(--color-text-primary)}.form-error{background:var(--color-error-bg);color:var(--color-error-text);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-field.full-width{margin-bottom:var(--spacing-lg)}.form-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-field input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.categories-page .empty-state{text-align:center;padding:60px var(--spacing-xl);color:var(--color-text-secondary)}.categories-page .empty-state-icon{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg);opacity:.6}.categories-page .empty-state h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.categories-page .empty-state p{font-size:var(--font-size-sm);margin:0 0 var(--spacing-xl) 0;max-width:400px;margin-left:auto;margin-right:auto}.categories-page .empty-state-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:90vh;overflow:auto;box-shadow:var(--shadow-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0;font-size:var(--font-size-lg);color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:var(--font-size-xl);color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--color-text-primary)}.modal-body{padding:var(--spacing-xl)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border)}.import-instructions{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0}.import-instructions code{background:var(--color-bg-hover);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.import-example{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.import-example strong{font-size:var(--font-size-xs);color:var(--color-text-secondary);display:block;margin-bottom:var(--spacing-sm)}.import-example pre{margin:0;font-size:var(--font-size-xs);color:var(--color-text-primary);overflow-x:auto;white-space:pre-wrap}.import-error-box{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-error-bg, #fef2f2);border:1px solid var(--color-error, #ef4444);border-radius:var(--radius-md);color:var(--color-error-text, #dc2626);font-size:var(--font-size-sm)}.import-error-box strong{color:var(--color-error, #ef4444)}.import-result{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.import-result-stats{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.import-result-stats .stat{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.import-result-stats .stat.success{color:var(--color-success)}.import-result-stats .stat.skipped{color:var(--color-text-muted)}.import-result-stats .stat.duplicate{color:var(--color-warning, #f59e0b)}.import-errors{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.import-errors strong{font-size:var(--font-size-xs);color:var(--color-danger);display:block;margin-bottom:var(--spacing-xs)}.import-errors ul{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.import-errors li{margin-bottom:2px}.modal-body .form-field{margin-bottom:var(--spacing-lg)}.modal-body .form-field input[type=file]{padding:var(--spacing-sm)}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);font-family:inherit;transition:all .2s;background:var(--color-bg-primary);color:var(--color-text-primary)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.input::placeholder{color:var(--color-text-muted)}.input:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.6}.input-error{border-color:var(--color-danger)}.input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef44441a}.input-error-message{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--spacing-xs)}.upload-lookup-modal .modal-content{max-width:500px}.upload-lookup-modal-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.upload-lookup-description{color:var(--color-text-secondary);font-size:14px;line-height:1.5;margin:0}.form-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-label{font-size:14px;font-weight:500;color:var(--color-text-primary)}.form-error{font-size:12px;color:var(--color-danger)}.lookup-drop-zone{border:2px dashed var(--color-border-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);cursor:pointer;transition:all .2s ease;text-align:center;background:var(--color-bg-primary)}.lookup-drop-zone:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}.lookup-drop-zone.dragging{border-color:var(--color-primary);background:#3b82f60d}.lookup-drop-zone.has-file{border-color:var(--color-success);border-style:solid;background:#10b9810d;cursor:default}.lookup-drop-zone.has-error{border-color:var(--color-danger)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.drop-icon{color:var(--color-text-secondary)}.lookup-drop-zone:hover .drop-icon,.lookup-drop-zone.dragging .drop-icon{color:var(--color-primary)}.drop-text{margin:0;font-size:14px;font-weight:500;color:var(--color-text-primary)}.drop-subtext{margin:0;font-size:13px;color:var(--color-text-secondary)}.file-selected{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.file-info{display:flex;align-items:center;gap:var(--spacing-md)}.file-icon{color:var(--color-success);display:flex;align-items:center}.file-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.file-name{font-size:14px;font-weight:500;color:var(--color-text-primary);word-break:break-all}.file-size{font-size:12px;color:var(--color-text-secondary)}.remove-file-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.remove-file-btn:hover{background:var(--color-bg-secondary);color:var(--color-danger)}.upload-lookup-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md)}.enrich-source-data{display:flex;flex-direction:column;min-height:100%;padding:var(--spacing-lg);gap:var(--spacing-lg)}.enrich-header{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.enrich-header-top{display:flex;justify-content:space-between;align-items:center}.enrich-title-section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.enrich-title-section h2{margin:0;font-size:24px;font-weight:600;color:var(--color-text-primary)}.enrich-subtitle{margin:0;font-size:14px;color:var(--color-text-secondary)}.enrich-content{flex:1}.enrich-section{margin-bottom:var(--spacing-xl)}.enrich-section h3{margin:0 0 var(--spacing-sm) 0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.section-hint{margin:0 0 var(--spacing-md) 0;font-size:13px;color:var(--color-text-secondary)}.enrich-select-step{max-width:800px}.lookup-table-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.lookup-table-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.lookup-table-item:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}.lookup-table-info{display:flex;flex-direction:column;gap:2px}.lookup-table-name{font-weight:500;color:var(--color-text-primary)}.lookup-table-rows{font-size:12px;color:var(--color-text-secondary)}.lookup-table-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.lookup-table-action{color:var(--color-primary);font-size:13px;font-weight:500;opacity:.7;transition:opacity .15s ease}.lookup-table-item:hover .lookup-table-action{opacity:1}.btn-link.lookup-table-delete-btn{color:var(--color-danger, #ef4444);font-size:12px;opacity:.3;transition:opacity .15s ease}.btn-link.lookup-table-delete-btn:hover{color:var(--color-danger, #ef4444);opacity:1}.applied-joins-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.applied-join-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#10b9811a;border:1px solid var(--color-success);border-radius:var(--radius-md);font-size:13px}.join-lookup-name{font-weight:500;color:var(--color-text-primary)}.join-key-info{color:var(--color-text-secondary)}.join-stats{margin-left:auto;color:var(--color-success);font-size:12px}.saved-joins-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.saved-join-card{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.saved-join-header{display:flex;justify-content:space-between;align-items:center}.saved-join-name-row{display:flex;align-items:center;gap:var(--spacing-sm)}.saved-join-name{font-weight:500;color:var(--color-text-primary)}.saved-join-rename-input,.lookup-table-rename-input{font-size:inherit;font-weight:500;padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);width:180px}.saved-join-applied-badge{font-size:11px;font-weight:600;padding:1px 8px;border-radius:var(--radius-sm);background:#10b9811f;color:var(--color-success);text-transform:uppercase;letter-spacing:.3px}.saved-join-mode{font-size:11px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.saved-join-details{display:flex;align-items:center;gap:var(--spacing-sm);font-size:13px}.saved-join-keys{color:var(--color-text-secondary);font-family:var(--font-mono, monospace);font-size:12px}.saved-join-tag{font-size:11px;padding:1px 6px;border-radius:var(--radius-sm);background:#3b82f61a;color:var(--color-primary)}.saved-join-meta{display:flex;gap:var(--spacing-md);font-size:12px;color:var(--color-text-secondary)}.saved-join-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.saved-join-replay-btn{color:var(--color-primary);font-weight:500}.btn-link.saved-join-remove-btn{color:var(--color-danger, #ef4444);opacity:.3;transition:opacity .15s ease}.btn-link.saved-join-remove-btn:hover{color:var(--color-danger, #ef4444);opacity:1}.saved-join-columns,.saved-join-rate,.saved-join-date{white-space:nowrap}.replay-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:#3b82f61a;border:1px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.replay-banner-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.replay-banner-content strong{color:var(--color-text-primary);font-size:14px}.replay-banner-content p{margin:0;font-size:13px;color:var(--color-text-secondary)}.replay-result{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:13px}.replay-result strong{color:var(--color-text-primary);font-size:14px}.replay-result-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.replay-result-item.success{background:#10b98114}.replay-result-item.failed{background:#ef444414}.replay-result-name{font-weight:500;color:var(--color-text-primary)}.replay-result-stats{color:var(--color-success);font-size:12px}.replay-result-error{color:var(--color-danger, #ef4444);font-size:12px}.enrich-configure-step{max-width:1200px}.configure-header{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.configure-header h3{margin:0;font-size:18px;font-weight:600}.configure-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}@media (max-width: 768px){.configure-grid{grid-template-columns:1fr}}.configure-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.configure-section h4{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.key-selectors{display:flex;align-items:center;gap:var(--spacing-md)}.key-selectors .searchable-select-wrapper{flex:1;min-width:0}.key-arrow{font-size:16px;font-weight:700;color:var(--color-text-secondary)}.key-options{margin-top:var(--spacing-sm)}.configure-section .btn-secondary.btn-sm{width:fit-content}.column-actions{display:flex;gap:.5rem;margin-bottom:.5rem}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:13px;color:var(--color-text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px}.validation-result{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:12px;width:fit-content}.validation-result.valid{background:#10b9811a;color:var(--color-success)}.validation-result.invalid{background:#ef44441a;color:var(--color-danger)}.validation-icon{font-weight:700;font-size:11px}.validation-errors{display:flex;flex-direction:column;gap:4px}.configure-actions{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.enrich-preview-step{display:flex;flex-direction:column;gap:var(--spacing-lg)}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-header h3{margin:0;font-size:18px;font-weight:600}.join-stats{display:flex;gap:var(--spacing-lg)}.stat-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border-radius:var(--radius-md);min-width:100px}.stat-value{font-size:24px;font-weight:600;color:var(--color-text-primary)}.stat-label{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase}.stat-item.stat-success .stat-value{color:var(--color-success)}.stat-item.stat-warning .stat-value{color:var(--color-warning, #f59e0b)}.unmatched-warning{padding:var(--spacing-md);background:#f59e0b1a;border:1px solid var(--color-warning, #f59e0b);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.unmatched-warning:hover{background:#f59e0b26}.unmatched-warning-active{background:#f59e0b33;border-width:2px}.unmatched-warning strong{color:var(--color-warning, #f59e0b)}.unmatched-warning-header{display:flex;justify-content:space-between;align-items:center}.unmatched-toggle-hint{font-size:12px;color:var(--color-text-secondary);font-style:italic}.unmatched-keys-list{margin-top:var(--spacing-xs)}.unmatched-count-note{margin-top:var(--spacing-xs);font-size:12px;color:var(--color-text-secondary)}.ag-grid-container.enrich-preview-grid{height:500px}.enrich-preview-step .ag-header-cell.col-source .ag-header-cell-label{color:#ff9800;font-weight:600}.preview-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.loading-state{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.empty-state p{margin:0}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-size:14px}.btn-link:hover{text-decoration:underline}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:13px}.enrichment-notice{display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:#3b82f61a;border:1px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.enrichment-notice .notice-icon{font-size:20px;flex-shrink:0}.enrichment-notice .notice-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.enrichment-notice .notice-content strong{color:var(--color-text-primary);font-size:14px}.enrichment-notice .notice-content p{margin:0;font-size:13px;color:var(--color-text-secondary)}.enrichment-notice .btn{align-self:flex-start}.prior-mappings-page{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-md)}.prior-mappings-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border)}.header-title-section h2{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 6px;font-weight:var(--font-weight-semibold)}.header-title-section .subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.mappings-stats{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.mappings-stats .stat-item{display:inline}.mappings-stats .stat-item strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.stat-divider{color:var(--color-border)}.customer-id{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.mapping-input,.mapping-output{display:flex;flex-direction:column;gap:2px}.col-name{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.col-value{color:var(--color-text-primary);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:var(--font-size-sm);word-break:break-word}.col-name.secondary,.col-value.secondary{margin-top:var(--spacing-xs);opacity:.75}.mapping-context{display:flex;flex-direction:column;gap:4px}.context-item{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.context-label{color:var(--color-text-muted)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.3px}.badge-manual{background:var(--color-success-bg);color:var(--color-success)}.badge-ai{background:#3b82f61a;color:var(--color-primary)}.date-value{font-size:var(--font-size-xs);color:var(--color-text-muted)}.action-buttons{display:flex;gap:var(--spacing-xs)}.empty-state{text-align:center;padding:60px var(--spacing-xl);color:var(--color-text-secondary)}.empty-state .empty-icon{font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg);opacity:.6}.empty-state h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;font-weight:var(--font-weight-semibold)}.empty-state p{font-size:var(--font-size-sm);margin:0 0 var(--spacing-lg) 0;max-width:400px;margin-left:auto;margin-right:auto}.loading-state{text-align:center;padding:40px var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.edit-form,.create-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-info{background:var(--color-bg-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.info-row{display:flex;gap:var(--spacing-md)}.info-label{font-size:var(--font-size-xs);color:var(--color-text-muted);min-width:100px}.info-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.form-input::placeholder{color:var(--color-text-muted)}textarea.form-input{font-family:inherit;font-size:var(--font-size-sm);resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-divider{display:flex;align-items:center;gap:var(--spacing-md);margin:var(--spacing-md) 0}.form-divider:before,.form-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.form-divider span{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.edit-note{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-info-bg);padding:var(--spacing-md);border-radius:var(--radius-md);margin:0}.edit-note strong{color:var(--color-info-text)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.create-modal{max-width:600px}.delete-confirm{text-align:center;padding:var(--spacing-sm) 0}.delete-message{margin:0 0 var(--spacing-lg);color:var(--text-secondary);font-size:.95rem}.delete-mapping-preview{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg)}.delete-mapping-preview .mapping-input,.delete-mapping-preview .mapping-output{font-family:var(--font-mono, monospace);font-size:.9rem;font-weight:600;color:var(--text-primary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-mapping-preview .mapping-arrow{color:var(--text-muted, #999);font-size:1.1rem}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-secondary)}.auth-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:auth-spin .8s linear infinite;margin:40px auto}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-error-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-secondary)}.auth-error-card{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:40px 36px;width:100%;max-width:380px;text-align:center}.auth-error-message{font-size:var(--font-size-sm);color:var(--color-danger);margin:0 0 var(--spacing-lg) 0}.auth-retry-button{padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s}.auth-retry-button:hover{background:var(--color-primary-hover)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-secondary)}.login-card{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:40px 36px;width:100%;max-width:380px}.login-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.login-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 28px}.login-label{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.login-input{width:100%;padding:10px var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:15px;outline:none;transition:border-color .15s;margin-bottom:var(--spacing-lg);box-sizing:border-box}.login-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.login-error{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-danger)}.login-success{margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-success-bg);border:1px solid var(--color-success);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-success)}.login-button{margin-top:var(--spacing-xs);width:100%;padding:11px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:15px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s}.login-button:hover{background:var(--color-primary-hover)}.login-button:disabled{background:var(--color-text-muted);cursor:not-allowed}.accept-invite-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-secondary)}.accept-invite-card{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:40px 36px;width:100%;max-width:380px}.accept-invite-title{font-size:22px;font-weight:700;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.accept-invite-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 28px}.accept-invite-label{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.accept-invite-input{width:100%;padding:10px var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:15px;outline:none;transition:border-color .15s;margin-bottom:var(--spacing-xs);box-sizing:border-box}.accept-invite-input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.accept-invite-char-count{font-size:var(--font-size-xxs);color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.accept-invite-char-count.met{color:var(--color-success)}.accept-invite-mismatch{font-size:var(--font-size-xxs);color:var(--color-danger);margin-bottom:var(--spacing-sm)}.accept-invite-error{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-danger)}.accept-invite-button{margin-top:var(--spacing-sm);width:100%;padding:11px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:15px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background .15s}.accept-invite-button:hover:not(:disabled){background:var(--color-primary-hover)}.accept-invite-button:disabled{background:var(--color-text-muted);cursor:not-allowed}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:100}.app-header-left{display:flex;align-items:center}.app-logo{text-decoration:none;display:flex;align-items:center}.app-logo img{height:auto;max-width:150px;width:auto}.app-logo h1{font-size:var(--font-size-xl);font-weight:700;color:#fff;margin:0;letter-spacing:-.5px;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-nav{display:flex;gap:var(--spacing-xs)}.nav-link{padding:var(--spacing-sm) var(--spacing-lg);color:#ffffffb3;text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all .2s ease}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#fff;background:#fff3;border:1px solid rgba(255,255,255,.3)}.logout-button{margin-left:auto;background:none;border:none;cursor:pointer}.customer-context-bar{display:flex;align-items:center;gap:0;padding:var(--spacing-xs) var(--spacing-xl);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.breadcrumb-link{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--color-text-primary);font-weight:var(--font-weight-medium);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);transition:all .2s ease}.breadcrumb-link:hover{background:var(--color-bg-hover);color:var(--color-primary)}.breadcrumb-separator{color:var(--color-text-muted);margin:0 var(--spacing-sm);-webkit-user-select:none;user-select:none}.breadcrumb-segment{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.app-container{width:95%;max-width:95%;margin:0 auto;padding:var(--spacing-xl);flex:1}.app-container-full{padding:var(--spacing-xl);flex:1;display:flex;flex-direction:column}.loading{text-align:center;padding:40px;font-size:var(--font-size-lg);color:var(--color-text-secondary)}.error-banner{background-color:var(--color-error-bg);color:var(--color-error-text);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xl);border-left:4px solid var(--color-error-text)}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-secondary: #e5e7eb;--color-secondary-hover: #d1d5db;--color-success: #10b981;--color-success-hover: #059669;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-warning: #ffc107;--color-warning-hover: #f59e0b;--color-info: #17a2b8;--color-info-hover: #138496;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-text-inverse: #ffffff;--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #f9fafb;--color-bg-hover: #f3f4f6;--color-border: #e5e7eb;--color-border-hover: #d1d5db;--color-border-light: #e0e0e0;--color-error-bg: #fee2e2;--color-error-border: #fecaca;--color-error-text: #991b1b;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--color-info-bg: #d1ecf1;--color-info-text: #0c5460;--color-success-bg: #f0fdf4;--color-system-bg: #f0f9ff;--color-system-text: #1e40af;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1);--shadow-xl: 0 4px 12px rgba(0, 0, 0, .1);--shadow-primary: 0 2px 4px rgba(59, 130, 246, .2);--shadow-primary-hover: 0 4px 8px rgba(59, 130, 246, .3);--shadow-success: 0 4px 8px rgba(16, 185, 129, .3);--shadow-success-hover: 0 6px 12px rgba(16, 185, 129, .4);--shadow-danger: 0 2px 4px rgba(239, 68, 68, .2);--shadow-danger-hover: 0 4px 8px rgba(239, 68, 68, .3);--focus-ring: 0 0 0 3px rgba(59, 130, 246, .1);--font-size-xxxs: 8px;--font-size-xxs: 10px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 28px;--font-size-3xl: 32px;--font-size-4xl: 48px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px}.btn{padding:var(--spacing-md) var(--spacing-2xl);border:none;border-radius:var(--radius-xl);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-text-inverse);box-shadow:var(--shadow-primary)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary-hover) 100%);box-shadow:var(--shadow-primary-hover);transform:translateY(-1px)}.btn-primary:disabled{background:var(--color-text-muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-hover) 100%);color:var(--color-text-primary);border:1px solid var(--color-secondary-hover);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-secondary-hover) 0%,var(--color-secondary-hover) 100%);border-color:var(--color-secondary-hover);color:var(--color-text-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary:disabled{background:var(--color-bg-tertiary);color:var(--color-text-muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-danger{background:linear-gradient(135deg,var(--color-danger) 0%,var(--color-danger-hover) 100%);color:var(--color-text-inverse);box-shadow:var(--shadow-danger)}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,var(--color-danger-hover) 0%,var(--color-danger-hover) 100%);box-shadow:var(--shadow-danger-hover);transform:translateY(-1px)}.btn-danger:disabled{background:var(--color-text-muted);cursor:not-allowed;box-shadow:none;transform:none;opacity:.6}.btn-success{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-hover) 100%);color:var(--color-text-inverse);box-shadow:var(--shadow-success)}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,var(--color-success-hover) 0%,var(--color-success-hover) 100%);box-shadow:var(--shadow-success-hover);transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-hover) 100%);color:#212529;border:none}.btn-warning:hover:not(:disabled){background:linear-gradient(135deg,var(--color-warning-hover) 0%,var(--color-warning) 100%);transform:translateY(-1px)}.btn-warning:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-sm{padding:6px var(--spacing-md);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.btn-full-width{width:100%;justify-content:center}.btn-create{padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.btn-icon{padding:var(--spacing-sm);min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-hover);border:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-md);line-height:1;border-radius:var(--radius-md)}.btn-icon:hover{background:var(--color-secondary);border-color:var(--color-secondary-hover);color:var(--color-text-primary)}.btn-icon.btn-danger{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-danger)}.btn-icon.btn-danger:hover{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-danger-hover)}.btn-back{padding:10px var(--spacing-xl);background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-hover) 100%);color:var(--color-text-primary);border:1px solid var(--color-secondary-hover);border-radius:var(--radius-xl);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm)}.btn-back:hover{background:linear-gradient(135deg,var(--color-secondary-hover) 0%,var(--color-secondary-hover) 100%);border-color:var(--color-secondary-hover);color:var(--color-text-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-back:active{transform:translateY(1px)}.btn-back.text-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:.5rem 0;margin-bottom:1rem;text-decoration:none;display:inline-block;box-shadow:none}.btn-back.text-link:hover{text-decoration:underline;color:var(--color-primary-hover);transform:none}.btn-copy{background:linear-gradient(135deg,var(--color-bg-hover) 0%,var(--color-secondary) 100%);border:1px solid var(--color-border);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-xs) 10px;border-radius:var(--radius-xl);transition:all .2s;color:var(--color-text-primary)}.btn-copy:hover{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-hover) 100%);border-color:var(--color-secondary-hover);transform:translateY(-1px)}.btn-open-chat{padding:10px var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-text-inverse);border:none;border-radius:var(--radius-xl);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:var(--shadow-primary)}.btn-open-chat:hover{background:linear-gradient(135deg,var(--color-primary-hover) 0%,var(--color-primary-hover) 100%);box-shadow:var(--shadow-primary-hover);transform:translateY(-1px)}.btn-open-chat:active{transform:translateY(1px)}.btn-proceed-mapping{position:fixed;bottom:var(--spacing-2xl);right:var(--spacing-2xl);padding:var(--spacing-md) var(--spacing-2xl);background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-hover) 100%);color:var(--color-text-inverse);border:none;border-radius:var(--radius-xl);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;box-shadow:var(--shadow-success);transition:all .2s ease;z-index:1000}.btn-proceed-mapping:hover{background:linear-gradient(135deg,var(--color-success-hover) 0%,var(--color-success-hover) 100%);box-shadow:var(--shadow-success-hover);transform:translateY(-2px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-secondary);color:var(--color-text-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
