:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#f9fafb;color:#111827}#root{width:100%;min-height:100vh}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f9fafb}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.equipment-library{width:100%;height:100%;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e5e7eb}.equipment-library.loading,.equipment-library.error{justify-content:center;align-items:center;padding:2rem}.equipment-library.error p{color:#dc2626;margin-bottom:1rem}.library-header{padding:1rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.library-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.refresh-btn{background:transparent;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;color:#6b7280;transition:color .2s}.refresh-btn:hover{color:#111827}.library-content{flex:1;overflow-y:auto;padding:.5rem}.category-section{margin-bottom:.5rem}.category-header{display:flex;align-items:center;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;cursor:pointer;transition:background-color .2s}.category-header:hover{background:#f3f4f6}.expand-icon{width:1rem;font-size:.75rem;margin-right:.5rem;color:#6b7280}.category-header h3{margin:0;font-size:.875rem;font-weight:600;color:#374151;flex:1}.item-count{font-size:.75rem;color:#9ca3af}.category-items{margin-top:.5rem;padding-left:.5rem}.equipment-item{display:flex;align-items:flex-start;padding:.75rem;margin-bottom:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;cursor:grab;transition:all .2s}.equipment-item:hover{border-color:#3b82f6;box-shadow:0 2px 4px #0000000d;transform:translateY(-1px)}.equipment-item:active{cursor:grabbing}.equipment-icon{font-size:1.5rem;margin-right:.75rem;opacity:.7}.equipment-thumbnail{width:48px;height:48px;object-fit:contain;margin-right:.75rem;border-radius:4px;background:#f9fafb}.equipment-info{flex:1;min-width:0}.equipment-name{font-size:.875rem;font-weight:500;color:#111827;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.equipment-code{font-size:.75rem;color:#6b7280;font-family:monospace;margin-bottom:.25rem}.equipment-price{font-size:.75rem;color:#059669;font-weight:600}.library-content::-webkit-scrollbar{width:6px}.library-content::-webkit-scrollbar-track{background:#f9fafb}.library-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.library-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.canvas-ruler{-webkit-user-select:none;user-select:none}.canvas-ruler text{font-family:system-ui,-apple-system,sans-serif}.canvas-ruler-corner{border-right:1px solid #d1d5db;border-bottom:1px solid #d1d5db}.canvas-ruler-horizontal{border-bottom:1px solid #d1d5db}.canvas-ruler-vertical{border-right:1px solid #d1d5db}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.boiler-check-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.boiler-check-dialog .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.boiler-check-dialog .dialog-header h3{margin:0;font-size:1.25rem;color:#1f2937}.boiler-check-dialog .dialog-content{padding:1.5rem;flex:1;overflow-y:auto}.boiler-check-dialog .info-box{background:#f3f4f6;border-left:4px solid #3b82f6;padding:1rem;margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.boiler-check-dialog .info-box.warning{background:#fef3c7;border-left-color:#f59e0b}.boiler-check-dialog .error-message{background:#fee2e2;border-left:4px solid #ef4444;color:#991b1b;padding:.75rem 1rem;margin-bottom:1rem;border-radius:4px;font-size:.9rem}.boiler-check-dialog .form-section{margin-bottom:1.5rem}.boiler-check-dialog .form-section h4{margin:0 0 1rem;font-size:1rem;color:#374151;border-bottom:2px solid #e5e7eb;padding-bottom:.5rem}.boiler-check-dialog .form-field{margin-bottom:1rem}.boiler-check-dialog .form-field label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.9rem}.boiler-check-dialog .form-field input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.95rem;transition:border-color .2s}.boiler-check-dialog .form-field input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.boiler-check-dialog .form-field .field-hint{display:block;margin-top:.25rem;font-size:.8rem;color:#6b7280}.boiler-check-dialog .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.boiler-check-dialog .required{color:#ef4444}.boiler-check-dialog .ceiling-check{padding:.75rem;border-radius:4px;font-size:.9rem;margin-top:.5rem}.boiler-check-dialog .ceiling-check.ok{background:#d1fae5;border:1px solid #10b981;color:#065f46}.boiler-check-dialog .ceiling-check.warning{background:#fee2e2;border:1px solid #ef4444;color:#991b1b}.boiler-check-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.boiler-check-dialog .btn-primary,.boiler-check-dialog .btn-secondary{padding:.5rem 1.5rem;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s;border:none;font-size:.95rem}.boiler-check-dialog .btn-primary{background:#3b82f6;color:#fff}.boiler-check-dialog .btn-primary:hover{background:#2563eb}.boiler-check-dialog .btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.boiler-check-dialog .btn-secondary:hover{background:#e5e7eb}.boiler-check-dialog .btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.boiler-check-dialog .btn-close:hover{background:#f3f4f6;color:#1f2937}.properties-panel{width:100%;height:100%;display:flex;flex-direction:column;background:#fff;border-left:1px solid #e5e7eb}.properties-panel.empty,.properties-panel.loading{justify-content:center;align-items:center;padding:2rem;color:#9ca3af}.panel-header{padding:1rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.panel-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.delete-btn{background:transparent;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;transition:transform .2s}.delete-btn:hover{transform:scale(1.1)}.panel-content{flex:1;overflow-y:auto;padding:1rem}.property-section{margin-bottom:1.5rem}.property-section h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.025em}.property-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.property-row:last-child{border-bottom:none}.property-row label{font-size:.875rem;color:#6b7280;font-weight:500;flex-shrink:0;margin-right:1rem}.property-row span{font-size:.875rem;color:#111827;text-align:right;word-break:break-word}.property-row .code{font-family:monospace;background:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem}.property-row .price{color:#059669;font-weight:600}.property-row .value-highlight{color:#2563eb;font-weight:600}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:#f9fafb}.panel-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.panel-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.elevation-value{cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .2s}.elevation-value:hover{background:#eff6ff;color:#1e40af}.elevation-input{width:100px;padding:4px 8px;border:2px solid #2563eb;border-radius:4px;font-size:.875rem;text-align:right}.elevation-input:focus{outline:none;border-color:#1d4ed8}.compact-bom-panel{display:flex;flex-direction:column;height:100%;background:#fff;border-left:1px solid #e0e0e0;overflow:hidden}.compact-bom-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:2px solid #e0e0e0;background:linear-gradient(to bottom,#f8f9fa,#fff)}.compact-bom-header h3{margin:0;font-size:1rem;font-weight:600;color:#2c3e50}.compact-bom-expand-btn{display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s}.compact-bom-expand-btn:hover{background:#2980b9}.compact-bom-expand-btn svg{width:14px;height:14px}.compact-bom-loading,.compact-bom-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center;color:#7f8c8d}.compact-bom-error{color:#e74c3c}.compact-bom-retry-btn{margin-top:1rem;padding:.5rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.compact-bom-retry-btn:hover{background:#2980b9}.compact-bom-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#95a5a6;flex:1}.compact-bom-empty svg{margin-bottom:1rem;opacity:.5}.compact-bom-empty p{margin:.5rem 0;font-size:1rem;font-weight:500;color:#7f8c8d}.compact-bom-empty small{font-size:.875rem;color:#95a5a6}.compact-bom-summary{padding:1rem;background:#f8f9fa;border-bottom:1px solid #e0e0e0}.summary-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.summary-row:last-child{margin-bottom:0}.summary-label{font-size:.875rem;color:#7f8c8d}.summary-value{font-size:.875rem;font-weight:600;color:#2c3e50}.summary-value.total-cost{font-size:1rem;color:#27ae60}.compact-bom-content{flex:1;overflow-y:auto;padding:.5rem}.bom-category-group{margin-bottom:.5rem;border:1px solid #e0e0e0;border-radius:4px;background:#fff;overflow:hidden}.bom-category-group:last-child{margin-bottom:0}.category-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:linear-gradient(to bottom,#f8f9fa,#f0f0f0);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.category-header:hover{background:linear-gradient(to bottom,#f0f0f0,#e8e8e8)}.expand-icon{font-size:.75rem;color:#7f8c8d;transition:transform .2s;flex-shrink:0}.category-name{font-size:.875rem;font-weight:600;color:#2c3e50;flex:1}.category-count{font-size:.75rem;color:#7f8c8d;flex-shrink:0}.category-cost{font-size:.875rem;font-weight:600;color:#27ae60;margin-left:.5rem;flex-shrink:0}.category-items{background:#fff}.bom-item{padding:.75rem;border-top:1px solid #f0f0f0;transition:background .15s}.bom-item:hover{background:#f8f9fa}.item-main{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem}.item-name{font-size:.875rem;font-weight:500;color:#2c3e50;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.item-quantity{font-size:.75rem;font-weight:600;color:#3498db;white-space:nowrap;flex-shrink:0}.item-footer{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.item-code{font-size:.75rem;color:#95a5a6;font-family:Courier New,monospace;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-price{font-size:.875rem;font-weight:600;color:#27ae60;white-space:nowrap;flex-shrink:0}.compact-bom-footer{padding:1rem;border-top:1px solid #e0e0e0;background:#f8f9fa}.compact-bom-full-btn{width:100%;padding:.75rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:600;transition:background .2s}.compact-bom-full-btn:hover{background:#2980b9}.compact-bom-content::-webkit-scrollbar{width:6px}.compact-bom-content::-webkit-scrollbar-track{background:#f0f0f0}.compact-bom-content::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:3px}.compact-bom-content::-webkit-scrollbar-thumb:hover{background:#95a5a6}.bom-generate-button{position:fixed;bottom:24px;right:24px;background:#2563eb;color:#fff;padding:12px 24px;border:none;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .2s;z-index:1000}.bom-generate-button:hover{background:#1d4ed8}.bom-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.bom-modal{background:#fff;border-radius:8px;box-shadow:0 25px 50px -12px #00000040;max-width:1200px;width:100%;max-height:90vh;display:flex;flex-direction:column}.bom-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e5e7eb}.bom-modal-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#111827}.bom-close-button{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;transition:color .2s}.bom-close-button:hover{color:#4b5563}.bom-modal-content{flex:1;overflow:auto;padding:24px}.bom-loading{display:flex;align-items:center;justify-content:center;padding:48px}.bom-spinner{width:48px;height:48px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:bom-spin 1s linear infinite}@keyframes bom-spin{to{transform:rotate(360deg)}}.bom-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:16px;margin-bottom:16px;color:#991b1b}.bom-empty{text-align:center;padding:48px;color:#6b7280}.bom-empty-icon{width:64px;height:64px;margin:0 auto 16px;color:#9ca3af}.bom-table{width:100%;border-collapse:collapse}.bom-table thead tr{background:#f9fafb;border-bottom:2px solid #e5e7eb}.bom-table th{padding:12px 16px;text-align:left;font-size:.75rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.05em}.bom-table th.text-right{text-align:right}.bom-table th.text-center{text-align:center}.bom-table tbody{background:#fff}.bom-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.bom-table tbody tr:hover{background:#f9fafb}.bom-table td{padding:12px 16px;font-size:.875rem;color:#111827}.bom-table td.text-right{text-align:right}.bom-table td.text-center{text-align:center}.bom-category-badge{display:inline-block;padding:4px 8px;font-size:.75rem;font-weight:500;border-radius:9999px;white-space:nowrap}.bom-category-equipment{background:#dbeafe;color:#1e40af}.bom-category-required{background:#e9d5ff;color:#6b21a8}.bom-category-pipe{background:#d1fae5;color:#065f46}.bom-category-fitting{background:#fef3c7;color:#92400e}.bom-category-insulation{background:#f3f4f6;color:#1f2937}.bom-table tfoot tr{background:#f9fafb;border-top:2px solid #d1d5db}.bom-table tfoot td{padding:16px;font-weight:600}.bom-total{font-size:1.125rem;font-weight:700;color:#2563eb}.bom-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px;border-top:1px solid #e5e7eb;background:#f9fafb}.bom-footer-left,.bom-footer-right{display:flex;align-items:center;gap:12px}.bom-button{padding:8px 16px;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent;display:flex;align-items:center;gap:6px}.bom-button-primary{color:#2563eb;background:#fff;border-color:#fff}.bom-button-primary:hover{background:#eff6ff}.bom-button-secondary{color:#374151;background:#fff;border-color:#d1d5db}.bom-button-secondary:hover{background:#f9fafb}.bom-button-export{color:#059669;background:#fff;border-color:#d1d5db}.bom-button-export:hover:not(:disabled){background:#ecfdf5;border-color:#059669}.bom-button:disabled{opacity:.5;cursor:not-allowed}.bom-add-item-section{margin-bottom:24px}.bom-add-item-button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#059669;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;font-size:.875rem;transition:background .2s}.bom-add-item-button:hover{background:#047857}.bom-add-item-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.bom-add-item-form h3{margin:0 0 16px;font-size:1rem;font-weight:600;color:#111827}.bom-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.bom-form-field{display:flex;flex-direction:column;gap:6px}.bom-form-field label{font-size:.875rem;font-weight:500;color:#374151}.bom-form-field input,.bom-form-field select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .2s}.bom-form-field input:focus,.bom-form-field select:focus{outline:none;border-color:#2563eb}.bom-form-total{display:flex;align-items:flex-end}.bom-calculated-total{padding:8px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;font-weight:600;color:#1e40af;font-size:.875rem;width:100%}.bom-form-actions{display:flex;gap:12px;justify-content:flex-end}.bom-manual-item{background:#fefce8!important}.bom-manual-item:hover{background:#fef9c3!important}.bom-delete-button{background:none;border:none;color:#dc2626;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.bom-delete-button:hover{background:#fee2e2;color:#991b1b}.bom-quantity-cell{position:relative}.bom-quantity-display{cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .2s;display:inline-block;min-width:50px}.bom-quantity-display:hover{background:#eff6ff;color:#1e40af}.bom-quantity-input{width:80px;padding:4px 8px;border:2px solid #2563eb;border-radius:4px;font-size:.875rem;text-align:right}.bom-quantity-input:focus{outline:none;border-color:#1d4ed8}.bom-confirm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:3000;padding:16px}.bom-confirm-dialog{background:#fff;border-radius:12px;padding:24px;max-width:500px;width:100%;box-shadow:0 25px 50px -12px #00000080}.bom-confirm-dialog h3{margin:0 0 16px;font-size:1.25rem;font-weight:700;color:#111827}.bom-confirm-dialog p{margin:0 0 12px;color:#374151;line-height:1.5}.bom-confirm-question{font-weight:600;color:#111827;margin-top:16px!important}.bom-removed-items-list{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin:16px 0;max-height:200px;overflow-y:auto}.bom-removed-item{color:#991b1b;font-size:.875rem;margin:4px 0}.bom-confirm-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.bom-button-danger{color:#fff;background:#dc2626;border-color:#dc2626}.bom-button-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.bom-search-field{position:relative}.bom-search-loading{color:#6b7280;font-size:.75rem;font-style:italic;margin-left:8px}.bom-search-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;max-height:300px;overflow-y:auto;z-index:1000;margin-top:4px}.bom-search-result{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background-color .2s}.bom-search-result:last-child{border-bottom:none}.bom-search-result:hover{background:#f9fafb}.bom-search-result-name{font-weight:500;color:#111827;margin-bottom:4px}.bom-search-result-details{font-size:.75rem;color:#6b7280}.save-project-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.save-project-dialog{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column}.save-project-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e5e7eb}.save-project-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#111827}.save-project-close-button{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;transition:color .2s}.save-project-close-button:hover{color:#4b5563}.save-project-content{flex:1;overflow:auto;padding:24px}.save-project-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:20px;color:#991b1b;font-size:.875rem}.save-project-form{display:flex;flex-direction:column;gap:20px}.save-project-field{display:flex;flex-direction:column;gap:8px}.save-project-field label{font-size:.875rem;font-weight:600;color:#374151}.save-project-field input,.save-project-field textarea,.save-project-field select{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .2s;font-family:inherit}.save-project-field input:focus,.save-project-field textarea:focus,.save-project-field select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.save-project-field input:disabled,.save-project-field textarea:disabled,.save-project-field select:disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.save-project-field textarea{resize:vertical;min-height:60px}.save-project-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb}.save-project-button{padding:10px 20px;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent;display:flex;align-items:center;gap:8px}.save-project-button-primary{color:#fff;background:#2563eb;border-color:#2563eb}.save-project-button-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.save-project-button-secondary{color:#374151;background:#fff;border-color:#d1d5db}.save-project-button-secondary:hover:not(:disabled){background:#f9fafb}.save-project-button:disabled{opacity:.6;cursor:not-allowed}.save-project-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:save-project-spin .6s linear infinite}@keyframes save-project-spin{to{transform:rotate(360deg)}}.load-project-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.load-project-dialog{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column}.load-project-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e5e7eb}.load-project-header h2{margin:0;font-size:1.5rem;font-weight:700;color:#111827}.load-project-close-button{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;transition:color .2s}.load-project-close-button:hover{color:#4b5563}.load-project-controls{display:flex;gap:12px;padding:16px 24px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.load-project-search{flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem}.load-project-search:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.load-project-filter{padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;background:#fff;cursor:pointer}.load-project-filter:focus{outline:none;border-color:#2563eb}.load-project-content{flex:1;overflow:auto;padding:16px 24px;min-height:300px}.load-project-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:16px}.load-project-spinner{width:48px;height:48px;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:load-project-spin .8s linear infinite}@keyframes load-project-spin{to{transform:rotate(360deg)}}.load-project-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:16px;margin-bottom:16px;color:#991b1b}.load-project-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:#6b7280}.load-project-empty svg{color:#9ca3af;margin-bottom:16px}.load-project-empty p{margin:4px 0}.load-project-empty-hint{font-size:.875rem;color:#9ca3af}.load-project-list{display:flex;flex-direction:column;gap:12px}.load-project-item{padding:16px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.load-project-item:hover{border-color:#bfdbfe;background:#eff6ff}.load-project-item-selected{border-color:#2563eb;background:#eff6ff}.load-project-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.load-project-item-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.load-project-status{padding:4px 10px;font-size:.75rem;font-weight:500;border-radius:9999px;text-transform:capitalize}.load-project-status-draft{background:#fef3c7;color:#92400e}.load-project-status-completed{background:#d1fae5;color:#065f46}.load-project-status-archived{background:#e5e7eb;color:#374151}.load-project-customer{display:flex;align-items:center;gap:6px;margin:8px 0;font-size:.875rem;color:#6b7280}.load-project-customer svg{color:#9ca3af}.load-project-description{margin:8px 0;font-size:.875rem;color:#6b7280;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.load-project-item-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.load-project-date{font-size:.75rem;color:#9ca3af}.load-project-delete-button{background:none;border:none;color:#dc2626;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.load-project-delete-button:hover{background:#fee2e2;color:#991b1b}.load-project-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb}.load-project-footer-info{font-size:.875rem;color:#6b7280}.load-project-footer-actions{display:flex;align-items:center;gap:12px}.load-project-button{padding:10px 20px;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent;display:flex;align-items:center;gap:8px}.load-project-button-primary{color:#fff;background:#2563eb;border-color:#2563eb}.load-project-button-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.load-project-button-secondary{color:#374151;background:#fff;border-color:#d1d5db}.load-project-button-secondary:hover:not(:disabled){background:#f9fafb}.load-project-button:disabled{opacity:.6;cursor:not-allowed}*{box-sizing:border-box}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:#f9fafb}.app-header{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;background:#fff;border-bottom:2px solid #e5e7eb;box-shadow:0 1px 3px #0000000d}.header-left a{text-decoration:none;color:inherit}.header-left h1{margin:0;font-size:1.25rem;font-weight:700;color:#111827}.header-center{display:flex;gap:.5rem;align-items:center}.tool-btn{padding:.5rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .2s;color:#374151;font-weight:500}.tool-btn:hover{background:#f9fafb;border-color:#9ca3af}.tool-btn:active{background:#f3f4f6;transform:translateY(1px)}.tool-btn.active{background:#f97316;color:#fff;border-color:#f97316}.tool-btn.active:hover{background:#ea580c;border-color:#ea580c}.wall-thickness-input{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem .75rem}.wall-thickness-input label{font-size:.875rem;font-weight:500;color:#374151;margin:0}.wall-thickness-input input{width:70px;padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.875rem;text-align:right}.wall-thickness-input input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f973161a}.wall-thickness-input .unit{font-size:.875rem;color:#6b7280}.divider{width:1px;height:24px;background:#e5e7eb;margin:0 .5rem}.header-right{display:flex;align-items:center;gap:.5rem}.header-right .status{padding:.375rem .75rem;background:#dbeafe;color:#1e40af;border-radius:.375rem;font-size:.875rem;font-weight:600}.header-right .status-badge{padding:.25rem .625rem;font-size:.75rem;font-weight:500;border-radius:9999px;text-transform:capitalize;background:#fef3c7;color:#92400e}.app-content{flex:1;display:grid;grid-template-columns:300px 1fr 300px;overflow:hidden}.left-panel,.right-panel{background:#fff;overflow:hidden}.canvas-area{background:#fafafa;overflow:hidden;position:relative}.app-footer{height:32px;display:flex;align-items:center;gap:1rem;padding:0 1rem;background:#fff;border-top:1px solid #e5e7eb;font-size:.75rem;color:#6b7280}.app-footer .separator{color:#d1d5db}.app-footer .zoom-control{cursor:pointer;padding:.25rem .5rem;border-radius:.25rem;transition:all .2s;-webkit-user-select:none;user-select:none}.app-footer .zoom-control:hover{background:#f3f4f6;color:#111827}.app-footer .zoom-control:active{background:#e5e7eb}@media(max-width:1280px){.app-content{grid-template-columns:250px 1fr 250px}}@media(max-width:1024px){.app-content{grid-template-columns:200px 1fr 200px}}@media(max-width:768px){.app-content{grid-template-columns:1fr}.left-panel,.right-panel{display:none}}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.375rem;padding:.3rem .625rem;border-radius:.375rem;border:1px solid #374151;background:transparent;color:#d1d5db;font-size:.875rem;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.user-menu-trigger:hover{color:#f9fafb;border-color:#6b7280;background:#ffffff12}.user-menu-pending-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;flex-shrink:0}.user-menu-username{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-caret{flex-shrink:0;opacity:.6;transition:transform .15s}.user-menu-caret.open{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:170px;background:#1f2937;border:1px solid #374151;border-radius:.5rem;box-shadow:0 8px 24px #00000059;padding:.25rem;z-index:100}.user-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border-radius:.375rem;border:none;background:transparent;color:#d1d5db;font-size:.875rem;text-decoration:none;cursor:pointer;transition:background .12s,color .12s;text-align:left}.user-menu-item:hover{background:#ffffff14;color:#f9fafb}.user-menu-item--logout{color:#9ca3af}.user-menu-item--logout:hover{color:#fca5a5;background:#ef44441a}.user-menu-divider{height:1px;background:#374151;margin:.25rem 0}.landing{min-height:100vh;display:flex;flex-direction:column;background:#f9fafb}.landing-header{position:sticky;top:0;z-index:10;background:#111827f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #1f2937;height:56px;display:flex;align-items:stretch;flex-shrink:0}.landing-header-inner{max-width:1280px;width:100%;margin:0 auto;padding:0 2.5rem;display:flex;align-items:center}.landing-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#f9fafb}.landing-logo-img{width:28px;height:28px}.landing-logo-text{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}.landing-header-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}.landing-auth-btn{padding:.375rem .875rem;border-radius:.375rem;border:1px solid #4b5563;background:transparent;color:#d1d5db;font-size:.875rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.landing-auth-btn:hover{background:#ffffff1a;color:#f9fafb;border-color:#6b7280}.landing-hero{background:linear-gradient(180deg,#fff7ed,#f9fafb);text-align:center;padding:4rem 2rem 3rem}.landing-hero-title{font-size:2.5rem;font-weight:800;letter-spacing:-.025em;color:#111827;max-width:600px;margin:0 auto;line-height:1.15}.landing-hero-subtitle{margin-top:1rem;font-size:1.125rem;color:#6b7280;max-width:480px;margin-left:auto;margin-right:auto}.landing-cards{max-width:1280px;margin:0 auto;padding:0 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem;width:100%}.landing-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem;border-radius:12px;text-decoration:none;color:#111827;position:relative;transition:transform .15s ease,box-shadow .15s ease}.landing-card:hover{transform:translateY(-2px)}.landing-card--primary{background:#fff;border:2px solid #f97316;box-shadow:0 0 0 3px #f973161a,0 4px 24px #f9731614}.landing-card--primary:hover{box-shadow:0 0 0 3px #f9731626,0 8px 32px #f973161f}.landing-card--secondary{background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000f}.landing-card--secondary:hover{box-shadow:0 4px 12px #00000014;border-color:#d1d5db}.landing-card--muted{background:#f9fafb;border:1px solid #e5e7eb}.landing-card--muted:hover{background:#f3f4f6;border-color:#d1d5db}.landing-card-badge{position:absolute;top:.75rem;right:.75rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;border-radius:9999px}.landing-card-badge--orange{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa}.landing-card-badge--gray{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}.landing-card-icon{font-size:2rem;margin-bottom:.75rem}.landing-card-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.landing-card-desc{font-size:.875rem;color:#6b7280;line-height:1.5;max-width:340px}.landing-card-cta{display:inline-block;margin-top:1.25rem;padding:.6rem 1.5rem;background:#f97316;color:#fff;border-radius:8px;font-size:.875rem;font-weight:600;transition:background .15s ease}.landing-card--primary:hover .landing-card-cta{background:#ea580c}.landing-card-link{margin-top:1rem;font-size:.875rem;font-weight:600;color:#f97316}.landing-coming-soon{border:1px dashed #d1d5db;border-radius:12px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1.5rem;background:#f9fafb;position:relative}.landing-coming-soon-badge{position:absolute;top:-.6rem;left:1.25rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.15rem .6rem;border-radius:9999px;background:#f3f4f6;color:#9ca3af;border:1px solid #e5e7eb}.landing-coming-soon-items{display:flex;flex-direction:column;gap:.75rem;width:100%}.landing-coming-soon-item{display:flex;align-items:center;gap:.875rem}.landing-coming-soon-icon{font-size:1.375rem;flex-shrink:0;opacity:.5}.landing-coming-soon-name{font-size:.9375rem;font-weight:600;color:#9ca3af;display:block}.landing-coming-soon-desc{font-size:.8125rem;color:#d1d5db;display:block;margin-top:.1rem}.landing-footer{margin-top:auto;background:#111827;color:#9ca3af;padding:1.5rem 2rem}.landing-footer-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:.5rem;font-size:.8rem}.landing-footer-logo{width:18px;height:18px;opacity:.5}@media(max-width:768px){.landing-hero{padding:3rem 1.5rem 2rem}.landing-hero-title{font-size:1.75rem}.landing-hero-subtitle{font-size:1rem}.landing-cards{padding:0 1rem 2rem}.landing-cards-row{grid-template-columns:1fr}}.admin-layout{display:flex;flex-direction:column;height:100vh;background:#f5f5f5}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#2c3e50;color:#fff;box-shadow:0 2px 4px #0000001a}.admin-header-left h1{margin:0;font-size:1.5rem;font-weight:600}.admin-header-right{display:flex;gap:1rem}.admin-home-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:.5rem;color:#94a3b8;text-decoration:none;transition:color .15s,background .15s}.admin-home-btn:hover{color:#f1f5f9;background:#ffffff1a}.admin-content{display:flex;flex:1;overflow:hidden}.admin-sidebar{width:200px;background:#34495e;padding:1rem 0;box-shadow:2px 0 4px #0000001a}.admin-nav{display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;color:#bdc3c7;text-decoration:none;transition:all .2s;border-left:3px solid transparent}.nav-item:hover{background:#ffffff0d;color:#ecf0f1}.nav-item.active{background:#3498db33;color:#fff;border-left-color:#3498db}.nav-icon{font-size:1.2rem}.nav-label{font-size:.95rem;font-weight:500}.admin-main{flex:1;overflow:auto;padding:2rem;background:#f5f5f5}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;border-left:4px solid;animation:slideIn .3s ease-out;min-width:300px}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{font-size:20px;font-weight:700;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-message{flex:1;font-size:14px;line-height:1.4;color:#111827}.toast-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;transition:color .2s}.toast-close:hover{color:#111827}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981;background:#d1fae5}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444;background:#fee2e2}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b;background:#fef3c7}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6;background:#dbeafe}@media(max-width:768px){.toast-container{top:70px;right:10px;left:10px;max-width:none}.toast{min-width:auto}}.equipment-form{display:flex;flex-direction:column;height:100%}.form-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #dee2e6;background:#f8f9fa}.form-header h3{margin:0;font-size:1.25rem;color:#2c3e50}.btn-close{background:transparent;border:none;font-size:1.5rem;color:#95a5a6;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:color .2s}.btn-close:hover{color:#2c3e50}.form-content{flex:1;overflow-y:auto;padding:1.5rem}.form-error{padding:.75rem;margin-bottom:1rem;background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;font-size:.9rem}.form-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #dee2e6}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section h4{margin:0 0 1rem;font-size:1.1rem;color:#2c3e50;font-weight:600}.form-section.collapsible h4{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:.5rem}.form-section.collapsible h4:hover{color:#3498db}.collapse-icon{display:inline-block;transition:transform .2s;font-size:.8rem}.collapse-icon.open{transform:rotate(90deg)}.section-content{animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.spec-group{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:4px}.spec-group:last-child{margin-bottom:0}.spec-group h5{margin:0 0 1rem;font-size:.95rem;color:#495057;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.form-field{margin-bottom:1rem}.form-field:last-child{margin-bottom:0}.form-field label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:500;color:#495057}.form-field label .required{color:#e74c3c;margin-left:2px}.form-field input[type=text],.form-field input[type=number],.form-field select{width:100%;padding:.6rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;transition:border-color .2s}.form-field input[type=text]:focus,.form-field input[type=number]:focus,.form-field select:focus{outline:none;border-color:#3498db}.form-field input:disabled{background:#e9ecef;cursor:not-allowed}.form-field input::placeholder{color:#adb5bd}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-row:last-child{margin-bottom:0}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label span{font-size:.9rem;color:#495057}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #dee2e6;background:#f8f9fa}@media(max-width:768px){.form-row{grid-template-columns:1fr}}.equipment-admin{display:flex;flex-direction:column;height:100%;gap:1rem}.admin-page-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:2px solid #ddd}.admin-page-header h2{margin:0;font-size:1.75rem;color:#2c3e50}.btn-primary{padding:.6rem 1.2rem;background:#3498db;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#2980b9}.btn-primary:disabled{background:#95a5a6;cursor:not-allowed}.btn-secondary{padding:.6rem 1.2rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#7f8c8d}.btn-secondary:disabled{background:#bdc3c7;cursor:not-allowed}.btn-icon{padding:.25rem .5rem;background:transparent;border:none;font-size:1rem;cursor:pointer;opacity:.7;transition:opacity .2s}.btn-icon:hover{opacity:1}.filters-bar{display:flex;gap:1rem;padding:1rem;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a}.search-input{flex:1;padding:.6rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem}.search-input:focus{outline:none;border-color:#3498db}.filter-select{padding:.6rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;min-width:200px;background:#fff}.filter-select:focus{outline:none;border-color:#3498db}.admin-content-area{display:flex;gap:1rem;flex:1;overflow:hidden}.data-grid-container{flex:1;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;overflow:auto}.data-grid{width:100%;border-collapse:collapse;font-size:.9rem}.data-grid thead{position:sticky;top:0;background:#f8f9fa;z-index:1}.data-grid th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6}.data-grid td{padding:.75rem 1rem;border-bottom:1px solid #dee2e6}.data-grid tbody tr{cursor:pointer;transition:background .2s}.data-grid tbody tr:hover{background:#f8f9fa}.data-grid tbody tr.selected{background:#e3f2fd}.data-grid tbody tr.selected:hover{background:#bbdefb}.data-grid td.code{font-family:Courier New,monospace;font-weight:600;color:#2c3e50}.data-grid td.actions{display:flex;gap:.5rem}.price-input{width:90px;padding:.25rem .4rem;border:1px solid #ddd;border-radius:3px;font-size:.9rem;text-align:right;background:#fafafa}.price-input:focus{outline:none;border-color:#3498db;background:#fff}.price-input:disabled{opacity:.5}.data-grid td.no-data{text-align:center;padding:2rem;color:#95a5a6;font-style:italic}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-badge.active{background:#d4edda;color:#155724}.status-badge.inactive{background:#f8d7da;color:#721c24}.status-badge.unconfirmed{background:#fff3cd;color:#856404;margin-left:.25rem}.loading,.error{padding:2rem;text-align:center}.error{color:#e74c3c}.side-panel{width:450px;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;overflow:hidden;display:flex;flex-direction:column}.unconfirmed-admin{display:flex;flex-direction:column;height:100%;gap:1rem}.unconfirmed-admin .admin-page-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:2px solid #ddd}.unconfirmed-admin .admin-page-header h2{margin:0;font-size:1.75rem;color:#2c3e50}.header-actions{display:flex;gap:.5rem;align-items:center}.btn-confirm-bulk{padding:.6rem 1.2rem;background:#27ae60;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-confirm-bulk:hover{background:#219a52}.btn-confirm-bulk:disabled{background:#95a5a6;cursor:not-allowed}.btn-confirm-single{padding:.25rem .5rem;background:#27ae60;color:#fff;border:none;border-radius:3px;font-size:.85rem;cursor:pointer;transition:background .2s}.btn-confirm-single:hover{background:#219a52}.btn-delete{padding:.25rem .5rem;background:#e74c3c;color:#fff;border:none;border-radius:3px;font-size:.85rem;cursor:pointer;transition:background .2s}.btn-delete:hover{background:#c0392b}.data-grid th.checkbox-col,.data-grid td.checkbox-col{width:40px;text-align:center;padding:.75rem .5rem}.data-grid td.checkbox-col input[type=checkbox],.data-grid th.checkbox-col input[type=checkbox]{width:16px;height:16px;cursor:pointer}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#95a5a6;text-align:center}.empty-state .empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state p{font-size:1.1rem;margin:0}.unconfirmed-form{display:flex;flex-direction:column;height:100%}.unconfirmed-form .form-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #dee2e6}.unconfirmed-form .form-header h3{margin:0;font-size:1.2rem;color:#2c3e50}.unconfirmed-form .form-content{flex:1;overflow-y:auto;padding:1.25rem}.unconfirmed-form .form-field{margin-bottom:1rem}.unconfirmed-form .form-field label{display:block;margin-bottom:.35rem;font-weight:600;font-size:.9rem;color:#495057}.unconfirmed-form .form-field input,.unconfirmed-form .form-field select{width:100%;padding:.5rem .75rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;box-sizing:border-box}.unconfirmed-form .form-field input:focus,.unconfirmed-form .form-field select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db26}.unconfirmed-form .form-field input:disabled{background:#e9ecef;color:#6c757d}.unconfirmed-form .form-actions{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid #dee2e6;justify-content:flex-end}.unconfirmed-form .form-error{padding:.75rem;background:#f8d7da;color:#721c24;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.connector-form{display:flex;flex-direction:column;height:100%}.equipment-search-container{position:relative}.equipment-dropdown{position:absolute;top:100%;left:0;right:0;max-height:300px;overflow-y:auto;background:#fff;border:1px solid #ced4da;border-top:none;border-radius:0 0 4px 4px;box-shadow:0 4px 6px #0000001a;z-index:1000}.equipment-option{padding:.75rem;cursor:pointer;transition:background .2s;border-bottom:1px solid #f0f0f0}.equipment-option:hover{background:#f8f9fa}.equipment-option:last-child{border-bottom:none}.option-name{font-weight:500;color:#2c3e50;margin-bottom:.25rem}.option-code{font-family:Courier New,monospace;font-size:.8rem;color:#7f8c8d}.option-hint{padding:.5rem;text-align:center;font-size:.8rem;color:#95a5a6;font-style:italic;background:#f8f9fa}.position-editor{display:flex;justify-content:center;margin-bottom:1rem}.position-canvas{border:1px solid #dee2e6;border-radius:4px;cursor:crosshair;background:#fafafa}.position-canvas:hover{border-color:#3498db}.connector-admin{display:flex;flex-direction:column;height:100%;gap:1rem}.connector-groups-container{flex:1;background:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;overflow:auto;padding:1rem}.connector-groups{display:flex;flex-direction:column;gap:.5rem}.connector-group{border:1px solid #dee2e6;border-radius:4px;overflow:hidden}.group-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8f9fa;cursor:pointer;transition:background .2s}.group-header:hover{background:#e9ecef}.expand-icon{font-size:.75rem;color:#666;transition:transform .2s;width:15px;text-align:center}.expand-icon.open{transform:rotate(90deg)}.group-info{display:flex;align-items:center;gap:.75rem;flex:1}.equipment-code{font-family:Courier New,monospace;color:#7f8c8d;font-size:.85rem;background:#ecf0f1;padding:.15rem .4rem;border-radius:3px}.connector-count{margin-left:auto;color:#95a5a6;font-size:.85rem}.group-connectors{padding:.5rem;background:#fff}.no-connectors{padding:1.5rem;text-align:center;color:#95a5a6;font-style:italic;font-size:.9rem}.connector-table{width:100%;border-collapse:collapse;font-size:.85rem}.connector-table th{padding:.5rem;text-align:left;font-weight:600;color:#495057;background:#f8f9fa;border-bottom:2px solid #dee2e6}.connector-table td{padding:.5rem;border-bottom:1px solid #dee2e6}.connector-table tbody tr{cursor:pointer;transition:background .2s}.connector-table tbody tr:hover{background:#f8f9fa}.connector-table tbody tr.selected{background:#e3f2fd}.connector-table tbody tr.selected:hover{background:#bbdefb}.connector-id{font-family:Courier New,monospace;font-weight:600;color:#2c3e50}.connector-type{display:inline-flex;align-items:center;gap:.25rem;text-transform:capitalize}.position-cell{font-family:Courier New,monospace;font-size:.8rem;color:#666}.connector-table td.actions{display:flex;gap:.25rem}.compatibility-form{display:flex;flex-direction:column;height:100%}.relationship-arrow{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem 0;color:#7f8c8d}.relationship-arrow span:first-child{font-size:1.5rem}.arrow-label{font-size:.85rem;font-style:italic;color:#95a5a6}.option-category{font-size:.75rem;color:#95a5a6;margin-top:.15rem}.compatibility-admin{display:flex;flex-direction:column;height:100%;gap:1rem}.equipment-cell{display:flex;flex-direction:column;gap:.25rem}.equipment-name{font-weight:500;color:#2c3e50}.equipment-code{font-family:Courier New,monospace;font-size:.8rem;color:#7f8c8d}.category-badge{display:inline-block;padding:.25rem .75rem;background:#e3f2fd;color:#1976d2;border-radius:12px;font-size:.85rem;font-weight:500}.required-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.required-badge.required{background:#fff3cd;color:#856404}.required-badge.optional{background:#e9ecef;color:#6c757d}.quantity-range{font-family:Courier New,monospace;color:#495057;font-weight:500}.info-banner{margin-bottom:1rem;padding:.75rem 1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.9rem}.builder-admin{display:flex;flex-direction:column;height:100%;gap:1rem}.builder-overlay{position:fixed;inset:0;z-index:1000;background:#0006;display:flex;justify-content:center;align-items:flex-start;padding:2rem;overflow-y:auto}.builder-detail-panel{width:100%;max-width:900px;background:#fff;border-radius:8px;box-shadow:0 8px 32px #0003;overflow-y:auto;max-height:calc(100vh - 4rem);padding:1.5rem}.detail-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:2px solid #ddd;margin-bottom:.75rem}.detail-header h3{margin:0;font-size:1.3rem;color:#2c3e50}.detail-description{color:#7f8c8d;margin:0 0 1rem;font-size:.9rem}.edit-builder-name{font-size:1.3rem;font-weight:700;color:#2c3e50;border:1px solid #3498db;border-radius:4px;padding:.15rem .4rem;outline:none;width:100%}.edit-builder-description{color:#7f8c8d;font-size:.9rem;border:1px solid #3498db;border-radius:4px;padding:.25rem .4rem;outline:none;width:100%;margin-bottom:1rem}.detail-section{margin-bottom:1.5rem}.detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.detail-section-header h4{margin:0;font-size:1.05rem;color:#2c3e50}.set-card{border:1px solid #dee2e6;border-radius:4px;margin-bottom:.5rem;overflow:hidden}.set-card-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:#f8f9fa;cursor:pointer;transition:background .2s}.set-card-header:hover{background:#e9ecef}.set-card-title{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.set-expand{font-size:.7rem;color:#7f8c8d;width:12px}.set-number{font-weight:700;color:#2c3e50}.set-name{font-weight:500}.set-card-actions{display:flex;gap:.25rem;flex-shrink:0}.mode-badge{display:inline-block;padding:.1rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.mode-pick{background:#e3f2fd;color:#1565c0}.mode-all{background:#e8f5e9;color:#2e7d32}.status-badge.optional{background:#fff3cd;color:#856404;font-size:.75rem;padding:.1rem .5rem}.group-badge{display:inline-block;padding:.1rem .5rem;border-radius:10px;font-size:.7rem;background:#f3e5f5;color:#7b1fa2;font-weight:500}.set-card-options{border-top:1px solid #dee2e6;padding:.5rem}.options-table{width:100%;border-collapse:collapse;font-size:.85rem}.options-table th{padding:.4rem .5rem;text-align:left;font-weight:600;color:#495057;border-bottom:1px solid #dee2e6;font-size:.8rem}.options-table td{padding:.4rem .5rem;border-bottom:1px solid #f0f0f0}.options-table td.code{font-family:Courier New,monospace;font-weight:600;color:#2c3e50}.options-table td.actions{display:flex;gap:.25rem}.options-table td.no-data{text-align:center;padding:1rem;color:#95a5a6;font-style:italic}.options-table .editing-row td{background:#fffde7}.options-table .editing-row input{width:100%;padding:.25rem .4rem;border:1px solid #ddd;border-radius:3px;font-size:.85rem}.inline-form{padding:.75rem;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:.5rem}.inline-form-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.inline-form-row input,.inline-form-row select{flex:1;padding:.4rem .5rem;border:1px solid #ddd;border-radius:3px;font-size:.85rem}.inline-form-row input:focus,.inline-form-row select:focus{outline:none;border-color:#3498db}.inline-form-actions{display:flex;gap:.5rem;justify-content:flex-end}.checkbox-label{display:flex;align-items:center;gap:.3rem;font-size:.85rem;white-space:nowrap;cursor:pointer}.btn-small{padding:.3rem .7rem;font-size:.8rem;border:1px solid #ddd;border-radius:3px;background:#fff;cursor:pointer;transition:background .2s;white-space:nowrap}.btn-small:hover{background:#f0f0f0}.btn-small.btn-primary{background:#3498db;color:#fff;border-color:#3498db}.btn-small.btn-primary:hover{background:#2980b9}.btn-small.btn-secondary{background:#95a5a6;color:#fff;border-color:#95a5a6}.btn-small.btn-secondary:hover{background:#7f8c8d}.btn-add-option{margin-top:.5rem;width:100%;text-align:center;color:#3498db;border-color:#bee5eb;background:#f0f9ff}.btn-add-option:hover{background:#e1f3fd}.rules-list{display:flex;flex-direction:column;gap:.4rem}.rule-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;font-size:.85rem}.rule-source,.rule-target{font-weight:500}.rule-type{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:10px;white-space:nowrap}.rule-requires{background:#d4edda;color:#155724}.rule-excludes{background:#f8d7da;color:#721c24}.no-data-text{color:#95a5a6;font-style:italic;font-size:.9rem;padding:.5rem 0;margin:0}.create-form{padding:1rem}.create-form .form-field{margin-bottom:1rem}.create-form .form-field label{display:block;margin-bottom:.3rem;font-weight:500;font-size:.9rem;color:#2c3e50}.create-form .form-field input,.create-form .form-field textarea{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;box-sizing:border-box}.create-form .form-field input:focus,.create-form .form-field textarea:focus{outline:none;border-color:#3498db}.create-form .form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.option-row{cursor:pointer;transition:background .15s,opacity .15s}.option-row:hover{background:#f8f9fa}.option-row.option-expanded{background:#f0f4ff}.option-row.dragging{opacity:.4}.option-row.drag-over{border-top:2px solid #3498db}.drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;color:#adb5bd;font-size:1.1rem;width:30px;text-align:center;letter-spacing:1px}.drag-handle:active{cursor:grabbing}.option-row:hover .drag-handle{color:#6c757d}.option-expand{font-size:.6rem;color:#7f8c8d;margin-right:.4rem}.item-count-badge{display:inline-block;margin-left:.4rem;padding:0 .4rem;border-radius:10px;font-size:.7rem;font-weight:600;background:#e3f2fd;color:#1565c0;min-width:18px;text-align:center}.items-row>td{padding:0!important;border-bottom:none!important}.items-container{margin:0 0 0 1.5rem;padding:.5rem;background:#f8fafb;border-left:3px solid #3498db}.items-table{width:100%;border-collapse:collapse;font-size:.8rem}.items-table th{padding:.3rem .4rem;text-align:left;font-weight:600;color:#495057;border-bottom:1px solid #dee2e6;font-size:.75rem}.items-table td{padding:.3rem .4rem;border-bottom:1px solid #f0f0f0}.items-table td.actions{display:flex;gap:.2rem}.items-table td.no-data{text-align:center;padding:.75rem;color:#95a5a6;font-style:italic}.items-table .editing-row td{background:#fffde7}.items-table .editing-row input,.items-table .editing-row select{padding:.2rem .3rem;border:1px solid #ddd;border-radius:3px;font-size:.8rem}.items-table .code{font-family:Courier New,monospace;font-weight:600;color:#2c3e50;font-size:.75rem}.btn-add-item{margin-top:.4rem;width:100%;text-align:center;color:#27ae60;border-color:#c3e6cb;background:#f0fff4}.btn-add-item:hover{background:#e1ffe8}.ean-search-wrapper{position:relative;flex:1}.ean-search-wrapper input{width:100%}.ean-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 8px #0000001a}.ean-dropdown-item{padding:.4rem .5rem;cursor:pointer;font-size:.8rem;border-bottom:1px solid #f0f0f0}.ean-dropdown-item:hover{background:#e3f2fd}.ean-dropdown-item .code{font-family:Courier New,monospace;font-weight:600;color:#2c3e50;margin-right:.3rem}.group-row{background:#f0f4f8}.group-row td{padding-top:.75rem;padding-bottom:.75rem}.group-count{font-size:.8125rem;color:#6b7280}.builder-indent{cursor:pointer}.builder-indent:hover{background:#f9fafb}.group-settings-panel{padding:1rem 1.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin:.5rem 0}.group-settings-panel h4{margin:0 0 .75rem;font-size:.875rem;color:#334155}.settings-section-title{margin:0 0 .625rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;border-bottom:1px solid #e5e7eb;padding-bottom:.375rem}.settings-field{margin-bottom:.75rem}.settings-field>label{display:block;font-size:.8125rem;font-weight:600;color:#475569;margin-bottom:.375rem}.litres-option-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.375rem}.litres-option-row input[type=number],.litres-option-row input[type=text]{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.8125rem}.litres-option-row input[type=radio]{cursor:pointer;accent-color:#3b82f6}.settings-actions{display:flex;gap:.5rem;margin-top:.75rem}.btn-small{font-size:.75rem;padding:.25rem .5rem;border:1px dashed #94a3b8;border-radius:.25rem;background:transparent;color:#475569;cursor:pointer;margin-top:.25rem}.btn-small:hover{border-color:#64748b;color:#1e293b}.wizard-stepper{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 1.5rem;overflow-x:auto}.stepper-track{display:flex;align-items:flex-start;justify-content:center;min-width:max-content;gap:0}.stepper-item{display:flex;flex-direction:column;align-items:center;position:relative;min-width:80px;flex:1;max-width:140px}.stepper-line{position:absolute;top:14px;right:50%;width:100%;height:2px;background:#d1d5db;z-index:0}.stepper-line.completed{background:#22c55e}.stepper-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;border:2px solid #d1d5db;background:#fff;color:#9ca3af;cursor:default;position:relative;z-index:1;transition:all .2s}.stepper-item.completed .stepper-dot{background:#22c55e;border-color:#22c55e;color:#fff;cursor:pointer}.stepper-item.completed .stepper-dot:hover{background:#16a34a;border-color:#16a34a}.stepper-item.current .stepper-dot{background:#f97316;border-color:#f97316;color:#fff;box-shadow:0 0 0 3px #f9731633}.stepper-label{margin-top:.375rem;font-size:.6875rem;color:#9ca3af;text-align:center;line-height:1.2;max-width:100px;word-wrap:break-word}.stepper-item.completed .stepper-label{color:#22c55e;font-weight:500}.stepper-item.current .stepper-label{color:#f97316;font-weight:600}.step-header{margin-bottom:1.5rem}.step-header h2{margin:0 0 .375rem;font-size:1.25rem;font-weight:700;color:#111827}.step-header p{margin:0;font-size:.875rem;color:#6b7280}.option-card{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;transition:all .15s}.option-card:hover{border-color:#fdba74;background:#fff7ed}.option-card.selected{border-color:#f97316;background:#fff7ed;box-shadow:0 0 0 3px #f9731626}.option-card.recommended{border-color:#86efac;background:#f0fdf4}.option-card.recommended.selected{border-color:#f97316;background:#fff7ed}.option-card.recommended:hover{border-color:#4ade80;background:#f0fdf4}.recommended-badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#166534;background:#dcfce7;border-radius:1rem;vertical-align:middle}.option-card .radio-indicator{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.option-card.selected .radio-indicator{border-color:#f97316}.option-card.selected .radio-indicator:after{content:"";width:10px;height:10px;border-radius:50%;background:#f97316}.option-card .option-thumbs,.all-info-item .option-thumbs{display:flex;gap:2px;flex-shrink:0;min-width:90px;justify-content:center}.option-thumb-wrapper{position:relative;width:44px;height:44px;flex-shrink:0}.option-card .option-thumb,.all-info-item .option-thumb{width:44px;height:44px;object-fit:contain;flex-shrink:0;border-radius:4px}.dhw-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.step-multi-pick{display:flex;flex-direction:column;gap:2rem}.multi-pick-section-header{margin-bottom:1rem}.multi-pick-section-header h3{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0 0 .25rem}.multi-pick-section-header p{color:#64748b;font-size:.9rem;margin:0}.option-card .option-info{flex:1;min-width:0}.option-card .option-name{font-size:.9375rem;font-weight:600;color:#111827}.option-card .option-description{font-size:.8125rem;color:#6b7280;margin-top:.125rem}.option-card .quote-badge{padding:.25rem .5rem;background:#f3f4f6;color:#6b7280;font-size:.75rem;font-weight:500;border-radius:.25rem;white-space:nowrap;flex-shrink:0}.option-card.selected .quote-badge{background:#fed7aa;color:#9a3412}.option-card .option-price-wrapper{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;gap:.1rem}.option-card .option-price{font-size:.9375rem;font-weight:600;color:#374151;white-space:nowrap}.option-card.selected .option-price{color:#9a3412}.option-card .montage-badge{font-size:.6875rem;color:#6b7280;white-space:nowrap}.option-card.selected .montage-badge{color:#b45309}.branch-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.branch-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.5rem;background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;transition:all .15s;text-align:center}.branch-card:hover{border-color:#fdba74;background:#fff7ed}.branch-card.selected{border-color:#f97316;background:#fff7ed;box-shadow:0 0 0 3px #f9731626}.branch-card .branch-icon{font-size:2.5rem;line-height:1}.branch-card .branch-icon-img{width:64px;height:64px;object-fit:contain}.branch-card .branch-name{font-size:1.125rem;font-weight:700;color:#111827}.branch-card .branch-description{font-size:.8125rem;color:#6b7280;line-height:1.4}.all-info-list{display:flex;flex-direction:column;gap:.5rem}.all-info-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem}.all-info-item .check-icon{width:22px;height:22px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.all-info-item .item-name{flex:1;font-size:.9375rem;font-weight:500;color:#111827}.all-info-item .quote-badge{padding:.25rem .5rem;background:#f3f4f6;color:#6b7280;font-size:.75rem;font-weight:500;border-radius:.25rem;white-space:nowrap}.all-info-item .option-price-wrapper{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;gap:.1rem}.all-info-item .option-price{font-size:.9375rem;font-weight:600;color:#374151;white-space:nowrap}.all-info-item .montage-badge{font-size:.6875rem;color:#6b7280;white-space:nowrap}.skip-toggle{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fefce8;border:1px solid #fde68a;border-radius:.5rem;margin-bottom:1rem}.skip-toggle label{font-size:.875rem;font-weight:500;color:#92400e;cursor:pointer;-webkit-user-select:none;user-select:none}.skip-toggle input[type=checkbox]{width:18px;height:18px;accent-color:#f97316;cursor:pointer}.options-disabled{opacity:.4;pointer-events:none}.option-list{display:flex;flex-direction:column;gap:.5rem}.option-card.suggested{border-color:#86efac;background:#f0fdf4}.option-card.suggested:hover{border-color:#4ade80;background:#ecfdf5}.option-card.suggested.selected{border-color:#f97316;background:#fff7ed}.suggestion-hint{font-size:.75rem;color:#16a34a;font-weight:500;margin-top:.125rem}@media(max-width:640px){.branch-cards{grid-template-columns:1fr}}.wz-card{position:relative;padding:1rem 1.25rem;border-radius:.625rem;margin-top:1.25rem;overflow:hidden;border:1px solid #e5e7eb}.wz-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:.625rem 0 0 .625rem}.wz-card-header{display:flex;align-items:center;gap:.625rem;margin-bottom:.75rem}.wz-card-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8125rem;font-weight:800;line-height:1}.wz-card-title{font-size:.8125rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.wz-card-message{font-size:.875rem;line-height:1.5;color:#374151}.wz-card-details{margin-top:.5rem;font-size:.8125rem;color:#6b7280;line-height:1.45}.wz-card--info{background:#f8fafc;border-color:#e2e8f0}.wz-card--info:before{background:#475569}.wz-card--info .wz-card-icon{background:#475569;color:#fff}.wz-card--info .wz-card-title{color:#334155}.wz-card--recommend{background:#fffbf5;border-color:#fed7aa}.wz-card--recommend:before{background:#f97316}.wz-card--recommend .wz-card-icon{background:#f97316;color:#fff}.wz-card--recommend .wz-card-title{color:#9a3412}.wz-card--recommend .wz-card-highlight{font-weight:800;color:#c2410c;font-size:1.125rem}.wz-card--tip{background:#f0fdfa;border-color:#ccfbf1}.wz-card--tip:before{background:#0d9488}.wz-card--tip .wz-card-icon{background:#0d9488;color:#fff}.wz-card--tip .wz-card-title{color:#115e59}.wz-card--warning{background:#fffbeb;border-color:#fde68a}.wz-card--warning:before{background:#d97706}.wz-card--warning .wz-card-icon{background:#d97706;color:#fff}.wz-card--warning .wz-card-title{color:#92400e}.wz-dims{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem 1rem;margin-top:.625rem}.wz-dim-item{display:flex;flex-direction:column;padding:.5rem .625rem;background:#00000008;border-radius:.375rem}.wz-dim-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af;margin-bottom:.125rem}.wz-dim-value{font-size:.9375rem;font-weight:700;color:#111827;font-variant-numeric:tabular-nums}.wz-dim-unit{font-size:.75rem;font-weight:500;color:#6b7280;margin-left:.125rem}.wz-specs{display:flex;flex-wrap:wrap;gap:.375rem 1rem;margin-top:.5rem}.wz-spec-item{display:flex;align-items:baseline;gap:.375rem;font-size:.8125rem}.wz-spec-label{color:#6b7280}.wz-spec-value{font-weight:600;color:#111827}.wz-occupant-input{display:inline-flex;align-items:center;gap:.5rem;margin-top:.625rem}.wz-occupant-input label{font-size:.8125rem;font-weight:600;color:#374151}.wz-occupant-input input{width:64px;padding:.375rem .5rem;font-size:.9375rem;font-weight:700;text-align:center;border:2px solid #e5e7eb;border-radius:.375rem;color:#111827;transition:border-color .15s;font-family:inherit;-moz-appearance:textfield}.wz-occupant-input input::-webkit-outer-spin-button,.wz-occupant-input input::-webkit-inner-spin-button{-webkit-appearance:none}.wz-occupant-input input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 3px #f973161f}.wz-litres-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.625rem}.wz-litres-option{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:#374151;cursor:pointer}.wz-litres-option input[type=radio]{accent-color:#f97316;cursor:pointer}@media(max-width:480px){.wz-dims{grid-template-columns:repeat(2,1fr)}}.bom-explorer{background:#fff;border-radius:.5rem;overflow:hidden}.bom-explorer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 3.5rem 1rem 1.25rem;background:#f9fafb;border-bottom:1px solid #e5e7eb}.bom-explorer-header h3{margin:0;font-size:1rem;font-weight:700;color:#111827}.bom-explorer-stats{display:flex;gap:1.25rem}.bom-stat{font-size:.8125rem;color:#6b7280}.bom-stat strong{color:#111827;font-weight:700;font-size:.9375rem}.bom-explorer-filters{display:flex;align-items:flex-end;gap:1rem;padding:.875rem 1.25rem;border-bottom:1px solid #f3f4f6;flex-wrap:wrap}.bom-filter{display:flex;flex-direction:column;gap:.25rem}.bom-filter label{font-size:.6875rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.bom-filter select{padding:.375rem .625rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#111827;cursor:pointer;min-width:160px;transition:border-color .15s}.bom-filter select:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731626}.bom-filter-clear{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .15s;align-self:flex-end}.bom-filter-clear:hover{background:#f3f4f6;color:#374151}.bom-explorer-table{width:100%;border-collapse:collapse;font-size:.8125rem}.bom-explorer-table th{text-align:left;padding:.5rem .625rem;background:#f9fafb;color:#6b7280;font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid #e5e7eb;white-space:nowrap;-webkit-user-select:none;user-select:none}.bom-explorer-table th.sortable{cursor:pointer;transition:color .15s}.bom-explorer-table th.sortable:hover{color:#f97316}.bom-explorer-table th.col-right,.bom-explorer-table td.col-right{text-align:right}.bom-explorer-table td{padding:.5rem .625rem;border-bottom:1px solid #f3f4f6;color:#374151}.bom-explorer-table tbody tr:hover{background:#fefce8}.bom-explorer-table .ean-cell{font-family:monospace;font-size:.75rem;color:#6b7280;white-space:nowrap}.bom-explorer-table .article-code-cell{font-family:monospace;font-size:.75rem;color:#374151;font-weight:500;white-space:nowrap}.bom-explorer-table .manufacturer-cell,.bom-explorer-table .category-cell{color:#6b7280;white-space:nowrap}.bom-explorer-table .sets-cell{display:flex;gap:.25rem;flex-wrap:wrap}.set-tag{display:inline-block;padding:.0625rem .375rem;font-size:.6875rem;font-weight:600;color:#6b7280;background:#f3f4f6;border-radius:.25rem;white-space:nowrap}.bom-explorer-table .empty-row{text-align:center;color:#9ca3af;font-style:italic;padding:2rem}.summary-page .step-header{margin-bottom:1rem}.summary-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.toolbar-spacer{flex:1}.summary-toolbar-btn{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .15s}.summary-toolbar-btn:hover{background:#f3f4f6;color:#374151}.summary-set-row{display:flex;align-items:stretch}.summary-set-row .summary-set-header{flex:1}.set-exclude-btn{padding:0 .75rem;font-size:.78rem;font-weight:500;color:#9ca3af;background:none;border:none;border-left:1px solid #e5e7eb;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s}.set-exclude-btn:hover{color:#ef4444;background:#fef2f2}.set-exclude-btn--excluded{color:#6b7280;background:#f9fafb}.set-exclude-btn--excluded:hover{color:#16a34a;background:#f0fdf4}.bom-save-row{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.75rem;margin-bottom:1rem;padding:.6rem 1rem;border-radius:6px;border:1px solid #f59e0b;background:#fff8e1;box-shadow:0 4px 16px #f59e0b40;position:sticky;bottom:1rem}.bom-unsaved-indicator{margin-right:auto;font-size:.85rem;font-weight:600;color:#b45309}.bom-unsaved-indicator:before{content:"● "}.bom-save-btn{padding:.5rem 1.5rem!important;font-size:.9rem!important}.bom-save-btn--dirty{background:#f59e0b!important;color:#fff!important}.bom-save-btn--dirty:hover:not(:disabled){background:#d97706!important}.bom-save-error{font-size:.85rem;color:#e53e3e}.summary-sets{display:flex;flex-direction:column;gap:.5rem}.summary-set{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.summary-set.skipped{opacity:.55}.summary-set-header{display:flex;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.summary-set-header:hover{background:#f9fafb}.set-chevron{font-size:.625rem;color:#9ca3af;transition:transform .15s;flex-shrink:0;width:12px;text-align:center}.set-chevron.open{transform:rotate(90deg)}.set-number{font-size:.75rem;font-weight:600;color:#9ca3af;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.set-name{font-size:.9375rem;font-weight:600;color:#111827;flex:1;min-width:0}.set-badge{font-size:.8125rem;color:#6b7280;white-space:nowrap;flex-shrink:0;padding:.125rem .5rem;background:#f3f4f6;border-radius:.25rem}.summary-set.skipped .set-badge{background:#fef3c7;color:#92400e}.set-price{font-size:.875rem;font-weight:700;color:#111827;white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:.75rem}.set-price-note{font-size:.75rem;font-weight:400;color:#9ca3af}.summary-grand-total{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding:1rem 1.25rem;background:#111827;border-radius:.5rem;color:#fff}.grand-total-label{font-size:1rem;font-weight:600}.grand-total-amount{font-size:1.25rem;font-weight:800}.price-breakdown{margin-top:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.price-breakdown-row{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1.25rem;border-bottom:1px solid #f3f4f6}.price-breakdown-row:first-child{background:#f9fafb;padding:.5rem 1.25rem;border-bottom:2px solid #e5e7eb}.price-breakdown-row:first-child .pb-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.pb-label{font-size:.9375rem;color:#374151}.pb-amount{font-size:.9375rem;font-weight:600;color:#111827;font-variant-numeric:tabular-nums}.price-breakdown-row.pb-discount .pb-label,.price-breakdown-row.pb-discount .pb-amount{color:#16a34a}.price-breakdown-row.pb-subtotal{border-top:1px solid #e5e7eb;background:#f9fafb}.price-breakdown-row.pb-subtotal .pb-amount{font-weight:700}.price-breakdown-row.pb-vat .pb-label,.price-breakdown-row.pb-vat .pb-amount{color:#6b7280;font-size:.875rem}.price-breakdown-row.pb-total{background:#111827;border-bottom:none}.price-breakdown-row.pb-total .pb-label{color:#f9fafb;font-weight:700;font-size:1rem}.price-breakdown-row.pb-total .pb-amount{color:#fff;font-size:1.125rem;font-weight:800}.price-breakdown-row.pb-nabavna{background:#f0fdf4;border-top:1px solid #dcfce7;flex-wrap:wrap;gap:.5rem}.pb-reveal-btn{background:none;border:1px solid #16a34a;color:#16a34a;border-radius:4px;padding:.2rem .75rem;font-size:.8rem;cursor:pointer;white-space:nowrap}.pb-reveal-btn:hover{background:#dcfce7}.pb-nabavna-amount{margin-left:auto;font-weight:700;color:#15803d;font-size:.95rem;font-variant-numeric:tabular-nums}.pb-nabavna-note{font-weight:400;font-size:.8rem;color:#16a34a}.price-breakdown-montage-note{padding:.4rem 1.25rem .5rem;font-size:.75rem;color:#6b7280;border-top:1px solid #f3f4f6}.price-breakdown-subsidy{padding:.875rem 1.25rem;background:#fffbeb;border-top:1px solid #fde68a}.subsidy-note{margin:0 0 .25rem;font-size:.8125rem;font-weight:600;color:#92400e}.subsidy-info{margin:0 0 .375rem;font-size:.6875rem;color:#a16207;line-height:1.4}.subsidy-rows{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.subsidy-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.subsidy-row>div{display:flex;align-items:center;gap:.625rem}.subsidy-type{font-size:.8125rem;color:#78350f}.subsidy-deduction{font-size:.8125rem;color:#16a34a;font-weight:600}.subsidy-final{font-size:.9375rem;font-weight:700;color:#92400e;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-set-body{padding:0 1rem 1rem;border-top:1px solid #f3f4f6}.set-description{margin:.75rem 0 .5rem;font-size:.8125rem;color:#6b7280}.bom-table{width:100%;border-collapse:collapse;font-size:.875rem}.bom-table th{text-align:left;padding:.5rem .625rem;background:#f9fafb;color:#6b7280;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;border-bottom:1px solid #e5e7eb}.bom-table td{padding:.5rem .625rem;border-bottom:1px solid #f3f4f6;color:#374151}.bom-table .quote-cell{font-family:monospace;font-size:.8125rem;color:#6b7280;white-space:nowrap}.bom-table .row-included{background:#f0fdf4}.bom-table .row-included .row-icon{color:#16a34a;font-weight:700}.bom-table .row-excluded{opacity:.45}.bom-table .row-excluded .row-icon{color:transparent}.bom-table .row-icon{width:32px;text-align:center}.option-section{margin-top:.75rem}.option-section+.option-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.option-section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.5rem 0}.option-section-name{font-size:.875rem;font-weight:600;color:#111827}.option-section-ref{font-size:.75rem;font-weight:500;color:#6b7280;padding:.125rem .5rem;background:#f3f4f6;border-radius:.25rem}.bom-table .ean-cell{font-family:monospace;font-size:.8125rem;color:#6b7280;white-space:nowrap}.bom-table .manufacturer-cell{font-size:.8125rem;color:#6b7280;white-space:nowrap}.no-items{margin:.5rem 0;font-size:.8125rem;color:#9ca3af;font-style:italic}.summary-actions{margin-top:2rem;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.summary-auth-prompt{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:.5rem;background:#f9fafb;border:1px solid #e5e7eb;color:#6b7280;font-size:.875rem}.summary-auth-prompt p{margin:0;flex:1}.summary-pending-notice{display:flex;align-items:flex-start;gap:.625rem;padding:.875rem 1.125rem;border-radius:.5rem;background:#fffbeb;border:1px solid #fcd34d;color:#92400e;font-size:.875rem;max-width:480px;line-height:1.5}.summary-pending-notice svg{flex-shrink:0;margin-top:1px;color:#d97706}.btn-designer{padding:.75rem 2rem;font-size:1rem;font-weight:700;background:#f97316;color:#fff;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s}.btn-designer:hover{background:#ea580c}.btn-save-project{padding:.75rem 2rem;font-size:1rem;font-weight:700;background:#fff;color:#374151;border:2px solid #d1d5db;border-radius:.5rem;cursor:pointer;transition:all .15s}.btn-save-project:hover:not(:disabled){border-color:#f97316;color:#f97316}.bom-explorer-overlay{position:fixed;inset:0;z-index:1000;background:#0006;display:flex;align-items:center;justify-content:center;padding:2rem}.bom-explorer-modal{position:relative;width:100%;max-width:1100px;max-height:90vh;overflow-y:auto;border-radius:.75rem;background:#fff;box-shadow:0 20px 60px #00000040}.bom-explorer-close{position:absolute;top:.75rem;right:.75rem;z-index:1;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:50%;cursor:pointer;transition:all .15s;line-height:1}.bom-explorer-close:hover{color:#111827;border-color:#9ca3af;background:#f3f4f6}.btn-save-project:disabled{opacity:.5;cursor:default}.save-form-card{margin-top:2rem;padding:1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem}.save-form-card h3{margin:0 0 1rem;font-size:1.125rem;font-weight:700;color:#111827}.save-form-fields{display:flex;flex-direction:column;gap:.875rem}.save-field{display:flex;flex-direction:column;gap:.25rem}.save-field span{font-size:.8125rem;font-weight:600;color:#374151}.save-field input,.save-field textarea{padding:.5rem .75rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#111827;transition:border-color .15s;font-family:inherit}.save-field input:focus,.save-field textarea:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731626}.save-field-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#374151}.save-field-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:#f97316;cursor:pointer}.save-field textarea{resize:vertical;min-height:4rem}.save-error{margin:.75rem 0 0;font-size:.875rem;color:#dc2626}.save-form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.btn-cancel{padding:.5rem 1.25rem;font-size:.9375rem;font-weight:600;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;transition:all .15s}.btn-cancel:hover:not(:disabled){background:#f3f4f6}.btn-save{padding:.5rem 1.5rem;font-size:.9375rem;font-weight:700;background:#f97316;color:#fff;border:none;border-radius:.375rem;cursor:pointer;transition:all .15s}.btn-save:hover:not(:disabled){background:#ea580c}.btn-save:disabled,.btn-cancel:disabled{opacity:.5;cursor:default}.save-success-card{margin-top:2rem;padding:1.5rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;text-align:center}.save-success-icon{font-size:2rem;color:#16a34a;margin-bottom:.5rem}.save-success-card p{margin:0 0 1rem;font-size:1rem;color:#111827}.save-success-actions{display:flex;justify-content:center;gap:1rem}.qty-input{width:60px;padding:.25rem .375rem;font-size:.875rem;text-align:right;border:1px solid #d1d5db;border-radius:.25rem;background:#fff;color:#111827;transition:border-color .15s;font-family:inherit;-moz-appearance:textfield}.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.qty-input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731626}.btn-designer.disabled-designer{opacity:.5;cursor:not-allowed;position:relative}.btn-designer.disabled-designer:hover{background:#f97316}.brand-select-wrapper{display:flex;align-items:center;gap:.375rem}.brand-select-label{font-size:.8125rem;font-weight:500;color:#6b7280;white-space:nowrap}.brand-select{padding:.3rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#111827;cursor:pointer;transition:border-color .15s}.brand-select:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731626}.schema-model-row{display:flex;gap:1.5rem;margin-top:2rem}.schema-model-row>.schema-section,.schema-model-row>.model-viewer-section{flex:1;min-width:0;margin-top:0}@media(max-width:768px){.schema-model-row{flex-direction:column}}.schema-section{margin-top:2rem}.schema-title{margin:0 0 .75rem;font-size:1.0625rem;font-weight:700;color:#111827}.schema-card{display:block;position:relative;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden;text-decoration:none;transition:border-color .2s,box-shadow .2s}.schema-card:hover{border-color:#f97316;box-shadow:0 2px 12px #f9731626}.schema-thumbnail{display:block;width:100%;height:auto}.schema-card-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000;transition:background .2s}.schema-card:hover .schema-card-overlay{background:#00000059}.schema-card-label{padding:.5rem 1.25rem;font-size:.9375rem;font-weight:700;color:#fff;background:#f97316;border-radius:.375rem;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.schema-card:hover .schema-card-label{opacity:1;transform:translateY(0)}.model-viewer-section{margin-top:2rem}.model-viewer-title{margin:0 0 .75rem;font-size:1.0625rem;font-weight:700;color:#111827}.model-viewer-beta{font-size:.6875rem;font-weight:600;color:#f97316;vertical-align:super}.model-viewer-credit{margin:.25rem 0 0;font-size:.6875rem;color:#9ca3af;text-align:right}.model-viewer-note{margin:.5rem 0 0;font-size:.75rem;color:#9ca3af;font-style:italic;line-height:1.4}.model-viewer-card{display:block;position:relative;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .2s}.model-viewer-card:hover{border-color:#f97316;box-shadow:0 2px 12px #f9731626}.model-viewer-thumb{display:block;width:100%;height:auto}.model-viewer-placeholder{display:flex;align-items:center;justify-content:center;height:200px;font-size:2rem;font-weight:700;color:#d1d5db;background:#f9fafb}.model-viewer-card-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000;transition:background .2s}.model-viewer-card:hover .model-viewer-card-overlay{background:#00000059}.model-viewer-card-label{padding:.5rem 1.25rem;font-size:.9375rem;font-weight:700;color:#fff;background:#f97316;border-radius:.375rem;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.model-viewer-card:hover .model-viewer-card-label{opacity:1;transform:translateY(0)}.model-viewer-overlay{position:fixed;inset:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center;padding:2rem}.model-viewer-modal{position:relative;width:100%;max-width:1400px;height:85vh;border-radius:.75rem;overflow:hidden;background:#f9fafb;box-shadow:0 20px 60px #0000004d}.model-viewer-modal canvas{display:block;width:100%;height:100%}.model-viewer-close{position:absolute;top:.75rem;right:.75rem;z-index:1;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#6b7280;background:#ffffffe6;border:1px solid #e5e7eb;border-radius:50%;cursor:pointer;transition:all .15s;line-height:1}.model-viewer-close:hover{color:#111827;border-color:#9ca3af;background:#fff}.model-viewer-hint{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);padding:.25rem .75rem;font-size:.75rem;color:#6b7280;background:#ffffffd9;border-radius:1rem;pointer-events:none;white-space:nowrap}.bom-table .article-code-cell{font-family:monospace;font-size:.8125rem;color:#374151;white-space:nowrap;font-weight:500}.site-visit-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:.75rem;color:#fff}.site-visit-cta-text{display:flex;flex-direction:column;gap:.25rem}.site-visit-cta-title{font-size:1rem;font-weight:700;color:#fff}.site-visit-cta-desc{font-size:.8125rem;color:#94a3b8;line-height:1.4}.site-visit-cta-btn{flex-shrink:0;padding:.625rem 1.25rem;background:#f97316;color:#fff;font-size:.9375rem;font-weight:600;border:none;border-radius:.5rem;cursor:pointer;transition:background .15s;white-space:nowrap}.site-visit-cta-btn:hover{background:#ea6c08}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{background:#fff;border-radius:.75rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 0}.modal-header h3{margin:0;font-size:1.125rem;font-weight:700;color:#111827}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:#9ca3af;cursor:pointer;padding:0}.modal-close:hover{color:#374151}.modal-desc{margin:.75rem 1.5rem 0;font-size:.875rem;color:#6b7280;line-height:1.5}.modal-privacy-notice{margin:.5rem 1.5rem 0;font-size:.75rem;color:#9ca3af;line-height:1.5}.modal-fields{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.modal-actions{display:flex;gap:.75rem;padding:0 1.5rem 1.5rem;justify-content:flex-end}.modal-success{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1.5rem;text-align:center}.modal-success-icon{width:52px;height:52px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:1.5rem;display:flex;align-items:center;justify-content:center;font-weight:700}.modal-success p{margin:0;font-size:.9375rem;color:#374151}@media(max-width:600px){.site-visit-cta{flex-direction:column;align-items:flex-start}.site-visit-cta-btn{width:100%;text-align:center}}.docs-section{margin-top:1.5rem;border-radius:.5rem;overflow:hidden;border:1px solid #e5e7eb}.docs-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.875rem 1.25rem;background:#1e293b;color:#fff;font-size:.9375rem;font-weight:600;border:none;cursor:pointer;transition:background .15s;text-align:left}.docs-header:hover{background:#273548}.docs-chevron{font-size:.6rem;transition:transform .2s;flex-shrink:0}.docs-chevron.open{transform:rotate(90deg)}.docs-list{display:flex;flex-direction:column}.docs-item{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem;font-size:.875rem;color:#374151;text-decoration:none;border-top:1px solid #f3f4f6;transition:background .1s}.docs-item:hover{background:#f9fafb;color:#111827}.docs-icon{color:#9ca3af;flex-shrink:0}.docs-item:hover .docs-icon{color:#f97316}.pellet-schema-overlay{position:fixed;inset:0;background:#000000bf;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.pellet-schema-modal{position:relative;background:#fff;border-radius:.75rem;padding:1.5rem;max-width:95vw;max-height:92vh;overflow:auto}.pellet-schema-close{position:absolute;top:.75rem;right:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:50%;width:2rem;height:2rem;font-size:.875rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;z-index:1}.pellet-schema-close:hover{color:#111827;border-color:#9ca3af}.pellet-schema-content{display:flex;gap:1.5rem;align-items:flex-start}.pellet-schema-img{flex:2;min-width:0;width:100%;max-height:80vh;object-fit:contain;border-radius:.375rem}.pellet-schema-legend{flex:1;min-width:0;width:100%;max-height:80vh;object-fit:contain;border-radius:.375rem}@media(max-width:768px){.pellet-schema-content{flex-direction:column}}.bom-table--installer .manufacturer-cell{color:#6b7280;font-size:.85rem}.add-extra-item-section{padding:.4rem .5rem .5rem}.add-extra-item-btn{background:none;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.8rem;padding:4px 12px;transition:border-color .15s,color .15s}.add-extra-item-btn:hover{border-color:#9ca3af;color:#374151}.extra-item-search{display:flex;flex-direction:column;gap:.3rem;max-width:400px}.extra-item-search-input{border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;padding:5px 10px;outline:none;width:100%}.extra-item-search-input:focus{border-color:#6366f1}.extra-item-results{background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;max-height:200px;overflow-y:auto}.extra-item-results--empty{color:#9ca3af;font-size:.82rem;padding:6px 10px}.extra-item-result-btn{background:none;border:none;border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;flex-direction:column;gap:1px;padding:5px 10px;text-align:left;transition:background .1s}.extra-item-result-btn:last-child{border-bottom:none}.extra-item-result-btn:hover{background:#f9fafb}.extra-result-name{color:#111827;font-size:.83rem}.extra-result-ean{color:#9ca3af;font-size:.75rem}.add-extra-cancel-btn{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:.78rem;padding:2px 0;text-align:left}.add-extra-cancel-btn:hover{color:#374151}.remove-extra-btn{background:none;border:none;color:#d1d5db;cursor:pointer;font-size:.85rem;padding:2px 4px;transition:color .15s}.remove-extra-btn:hover{color:#ef4444}.configurator-page{display:flex;flex-direction:column;min-height:100vh;background:#f9fafb}.configurator-header{position:sticky;top:0;z-index:10;background:#111827f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #1f2937;height:56px;display:flex;align-items:stretch;flex-shrink:0}.configurator-header-inner{max-width:1280px;width:100%;margin:0 auto;padding:0 2.5rem;display:flex;align-items:center}.configurator-header-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}.landing-admin-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:.375rem;color:#9ca3af;text-decoration:none;transition:color .15s,background .15s}.landing-admin-btn:hover{color:#f9fafb;background:#ffffff1a}.auth-btn{padding:.375rem .875rem;border-radius:.375rem;border:1px solid #4b5563;background:transparent;color:#d1d5db;font-size:.875rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.auth-btn:hover{background:#ffffff1a;color:#f9fafb;border-color:#6b7280}.landing-auth-prompt{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:.5rem;background:#1f2937;border:1px solid #374151;color:#9ca3af;font-size:.875rem}.landing-auth-prompt p{margin:0;flex:1}.configurator-home-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.5rem;color:#9ca3af;text-decoration:none;transition:color .15s,background .15s}.configurator-home-btn:hover{color:#f9fafb;background:#ffffff1a}.configurator-body{flex:1;width:100%;display:flex;flex-direction:column}.configurator-breadcrumb{background:#fff;border-bottom:1px solid #e5e7eb;padding:.75rem 1.5rem}.configurator-breadcrumb-inner{max-width:1280px;padding:0 1rem;margin:0 auto;display:flex;align-items:center;gap:.75rem}.configurator-breadcrumb-title{font-size:1rem;font-weight:600;color:#111827}.configurator-page-title{font-size:1.5rem;font-weight:800;color:#111827;margin-bottom:2rem}.btn-back{padding:.4rem .75rem;font-size:.875rem;font-weight:500;color:#374151;text-decoration:none;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-back:hover{background:#f3f4f6;border-color:#9ca3af}.configurator-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:2rem 1.5rem}.step-container{max-width:1280px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column}.configurator-nav{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:2rem}.btn-nav{padding:.625rem 1.5rem;font-size:.9375rem;font-weight:600;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s}.btn-prev{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-prev:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-next{background:#f97316;color:#fff}.btn-next:hover:not(:disabled){background:#ea580c}.btn-nav:disabled{opacity:.4;cursor:not-allowed}.configurator-site-footer{margin-top:auto;background:#111827;color:#9ca3af;padding:1.5rem 2rem;flex-shrink:0}.configurator-site-footer-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:.5rem;font-size:.8rem}.configurator-site-footer-logo{width:18px;height:18px;opacity:.5}.configurator-loading,.configurator-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;font-size:1rem;color:#6b7280}.configurator-error p{color:#dc2626;font-weight:500}.builder-picker-list{display:flex;flex-direction:column;gap:.75rem}.builder-picker-card{display:flex;flex-direction:row;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;text-align:left;transition:all .15s}.builder-picker-card:hover,.builder-picker-card.picker-card-selected{border-color:#f97316;background:#fff7ed}.picker-card-check{margin-left:auto;font-size:1.25rem;color:#f97316;font-weight:700;flex-shrink:0}.picker-card-thumbs{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.picker-card-thumb{width:48px;height:48px;object-fit:contain;flex-shrink:0}.picker-card-thumb-config{width:40px;height:40px}.picker-card-thumb-plus{font-size:.875rem;color:#9ca3af;font-weight:600;flex-shrink:0}.picker-card-text{display:flex;flex-direction:column;gap:.25rem}.picker-card-name{font-size:1.125rem;font-weight:700;color:#111827}.picker-card-desc{font-size:.875rem;color:#6b7280}.picker-loading,.picker-empty{color:#6b7280;font-size:.9375rem}.configurator-landing-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:0}.configurator-landing-title-row .configurator-page-title{margin-bottom:0}.landing-section{margin-bottom:2.5rem}.landing-section .step-header{margin-bottom:1rem}.btn-open-projects{display:inline-block;padding:.625rem 1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;color:#f97316;font-size:.9375rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s}.btn-open-projects:hover{border-color:#f97316;background:#fff7ed}.saved-configs-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.saved-configs-search{flex:1;padding:.5rem .875rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;color:#111827;background:#fff;outline:none;transition:border-color .15s}.saved-configs-search:focus{border-color:#f97316}.saved-configs-count{font-size:.8125rem;color:#9ca3af;white-space:nowrap;flex-shrink:0}.saved-configs-list{display:flex;flex-direction:column;gap:.5rem}.saved-config-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden;transition:border-color .15s}.saved-config-card.expanded{border-color:#f97316}.saved-config-summary{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s}.saved-config-summary:hover{background:#fff7ed}.saved-config-chevron{font-size:.65rem;color:#9ca3af;transition:transform .2s;flex-shrink:0}.saved-config-chevron.open{transform:rotate(90deg)}.saved-config-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.saved-config-name{font-size:.9375rem;font-weight:600;color:#111827}.saved-config-date{font-size:.8125rem;color:#9ca3af;white-space:nowrap;flex-shrink:0}.saved-config-customer{font-size:.8125rem;color:#6b7280}.saved-config-detail{padding:.75rem 1.25rem 1rem;border-top:1px solid #f3f4f6;display:flex;flex-direction:column;gap:.875rem}.btn-open-project{align-self:flex-start;padding:.4rem 1rem;background:#f97316;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-open-project:hover{background:#ea6c0a}.offers-section{display:flex;flex-direction:column;gap:.4rem}.offers-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.offers-loading,.offers-empty{font-size:.8125rem;color:#9ca3af;margin:0}.offers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.offer-row{display:flex;align-items:center;gap:.75rem;padding:.375rem .5rem;border-radius:.375rem;background:#f9fafb;font-size:.8125rem}.offer-number{font-weight:600;color:#374151;font-variant-numeric:tabular-nums;flex-shrink:0}.offer-customer{flex:1;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offer-date{color:#9ca3af;flex-shrink:0}.btn-download-pdf{padding:.2rem .6rem;background:#fff;border:1px solid #d1d5db;border-radius:.3rem;font-size:.75rem;font-weight:600;color:#374151;cursor:pointer;flex-shrink:0;transition:all .15s}.btn-download-pdf:hover{border-color:#f97316;color:#f97316;background:#fff7ed}.offer-no-pdf{font-size:.75rem;color:#d1d5db;flex-shrink:0;min-width:2.5rem;text-align:center}.projects-page-inner{width:100%;box-sizing:border-box;padding:1.25rem 1rem}.projects-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;gap:.75rem;flex-wrap:wrap}.projects-page-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .2rem;line-height:1.3}.projects-page-count{font-size:.875rem;color:#6b7280}.btn-new-config{display:inline-block;padding:.5rem 1rem;background:#f97316;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s;flex-shrink:0}.btn-new-config:hover{background:#ea6c0a}.projects-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.5rem;box-shadow:0 1px 3px #00000014;margin-top:.75rem}.projects-table{width:100%;border-collapse:collapse;font-size:.875rem;background:#fff;min-width:520px}.projects-table thead tr{background:#f9fafb}.projects-table th{padding:.75rem 1rem;text-align:left;font-size:.8125rem;font-weight:500;color:#6b7280;border-bottom:1px solid #e5e7eb;white-space:nowrap;-webkit-user-select:none;user-select:none}.projects-table th.sortable{cursor:pointer}.projects-table th.sortable:hover{color:#111827;background:#f3f4f6}.projects-table th.sortable:focus-visible{outline:2px solid #f97316;outline-offset:-2px}.sort-indicator{margin-left:.25rem;font-size:.75rem;color:#9ca3af}.projects-table tbody tr{cursor:pointer;transition:background .1s}.projects-table tbody tr:hover{background:#fff7ed}.projects-table tbody tr:focus-visible{outline:2px solid #f97316;outline-offset:-2px}.projects-table td{padding:.875rem 1rem;border-bottom:1px solid #f3f4f6;color:#111827;vertical-align:middle}.projects-table tbody tr:last-child td{border-bottom:none}.col-name{font-weight:600}.col-customer{color:#6b7280}.col-creator,.col-date{color:#6b7280;white-space:nowrap}.col-realizacija{white-space:nowrap}.realizacija-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:9999px;border:1.5px solid currentColor;white-space:nowrap}.realizacija-badge--none{color:#d1d5db;border-color:transparent}.col-action{text-align:right;color:#f97316;font-weight:500;white-space:nowrap}.creator-filter{position:relative;flex-shrink:0}.creator-filter-trigger{display:flex;align-items:center;gap:.375rem;padding:.4375rem .75rem;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;color:#374151;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:border-color .15s}.creator-filter-trigger:hover{border-color:#9ca3af}.creator-filter-caret{opacity:.5;transition:transform .15s;flex-shrink:0}.creator-filter-caret.open{transform:rotate(180deg)}.creator-filter-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 4px 16px #0000001a;padding:.375rem;z-index:50;max-height:280px;overflow-y:auto}.creator-filter-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:.375rem;cursor:pointer;font-size:.875rem;color:#374151;transition:background .1s}.creator-filter-item:hover{background:#f3f4f6}.creator-filter-item input[type=checkbox]{accent-color:#f97316;flex-shrink:0}.creator-filter-none{color:#9ca3af;font-style:italic}.creator-filter-divider{height:1px;background:#f3f4f6;margin:.25rem 0}@media(min-width:640px){.projects-page-inner{padding:1.5rem 2rem}.projects-page-title{font-size:1.375rem}}@media(min-width:1024px){.projects-page-inner{max-width:1280px;margin:0 auto;padding:2rem 2.5rem}}.installer-admin{padding:1.5rem}.installer-admin-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem}.installer-admin-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.installer-count{color:#6b7280;font-size:.875rem}.installer-loading,.installer-empty{color:#6b7280;padding:2rem;text-align:center}.installer-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:.375rem;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem}.installer-table{width:100%;border-collapse:collapse;font-size:.875rem;background:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 1px 3px #00000014}.installer-table th{text-align:left;padding:.75rem 1rem;color:#6b7280;font-weight:500;background:#f9fafb;border-bottom:1px solid #e5e7eb;white-space:nowrap}.installer-table td{padding:.75rem 1rem;border-bottom:1px solid #f3f4f6;color:#111827;vertical-align:middle}.installer-table tr:last-child td{border-bottom:none}.installer-table tr.pending td{color:#374151}.installer-table tr.verified td{color:#111827}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.verified{background:#dcfce7;color:#15803d}.status-badge.pending{background:#fef9c3;color:#854d0e}.actions-cell{display:flex;gap:.5rem;white-space:nowrap}.btn-verify{padding:.375rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;border:none;cursor:pointer}.btn-verify.verify{background:#16a34a;color:#fff}.btn-verify.verify:hover{background:#15803d}.btn-verify.unverify{background:#dc2626;color:#fff}.btn-verify.unverify:hover{background:#b91c1c}.btn-edit{padding:.375rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.btn-edit:hover{border-color:#9ca3af;background:#f9fafb}.btn-save{padding:.375rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;border:none;background:#f97316;color:#fff;cursor:pointer}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{padding:.375rem .75rem;border-radius:.375rem;font-size:.8125rem;font-weight:500;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}.btn-cancel:hover{background:#f9fafb}.discount-input{width:5rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;padding:.25rem .5rem;font-size:.875rem}.discount-input:focus{outline:none;border-color:#3498db}.notes-input{width:12rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;padding:.25rem .5rem;font-size:.875rem}.notes-input:focus{outline:none;border-color:#3498db}
