:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #6b7280;--success-color: #059669;--warning-color: #d97706;--error-color: #dc2626;--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: #e2e8f0;--border-radius: 8px;--header-height: 64px}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:16px;margin-top:var(--header-height);width:100%;box-sizing:border-box}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:100}.header-left,.header-center,.header-right{display:flex;align-items:center}.logo-link{display:flex;align-items:center;text-decoration:none;color:var(--text-primary);gap:12px}.logo{height:32px}.logo-text{font-size:1.25rem;font-weight:600}.nav-links{display:flex;gap:8px}.nav-link{padding:8px 16px;border-radius:var(--border-radius);text-decoration:none;color:var(--text-secondary);transition:all .2s}.nav-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.user-menu{position:relative}.user-button{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s}.user-button:hover{background:var(--bg-tertiary)}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.user-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000026;min-width:150px}.user-dropdown button{display:block;width:100%;padding:12px 16px;text-align:left;background:none;border:none;cursor:pointer;transition:background .2s}.user-dropdown button:hover{background:var(--bg-tertiary)}.app-footer{display:flex;justify-content:center;align-items:center;padding:16px 24px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.footer-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-muted);font-size:.875rem}.footer-logo{height:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header-left{display:flex;align-items:center;gap:16px}.page-header-right{display:flex;gap:12px}.page-title{font-size:1.5rem;font-weight:600}.back-button{display:flex;align-items:center;gap:4px;padding:8px 12px;background:none;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);transition:all .2s}.back-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.primary-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);font-weight:500;transition:background .2s}.primary-button:hover:not(:disabled){background:var(--primary-hover)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);font-weight:500;transition:all .2s}.secondary-button:hover{background:var(--bg-tertiary)}.delete-button{padding:8px;background:none;border:none;color:var(--text-muted);border-radius:var(--border-radius);transition:all .2s}.delete-button:hover{background:#ef44441a;color:var(--error-color)}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-pending{background:var(--bg-tertiary);color:var(--text-secondary)}.status-processing,.status-pairing,.status-paired{background:#2563eb1a;color:var(--primary-color)}.status-completed,.status-approved{background:#0596691a;color:var(--success-color)}.status-failed,.status-rejected{background:#dc26261a;color:var(--error-color)}.status-cancelled{background:#d977061a;color:var(--warning-color)}.error-message{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#ef44441a;border:1px solid var(--error-color);border-radius:var(--border-radius);color:var(--error-color);margin-bottom:16px}.error-dismiss{background:none;border:none;font-size:1.25rem;color:var(--error-color);cursor:pointer}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px}.loading-spinner{display:flex;align-items:center;justify-content:center}.spinner{border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}.spinner-small .spinner{width:20px;height:20px}.spinner-medium .spinner{width:36px;height:36px}.spinner-large .spinner{width:48px;height:48px}.loading-text{margin-top:16px;color:var(--text-secondary)}.empty-state{text-align:center;padding:48px;color:var(--text-secondary)}.empty-state h3{margin-bottom:8px;color:var(--text-primary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:24px}.login-container{width:100%;max-width:400px;background:var(--bg-secondary);padding:40px;border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a}.login-header{text-align:center;margin-bottom:32px}.login-logo{height:48px;margin-bottom:16px}.login-header h1{font-size:1.25rem;color:var(--text-primary)}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{padding:12px;background:#ef44441a;border:1px solid var(--error-color);border-radius:var(--border-radius);color:var(--error-color);font-size:.875rem}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select{padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.login-button{width:100%;padding:12px;background:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.login-button:hover:not(:disabled){background:var(--primary-hover)}.login-button:disabled{opacity:.7;cursor:not-allowed}.dashboard-page{max-width:1200px}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;border:2px dashed var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary);cursor:pointer;transition:all .2s;margin-bottom:32px}.upload-dropzone:hover,.upload-dropzone.active{border-color:var(--primary-color);background:#2563eb0d}.upload-dropzone.disabled{pointer-events:none;opacity:.7}.upload-dropzone svg{color:var(--text-muted);margin-bottom:16px}.upload-text{font-size:1rem;color:var(--text-primary);margin-bottom:8px}.upload-hint{font-size:.875rem;color:var(--text-muted)}.upload-loading{display:flex;align-items:center;gap:12px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:20px;cursor:pointer;transition:all .2s}.project-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000001a}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.project-name{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.project-stats{display:flex;gap:24px;margin-bottom:16px}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.project-supplier{font-size:.875rem;color:var(--text-secondary);margin-bottom:16px}.project-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--border-color)}.project-date{font-size:.875rem;color:var(--text-muted)}.project-detail-page{width:100%}.project-info-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:24px}.info-stats{display:flex;gap:32px}.info-stats .stat{flex-direction:row;gap:8px}.info-stats .stat-value{font-size:1.25rem}.info-stats .stat-label{font-size:.875rem}.pairing-controls{display:flex;gap:12px;align-items:center}.error-badge{background:#dc26261a;color:var(--error-color);padding:6px 12px;border-radius:4px;font-size:.875rem;font-weight:500}.supplier-select{padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);min-width:250px}.model-select{padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);min-width:200px;background:var(--bg-secondary)}.restart-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.875rem;color:var(--text-secondary);padding:6px 10px;background:#eab3081a;border-radius:var(--border-radius);border:1px solid rgba(234,179,8,.3)}.restart-checkbox:hover{background:#eab30826}.restart-checkbox input{width:16px;height:16px;cursor:pointer}.restart-checkbox span{white-space:nowrap}.pairing-progress{display:flex;align-items:center;gap:12px;color:var(--primary-color)}.pairing-progress-bar{display:flex;flex-direction:column;gap:8px;flex:1;max-width:400px}.pairing-progress-info{display:flex;align-items:center;gap:8px;color:var(--primary-color);font-weight:500}.pairing-progress-track{width:100%;height:6px;background:var(--border-color);border-radius:3px;overflow:hidden}.pairing-progress-fill{height:100%;background:var(--primary-color);border-radius:3px;transition:width .3s ease}.pairing-hint{font-size:.75rem;color:var(--text-muted);font-style:italic}.cancel-button{padding:4px 12px;background:transparent;border:1px solid var(--error-color);border-radius:var(--border-radius);color:var(--error-color);font-size:.8rem;cursor:pointer;transition:all .2s;margin-left:12px}.cancel-button:hover{background:var(--error-color);color:#fff}.filter-controls{display:flex;align-items:center;gap:8px}.filter-controls label{color:var(--text-secondary)}.filter-controls select{padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius)}.rows-list{display:flex;flex-direction:column;gap:12px}.row-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.row-card.approved{border-color:var(--success-color)}.row-card.rejected{opacity:.6}.row-header{display:flex;align-items:center;gap:16px;padding:16px 20px;cursor:pointer;transition:background .2s}.row-header:hover{background:var(--bg-tertiary)}.row-number{font-weight:600;color:var(--text-muted);min-width:50px}.row-preview{flex:1;display:flex;gap:16px;overflow:hidden}.preview-field{font-size:.875rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-field strong{color:var(--text-primary)}.expand-icon{color:var(--text-muted);transition:transform .2s}.row-card.expanded .expand-icon{transform:rotate(180deg)}.row-details{padding:20px;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.original-data{margin-bottom:24px}.original-data h4,.suggestions h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:12px}.data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.data-field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.field-value{font-size:.875rem;color:var(--text-primary)}.suggestions-list{display:flex;flex-direction:column;gap:12px}.suggestion-card{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius)}.suggestion-card.selected{border-color:var(--success-color);background:#0596690d}.suggestion-info{flex:1}.suggestion-name{font-weight:600;color:var(--text-primary);margin-bottom:4px}.suggestion-details{display:flex;gap:16px;font-size:.875rem;color:var(--text-secondary);margin-bottom:8px}.suggestion-description{font-size:.875rem;color:var(--text-muted)}.suggestion-actions{display:flex;align-items:center;margin-left:16px}.approve-button{padding:8px;background:var(--success-color);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .2s}.approve-button:hover{background:#047857}.approved-badge{padding:4px 12px;background:var(--success-color);color:#fff;border-radius:12px;font-size:.75rem;font-weight:500}.no-suggestions{padding:24px;text-align:center;color:var(--text-muted);font-style:italic}.row-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.reject-button{padding:8px 16px;background:none;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);cursor:pointer;transition:all .2s}.reject-button:hover{background:var(--bg-tertiary);color:var(--error-color);border-color:var(--error-color)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h4{margin-bottom:0}.section-actions{display:flex;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);cursor:pointer;transition:all .2s}.icon-button:hover:not(:disabled){background:var(--bg-tertiary);color:var(--primary-color);border-color:var(--primary-color)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.spinner-tiny .spinner{width:14px;height:14px;border-width:2px}.edit-form{background:var(--bg-secondary);padding:16px;border-radius:var(--border-radius);border:1px solid var(--border-color)}.edit-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.data-field.editable{flex-direction:column}.data-field.editable label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px}.data-field.full-width{grid-column:1 / -1}.field-input{padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:.875rem;transition:border-color .2s;width:100%;box-sizing:border-box}.field-input:focus{outline:none;border-color:var(--primary-color)}textarea.field-input{resize:vertical;min-height:60px}.primary-button.small,.secondary-button.small{padding:6px 12px;font-size:.875rem}.manual-pairing-form{background:var(--bg-secondary);padding:20px;border-radius:var(--border-radius);border:1px solid var(--border-color);margin-top:16px}.manual-pairing-form h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:16px}.manual-paired-info{margin-top:16px}.manual-paired-info h4{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:12px}.table-container{overflow-x:auto;background:var(--bg-secondary)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);position:sticky;top:0;z-index:1}.data-table tbody tr:hover{background:var(--bg-tertiary)}.data-table tbody tr.approved{background:#0596690d}.data-table tbody tr.rejected{opacity:.5}.col-row-num{width:50px;text-align:center;color:var(--text-muted)}.col-status{width:90px}.col-data{min-width:120px;max-width:300px;cursor:pointer}.col-data:hover{background:#2563eb0d}.col-data.editing{padding:4px}.cell-value{display:block;white-space:pre-wrap;word-break:break-word}.cell-input{width:100%;padding:6px 8px;border:2px solid var(--primary-color);border-radius:4px;font-size:.875rem;outline:none}.col-matched{min-width:180px}.col-actions{width:100px;text-align:center}.matched-info{display:flex;flex-direction:column;gap:2px}.matched-info strong{color:var(--text-primary)}.matched-detail{font-size:.75rem;color:var(--text-muted)}.no-match{color:var(--text-muted)}.suggestions-dropdown{position:relative}.suggestions-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:.75rem;color:var(--primary-color);cursor:pointer}.suggestions-toggle:hover{background:var(--border-color)}.suggestions-popover{position:absolute;top:100%;left:0;z-index:10;min-width:250px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000026;margin-top:4px}.suggestion-option{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border-color)}.suggestion-option:last-child{border-bottom:none}.suggestion-option:hover{background:var(--bg-tertiary)}.suggestion-option .suggestion-name{flex:1;font-weight:500}.suggestion-option .suggestion-cat{font-size:.75rem;color:var(--text-muted)}.suggestion-option svg{color:var(--success-color)}.action-buttons{display:flex;gap:4px;justify-content:center}.icon-button.approve{color:var(--success-color);border-color:var(--success-color)}.icon-button.approve:hover{background:#0596691a}.icon-button.reject{color:var(--error-color);border-color:var(--error-color)}.icon-button.reject:hover{background:#dc26261a}.empty-row{text-align:center;color:var(--text-muted);padding:48px}.keyboard-help{display:flex;justify-content:center;gap:24px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:16px;font-size:.8rem;color:var(--text-secondary)}.keyboard-help kbd{display:inline-block;padding:3px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-family:monospace;font-size:.75rem;margin-right:4px;box-shadow:0 1px 2px #0000001a}.data-table tbody tr.selected{background:#2563eb1a!important;outline:2px solid var(--primary-color);outline-offset:-2px}.data-table tbody tr.selected.approved{background:#2563eb26!important}.data-table tbody tr.waiting-for-ai{background:repeating-linear-gradient(-45deg,var(--bg-secondary),var(--bg-secondary) 10px,rgba(37,99,235,.03) 10px,rgba(37,99,235,.03) 20px);opacity:.7}.data-table tbody tr.waiting-for-ai:hover{opacity:.85}.ai-working{display:inline-flex;align-items:center;gap:8px;color:var(--primary-color);font-style:italic}.waiting-label{font-size:.75rem;color:var(--text-muted);font-style:italic}.suggestions-inline{display:flex;flex-wrap:wrap;gap:4px}.suggestion-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:.75rem;cursor:pointer;max-width:200px;overflow:hidden}.suggestion-chip:hover{background:var(--border-color);border-color:var(--primary-color)}.suggestion-chip.selected{background:#2563eb26;border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}.chip-name{word-break:break-word}.chip-cat{color:var(--text-muted);flex-shrink:0}.col-suggestions{min-width:400px}.suggestion-cards{display:flex;gap:8px;flex-wrap:wrap}.product-card{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s;max-width:250px}.product-card:hover{border-color:var(--primary-color);background:#2563eb1a}.product-card.active{border-color:var(--primary-color)}.card-letter{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--primary-color);color:#fff;border-radius:4px;font-size:.75rem;font-weight:600;flex-shrink:0}.card-content{flex:1;min-width:0;overflow:hidden}.card-name{font-size:.8rem;font-weight:500;word-break:break-word}.card-cat{font-size:.7rem;color:var(--text-muted)}.pdf-link{padding:2px 6px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:3px;font-size:.65rem;color:var(--primary-color);cursor:pointer;flex-shrink:0}.pdf-link:hover{background:var(--primary-color);color:#fff}.matched-product{display:flex;align-items:center;gap:8px}.matched-badge{color:var(--success-color);font-weight:700}.matched-cat{color:var(--text-muted);font-size:.8rem}.no-suggestions{color:var(--text-muted);font-style:italic}.icon-button.undo{color:var(--warning-color);border-color:var(--warning-color)}.icon-button.undo:hover{background:#d977061a}.icon-button.skip{color:var(--text-muted)}.icon-button.skip:hover{color:var(--error-color);border-color:var(--error-color);background:#dc26261a}.skipped-label{font-size:.7rem;color:var(--text-muted);font-style:italic}.tinder-view{min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column}.tinder-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.tinder-header h1{font-size:1.1rem;margin:0}.tinder-progress{font-size:.875rem;color:var(--text-muted)}.tinder-card-container{flex:1;display:flex;flex-direction:column;padding:16px;overflow-y:auto}.tinder-card{background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:hidden;margin-bottom:16px}.tinder-row-data{padding:16px;border-bottom:1px solid var(--border-color)}.tinder-row-data h3{margin:0 0 12px;font-size:1rem;color:var(--text-secondary)}.tinder-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.tinder-field{display:flex;flex-direction:column;gap:2px}.tinder-field .field-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.tinder-field .field-value{font-size:.9rem;color:var(--text-primary)}.tinder-suggestions{padding:16px}.tinder-suggestions h4{margin:0 0 12px;font-size:.875rem;color:var(--text-secondary)}.tinder-suggestion-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .15s}.tinder-suggestion-card:hover,.tinder-suggestion-card:active{border-color:var(--primary-color);background:#2563eb1a}.suggestion-letter{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--primary-color);color:#fff;border-radius:8px;font-size:1.1rem;font-weight:600;flex-shrink:0}.suggestion-content{flex:1;min-width:0}.suggestion-content .suggestion-name{font-weight:500;margin-bottom:2px}.suggestion-content .suggestion-cat{font-size:.8rem;color:var(--text-muted)}.suggestion-content .suggestion-category{font-size:.75rem;color:var(--text-secondary)}.view-pdf-btn{padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:.75rem;color:var(--primary-color);cursor:pointer}.tinder-no-matches{padding:24px;text-align:center;color:var(--text-muted)}.tinder-no-matches p{margin-bottom:16px}.tinder-ai-working{padding:32px 24px;text-align:center;background:repeating-linear-gradient(-45deg,var(--bg-secondary),var(--bg-secondary) 10px,rgba(37,99,235,.05) 10px,rgba(37,99,235,.05) 20px)}.tinder-ai-working p{margin:16px 0 8px;color:var(--primary-color);font-weight:500}.tinder-ai-hint{font-size:.8rem;color:var(--text-muted)}.tinder-header-info{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.tinder-header-info h1{margin:0}.tinder-pairing-status{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--primary-color)}.tinder-waiting-hint{color:var(--text-muted);font-style:italic;font-size:.875rem}.tinder-actions{display:flex;justify-content:center;gap:24px;padding:16px}.tinder-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 32px;border:none;border-radius:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.tinder-btn.reject{background:#dc26261a;color:var(--error-color)}.tinder-btn.reject:hover{background:#dc262633}.tinder-btn.approve{background:#0596691a;color:var(--success-color)}.tinder-btn.approve:hover{background:#05966933}.tinder-nav{display:flex;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.tinder-nav button{padding:8px 16px;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer}.tinder-nav button:disabled{opacity:.4;cursor:not-allowed}.tinder-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center}.tinder-empty h2{color:var(--success-color);margin-bottom:8px}.tinder-empty p{color:var(--text-muted);margin-bottom:24px}.tinder-quick-actions{display:flex;justify-content:center;gap:12px;padding:16px;flex-wrap:wrap}.quick-btn{display:flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s;border:none;min-width:60px}.quick-btn.approve{background:var(--success-color);color:#fff}.quick-btn.approve:hover{background:#047857}.quick-btn.approve-asis{background:var(--success-color);color:#fff}.quick-btn.approve-asis:hover{background:#047857}.quick-btn.skip{background:var(--error-color);color:#fff}.quick-btn.skip:hover{background:#b91c1c}.quick-btn.refresh{background:var(--secondary-color);color:#fff}.quick-btn.refresh:hover{background:#4b5563}.quick-btn:disabled{opacity:.5;cursor:not-allowed}.unpaired-products-container{padding:16px 0}.unpaired-header{margin-bottom:24px}.unpaired-header h3{margin:0 0 8px;font-size:1.1rem;color:var(--text-primary)}.unpaired-header p{margin:0;color:var(--text-muted);font-size:.875rem}.unpaired-products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.unpaired-product-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:16px;display:flex;flex-direction:column;gap:8px}.unpaired-product-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.unpaired-product-header strong{font-size:1rem;color:var(--text-primary)}.unpaired-product-header .catalog-num{font-size:.8rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:4px}.unpaired-product-category{font-size:.8rem;color:var(--primary-color);font-weight:500}.unpaired-product-desc{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.unpaired-product-card .pdf-link{align-self:flex-start;margin-top:8px;padding:6px 12px;font-size:.8rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--primary-color);cursor:pointer;transition:all .15s}.unpaired-product-card .pdf-link:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:300px}.progress-bar{width:100%;height:8px;background:var(--border-color);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary-color);transition:width .3s ease}.progress-text{font-size:.875rem;color:var(--text-secondary)}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:8px;padding:16px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.pagination-btn{padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary-color);color:var(--primary-color)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{display:flex;align-items:center;gap:8px;padding:0 16px;font-size:.875rem;color:var(--text-secondary)}.pagination-total{color:var(--text-muted);font-size:.8rem}@media (max-width: 768px){.main-content{padding:16px}.page-header,.project-info-bar{flex-direction:column;gap:16px;align-items:flex-start}.pairing-controls{flex-direction:column;width:100%}.supplier-select,.model-select{width:100%}.projects-grid{grid-template-columns:1fr}.row-preview{display:none}.data-grid{grid-template-columns:1fr}}.product-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.product-modal{background:var(--bg-secondary);border-radius:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0000004d}.modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--bg-tertiary);border-radius:50%;font-size:20px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;z-index:1}.modal-close:hover{background:var(--border-color);color:var(--text-primary)}.modal-content{display:grid;grid-template-columns:300px 1fr;gap:24px;padding:24px}.modal-image-section{display:flex;flex-direction:column;gap:12px}.modal-product-image{width:100%;height:auto;max-height:350px;object-fit:contain;border-radius:8px;background:var(--bg-tertiary)}.modal-image-placeholder{width:100%;height:250px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:8px;color:var(--text-muted);font-size:.875rem}.modal-pdf-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--primary-color);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.modal-pdf-button:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.modal-details-section{display:flex;flex-direction:column;gap:12px}.modal-product-name{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0;padding-right:40px}.modal-catalog-number{font-size:1rem;color:var(--primary-color);font-weight:500}.modal-category,.modal-manufacturer,.modal-packaging{font-size:.9rem;color:var(--text-secondary)}.detail-label{font-weight:600;color:var(--text-primary)}.modal-description{font-size:.9rem;color:var(--text-secondary);line-height:1.6}.modal-description p{margin:8px 0 0;white-space:pre-wrap}.modal-autofill-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.modal-autofill-section h3{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin:0 0 12px}.autofill-preview{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.autofill-row{display:flex;gap:8px;font-size:.8rem;padding:6px 8px;background:var(--bg-tertiary);border-radius:4px}.autofill-key{font-weight:600;color:var(--text-secondary);flex-shrink:0;min-width:100px}.autofill-value{color:var(--text-primary);word-break:break-word}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.modal-cancel-btn{padding:10px 20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s}.modal-cancel-btn:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.modal-approve-btn{display:flex;align-items:center;gap:8px;padding:10px 24px;background:var(--success-color);border:none;border-radius:6px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.modal-approve-btn:hover{background:#047857}@media (max-width: 768px){.modal-content{grid-template-columns:1fr}.modal-image-section{order:-1}.modal-product-image{max-height:200px}}.pdf-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.pdf-viewer-fullscreen{background:var(--bg-card);border-radius:12px;width:95vw;height:95vh;max-width:1400px;display:flex;flex-direction:column}.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0}.pdf-viewer-header h3{margin:0;color:var(--text-primary)}.pdf-page-jumper{display:flex;align-items:center;gap:8px}.pdf-page-jumper label{color:var(--text-secondary);font-size:.875rem}.pdf-page-jumper select{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.875rem}.pdf-page-jumper .page-total{color:var(--text-muted);font-size:.875rem}.close-button{padding:8px;background:var(--bg-tertiary);border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center}.close-button:hover{background:var(--border-color)}.pdf-viewer-scroll{flex:1;overflow-y:auto;padding:24px;background:var(--bg-tertiary)}.pdf-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--text-secondary)}.pdf-pages-container{display:flex;flex-direction:column;align-items:center;gap:24px}.pdf-page-wrapper{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;transition:box-shadow .3s}.pdf-page-wrapper.target-page{box-shadow:0 0 0 4px var(--primary-color),0 4px 12px #00000026}.pdf-page-number{padding:8px 16px;background:var(--bg-card);border-bottom:1px solid var(--border-color);font-size:.75rem;color:var(--text-muted);text-align:center}.pdf-page-loading{display:flex;align-items:center;justify-content:center;min-height:400px;min-width:300px}.pdf-page-error{display:flex;align-items:center;justify-content:center;min-height:200px;min-width:300px;color:var(--error-color);padding:24px}.pdf-page-image-container{position:relative;display:flex;justify-content:center}.pdf-page-image{max-width:100%;display:block}.pdf-highlight-box{position:absolute;border:3px solid var(--primary-color);background:#2563eb26;border-radius:4px;pointer-events:none;animation:highlight-pulse 2s ease-in-out infinite}@keyframes highlight-pulse{0%,to{box-shadow:0 0 #2563eb66}50%{box-shadow:0 0 0 8px #2563eb00}}.product-thumbnail{border-radius:4px;object-fit:cover;background:var(--bg-tertiary);flex-shrink:0}.product-thumbnail.thumbnail-small{width:32px;height:32px}.product-thumbnail.thumbnail-medium{width:48px;height:48px}.product-thumbnail.thumbnail-large{width:64px;height:64px}.product-thumbnail.loading{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--border-color) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.product-thumbnail.no-image{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-muted);font-size:.6rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.data-row.has-suggestions{border-bottom:none}.suggestion-row{background:var(--bg-tertiary);cursor:pointer;transition:background .15s}.suggestion-row:hover{background:#2563eb1a}.suggestion-row.suggestion-0{border-left:3px solid #3b82f6}.suggestion-row.suggestion-1{border-left:3px solid #8b5cf6}.suggestion-row.suggestion-2{border-left:3px solid #ec4899}.suggestion-badge{text-align:center}.suggestion-letter-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;font-weight:600;font-size:.75rem;color:#fff}.suggestion-0 .suggestion-letter-badge{background:#3b82f6}.suggestion-1 .suggestion-letter-badge{background:#8b5cf6}.suggestion-2 .suggestion-letter-badge{background:#ec4899}.col-data.ai-filled{background:#22c55e26;font-weight:500}.col-data.ai-filled .cell-value{color:var(--success-color)}.col-data.will-fill{background:#3b82f626;font-weight:500}.col-data.will-fill .cell-value{color:var(--primary-color)}.suggestion-product-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.suggestion-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.suggestion-details strong{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion-details .cat-num{font-size:.75rem;color:var(--text-muted)}.approve-suggestion-btn{padding:4px 12px;background:var(--success-color);color:#fff;border:none;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s}.approve-suggestion-btn:hover{background:#047857}.original-row-label{color:var(--text-muted);font-style:italic;font-size:.85rem}.fill-columns-section{width:100%;margin-top:12px;border-top:1px solid var(--border-color);padding-top:12px}.fill-columns-toggle{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;font-size:.875rem;color:var(--text-secondary);transition:all .2s}.fill-columns-toggle:hover{background:var(--bg-secondary);border-color:var(--primary-color);color:var(--primary-color)}.fill-columns-badge{background:var(--primary-color);color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:10px}.fill-columns-config{margin-top:12px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius)}.fill-columns-hint{font-size:.85rem;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.fill-columns-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.fill-column-item{padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--border-radius)}.fill-column-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.fill-column-header strong{font-size:.9rem;color:var(--text-primary)}.remove-column-btn{background:none;border:none;font-size:1.2rem;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1}.remove-column-btn:hover{color:var(--error-color)}.fill-column-description{width:100%;padding:8px;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;resize:vertical;font-family:inherit}.fill-column-description:focus{outline:none;border-color:var(--primary-color)}.fill-column-description::placeholder{color:var(--text-muted)}.add-fill-column{margin-bottom:16px}.add-column-select{width:100%;padding:10px 12px;border:1px dashed var(--border-color);border-radius:var(--border-radius);background:var(--bg-tertiary);font-size:.875rem;color:var(--text-secondary);cursor:pointer}.add-column-select:hover{border-color:var(--primary-color);background:var(--bg-secondary)}.fill-columns-actions{display:flex;gap:8px;justify-content:flex-end}.fill-columns-grid{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.fill-column-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fill-column-label{font-weight:500;font-size:.875rem;color:var(--text-primary);min-width:160px}.fill-column-select{flex:1;min-width:180px;max-width:300px;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:.875rem;background:var(--bg-primary)}.fill-column-select:focus{outline:none;border-color:var(--primary-color)}.fill-column-source{font-size:.8rem;color:var(--text-muted);font-style:italic}.jobs-page{max-width:1400px;margin:0 auto;padding:20px}.jobs-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.jobs-page .page-header h1{margin:0;font-size:1.75rem;color:var(--text-primary)}.jobs-table-container{background:var(--bg-card);border-radius:var(--border-radius);box-shadow:0 1px 3px #0000001a;overflow-x:auto}.jobs-table{width:100%;border-collapse:collapse;font-size:.875rem}.jobs-table th,.jobs-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.jobs-table th{background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);white-space:nowrap}.jobs-table tbody tr:hover{background:var(--bg-tertiary)}.jobs-table tbody tr.job-running{background:#2563eb0d}.jobs-table .project-link{color:var(--primary-color);text-decoration:none;font-weight:500}.jobs-table .project-link:hover{text-decoration:underline}.jobs-table .date-cell{white-space:nowrap;color:var(--text-muted);font-size:.8rem}.jobs-table .actions-cell{white-space:nowrap}.jobs-table .rows-info{font-family:monospace}.jobs-table .pending-count{color:var(--warning-color);font-size:.8rem}.progress-cell{display:flex;align-items:center;gap:8px}.progress-bar-mini{width:60px;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-bar-mini .progress-bar-fill{height:100%;background:var(--primary-color);transition:width .3s ease}.progress-text{font-size:.8rem;color:var(--text-secondary);min-width:40px}.status-cancelled{background-color:#fef3c7;color:#92400e}.error-tooltip{display:inline-block;margin-left:8px;padding:2px 6px;background:var(--error-color);color:#fff;font-size:.7rem;border-radius:4px;cursor:help}.btn-sm{padding:4px 12px;font-size:.8rem}.btn-danger{background-color:var(--error-color);color:#fff;border:none}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.jobs-info{margin-top:32px;padding:16px;background:var(--bg-tertiary);border-radius:var(--border-radius)}.jobs-info h3{margin:0 0 8px;font-size:1rem;color:var(--text-primary)}.jobs-info p{margin:0;font-size:.875rem;color:var(--text-secondary)}.empty-state{text-align:center;padding:48px 24px;background:var(--bg-card);border-radius:var(--border-radius);color:var(--text-secondary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:16px}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f8fafc;color:#1e293b;line-height:1.6}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}
