.cpq-container{max-width:1000px;margin:0 auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.quote-form-header{text-align:center;margin-bottom:2rem}.quote-form-title{font-size:2rem;font-weight:600;color:#1f2937;margin-bottom:.5rem}.quote-form-description{font-size:1.1rem;color:#6b7280;margin-bottom:0}.quote-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;gap:1rem}.form-group{display:flex;flex-direction:column;flex:1}.form-label{font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-input,.form-textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-input:focus,.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input-readonly{background-color:#f9fafb;color:#6b7280;cursor:not-allowed;border-color:#9ca3af}.form-input-readonly:focus{border-color:#9ca3af;box-shadow:none}.form-input-prefilled{background-color:#f0fdf4;border-color:#bbf7d0}.field-prefilled-indicator{font-size:.75rem;color:#059669;font-weight:500;margin-left:.5rem}.field-loading-indicator{font-size:.75rem;color:#2563eb;font-weight:500;margin-left:.5rem}.form-select{padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;background-color:#fff;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-select:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.form-checkbox,.form-radio{width:1rem;height:1rem;border:1px solid #d1d5db;border-radius:.25rem;background-color:#fff;cursor:pointer;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-radio{border-radius:50%}.form-checkbox:checked,.form-radio:checked{border-color:#3b82f6;background-color:#3b82f6}.form-checkbox:focus,.form-radio:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-number{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;width:60px!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-number:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.form-search{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;width:100%;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-search:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.data-loading-banner{background-color:#dbeafe;border:1px solid #93c5fd;color:#1e40af;padding:1rem;border-radius:6px;margin-top:1rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.data-error-banner{background-color:#fee2e2;border:1px solid #fca5a5;color:#dc2626;padding:1rem;border-radius:6px;margin-top:1rem;font-size:.875rem;font-weight:500}.loading-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.form-textarea{resize:vertical;min-height:100px}.form-help-text{color:#6b7280;font-size:.75rem;margin-top:.25rem}.form-actions{display:flex;justify-content:center;padding-top:1rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-lg{padding:1rem 2rem;font-size:1.1rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-loading{position:relative}.btn-loading:after{content:"";position:absolute;right:.75rem;width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-message{padding:1rem;border-radius:4px;margin-top:1rem;font-weight:500;white-space:pre-wrap;font-family:monospace;font-size:.875rem}.form-message-success{background-color:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.form-message-error{background-color:#fef2f2;color:#991b1b;border:1px solid #fecaca}.quote-form-debug{margin-top:2rem;padding:1rem;background-color:#f3f4f6;border-radius:4px;border:1px solid #d1d5db}.quote-form-debug h4{margin-top:0;margin-bottom:.5rem;color:#374151;font-size:.875rem}.quote-form-debug pre{font-size:.75rem;color:#6b7280;background-color:#fff;padding:.5rem;border-radius:4px;overflow-x:auto;margin:0}@media (max-width: 768px){.quote-form-container{padding:1rem}.form-row{flex-direction:column}.quote-form-title{font-size:1.5rem}.btn-lg{padding:.875rem 1.5rem;font-size:1rem}}.progress-container{margin-top:2rem;padding:1.5rem;background-color:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.progress-title{text-align:center;color:#1f2937;margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.progress-steps{display:flex;flex-direction:column;gap:1rem}.progress-step{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:6px;transition:all .3s ease}.progress-step.pending{background-color:#f1f5f9;color:#64748b}.progress-step.running{background-color:#dbeafe;color:#1d4ed8}.progress-step.completed{background-color:#dcfce7;color:#166534}.progress-step.failed{background-color:#fee2e2;color:#dc2626}.step-indicator{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.progress-step.pending .step-indicator{background-color:#e2e8f0;color:#64748b}.progress-step.running .step-indicator{background-color:#3b82f6;color:#fff}.progress-step.completed .step-indicator{background-color:#10b981;color:#fff}.progress-step.failed .step-indicator{background-color:#ef4444;color:#fff}.step-number{font-size:.875rem}.step-icon{font-size:1rem;font-weight:700}.step-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.step-content{flex:1}.step-name{font-weight:500;font-size:1rem;margin-bottom:.25rem}.step-status{font-size:.875rem;opacity:.8}@media print{.quote-form-debug,.progress-container{display:none}.quote-form-container{box-shadow:none;border:1px solid #d1d5db}}@media (max-width: 768px){.progress-container{padding:1rem}.progress-title{font-size:1.125rem}.step-indicator{width:28px;height:28px}.step-name{font-size:.875rem}}.cpq-product-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1rem;transition:border-color .2s ease,box-shadow .2s ease}.cpq-product-card:hover{border-color:#3b82f6;box-shadow:0 1px 3px #0000001a}.cpq-product-card--selected{border-color:#3b82f6;background-color:#eff6ff}.cpq-product-card--conflicted{border-color:#dc2626;background-color:#fef2f2}.cpq-product-card--mandatory{border-left:4px solid #dc2626}.cpq-product-card--recommended{border-left:4px solid #10b981}.cpq-product-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.cpq-product-title{margin:0;color:#111827;font-weight:700;font-size:1.125rem}.cpq-product-sku{font-size:.75rem;color:#6b7280;margin-top:.125rem}.cpq-product-price{font-weight:600;color:#1f2937}.cpq-product-description{margin:.5rem 0 0;font-size:.875rem;color:#4b5563;line-height:1.5}.cpq-product-meta{display:flex;gap:1rem;font-size:.875rem;color:#6b7280;margin-top:.5rem}.cpq-product-meta-item{display:flex;align-items:center;gap:.25rem}.cpq-product-tag{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;margin-left:.5rem}.cpq-product-tag--mandatory{background-color:#fee2e2;color:#dc2626}.cpq-product-tag--recommended{background-color:#dcfce7;color:#16a34a}.cpq-product-tag--optional{background-color:#e0f2fe;color:#0284c7}.cpq-product-tag--choice-group{background-color:#f3e8ff;color:#7c3aed}.cpq-quantity-control{display:flex;align-items:center;gap:.5rem}.cpq-quantity-label{font-weight:500;color:#374151;font-size:.875rem}.cpq-quantity-input{width:60px;padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;text-align:center;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.cpq-quantity-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.cpq-quantity-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.cpq-section{margin-bottom:2rem}.cpq-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb}.cpq-section-title{margin:0;color:#111827;font-size:1.5rem;font-weight:600}.cpq-section-subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.cpq-product-group{margin-bottom:1.5rem}.cpq-product-group-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.cpq-product-group-title--mandatory{color:#dc2626}.cpq-product-group-title--recommended{color:#059669}.cpq-summary{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-top:2rem}.cpq-summary-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#111827}.cpq-summary-line{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.cpq-summary-line--main{font-weight:600;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #e5e7eb}.cpq-summary-line--addon{padding-left:1.5rem;font-size:.875rem;color:#4b5563}.cpq-summary-line--total{font-size:1.25rem;font-weight:700;color:#111827;padding-top:1rem;margin-top:1rem;border-top:2px solid #e5e7eb}.cpq-warning-box{background-color:#fef3c7;border:1px solid #f59e0b;color:#92400e;padding:1rem;border-radius:6px;margin-bottom:1rem}.cpq-warning-title{font-weight:600;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.cpq-warning-list{margin:0;padding-left:1.5rem}.cpq-warning-note{font-size:.75rem;margin-top:.5rem;font-style:italic}.cpq-conflict-message{background-color:#fee2e2;color:#dc2626;padding:.75rem;border-radius:4px;margin-top:.5rem;font-size:.875rem;display:flex;align-items:flex-start;gap:.5rem}.cpq-conflict-icon{font-size:1rem;flex-shrink:0}.cpq-modal-search{margin-bottom:1.5rem}.cpq-modal-search-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.cpq-modal-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.cpq-modal-product-list{max-height:400px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px}.cpq-modal-product-item{padding:1rem;border-bottom:1px solid #e5e7eb;cursor:pointer;transition:background-color .2s ease}.cpq-modal-product-item:hover{background-color:#f9fafb}.cpq-modal-product-item:last-child{border-bottom:none}.cpq-modal-product-item--disabled{opacity:.5;cursor:not-allowed}.cpq-modal-product-item--disabled:hover{background-color:transparent}.cpq-loading{text-align:center;padding:2rem;color:#6b7280}.cpq-loading-spinner{display:inline-block;width:2rem;height:2rem;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:cpq-spin 1s linear infinite;margin-bottom:1rem}@keyframes cpq-spin{to{transform:rotate(360deg)}}.cpq-loading-text{font-size:1rem;margin-bottom:.25rem}.cpq-loading-subtext{font-size:.75rem;color:#9ca3af}.cpq-empty-state{text-align:center;padding:3rem 2rem}.cpq-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.cpq-empty-title{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:.5rem}.cpq-empty-description{color:#6b7280;margin-bottom:1.5rem}.cpq-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.cpq-btn-add-product{background-color:#10b981;color:#fff;padding:.5rem 1rem;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.cpq-btn-add-product:hover{background-color:#059669}.cpq-btn-configure{background-color:#3b82f6;color:#fff}.cpq-btn-configure:hover{background-color:#2563eb}@media (max-width: 768px){.cpq-product-card{padding:1rem}.cpq-product-header{flex-direction:column;align-items:flex-start}.cpq-quantity-control{width:100%;justify-content:space-between}.cpq-summary{padding:1rem}.cpq-actions{flex-direction:column}.cpq-section-header{flex-direction:column;align-items:flex-start}}
