.App{background-color:#f5f5f5;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;padding:20px;text-align:center}.dashboard{align-items:center;display:flex;justify-content:center;min-height:80vh}.dashboard h1{color:#333;font-size:3rem;margin:0}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:10px;box-shadow:0 15px 35px #0000001a;max-width:400px;padding:40px;width:100%}.login-card h1{color:#333;font-size:1.8rem;margin-bottom:30px}.form-group,.login-form{margin-bottom:20px}.form-group{text-align:left}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:5px}.form-group input{border:2px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:transform .2s ease,box-shadow .2s ease;width:100%}.login-btn:hover:not(:disabled){box-shadow:0 5px 15px #0003;transform:translateY(-1px)}.login-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.google-login-btn{background:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:background-color .3s ease;width:100%}.google-login-btn:hover:not(:disabled){background:#3367d6}.google-login-btn:disabled{cursor:not-allowed;opacity:.6}.divider{margin:25px 0;position:relative;text-align:center}.divider:before{background:#ddd;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#666;font-size:14px;padding:0 15px}.error-message{background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;margin-bottom:20px;padding:12px}.login-help{border-top:1px solid #eee;margin-top:20px;padding-top:20px}.login-help p{color:#666;font-size:14px;margin:0}.top-nav{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:16px 24px;position:sticky;top:0;z-index:1000}.nav-title{cursor:pointer;font-size:24px;font-weight:700;margin:0;transition:opacity .2s ease;-webkit-user-select:none;user-select:none}.nav-title:hover{opacity:.9}.nav-logout-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.nav-logout-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.nav-controls{align-items:center;display:flex;gap:16px}.store-selector-container{align-items:center;display:flex;gap:8px}.store-selector-label{white-space:nowrap}.store-selector,.store-selector-label{color:#fff;font-size:14px;font-weight:500}.store-selector{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;cursor:pointer;min-width:140px;padding:8px 12px;transition:all .2s ease}.store-selector:hover{background:#ffffff40}.store-selector:focus{background:#ffffff4d;border-color:#ffffff80;outline:none}.store-selector option{background:#667eea;color:#fff}.product-page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px;padding:20px 0}.product-page-header h2{color:#2c3e50;font-size:28px;font-weight:600;margin:0}.dashboard-header{border-bottom:1px solid #eee;justify-content:space-between;margin-bottom:30px;padding:20px 0}.dashboard-header,.user-info{align-items:center;display:flex}.user-info{gap:15px}.logout-btn{border-radius:4px}.loading{align-items:center;color:#666;display:flex;font-size:1.2rem;justify-content:center;min-height:100vh}.dashboard-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.dashboard p{color:#666;font-size:1.1rem;margin-top:20px}.dashboard-content{width:100%}.product-tabs-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:16px;margin-top:10px}.category-tabs{border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:10px;overflow-x:auto;padding:12px 0 24px}.category-tab{background:#edf2ff;border:none;border-radius:999px;box-shadow:inset 0 0 0 1px #5a67d826;color:#5a67d8;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.category-tab:hover{background:#dce2ff;box-shadow:inset 0 0 0 1px #5a67d84d}.category-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 6px 12px #764ba24d;color:#fff}.category-tab:disabled{cursor:not-allowed;opacity:.6}.country-tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-left:auto}.country-tab{background:#e8f7ee;border:none;border-radius:999px;box-shadow:inset 0 0 0 1px #2f855a26;color:#2f855a;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px;transition:all .2s ease}.country-tab:hover{background:#cfeede;box-shadow:inset 0 0 0 1px #2f855a4d}.country-tab.active{background:linear-gradient(135deg,#38a169,#2f855a);box-shadow:0 6px 12px #2f855a4d;color:#fff}.products-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.products-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.header-left{gap:15px}.products-header h2{color:#333;margin:0}.refresh-btn,.shopify-sync-btn{align-items:center;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .3s ease;white-space:nowrap}.refresh-btn{background:#28a745}.refresh-btn:hover:not(:disabled){background:#218838;box-shadow:0 2px 8px #28a7454d;transform:translateY(-1px)}.shopify-sync-btn{background:#7048e8}.shopify-sync-btn:hover:not(:disabled){background:#5f3dc4;box-shadow:0 2px 8px #7048e84d;transform:translateY(-1px)}.refresh-btn:disabled,.shopify-sync-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.refresh-icon{display:inline-block;font-size:16px;transition:transform .3s ease}.refresh-icon.spinning{animation:spin 1s linear infinite}.products-stats{align-items:center;color:#666;display:flex;font-size:14px;gap:15px}.search-indicator{background:#e3f2fd;color:#1976d2}.last-refresh,.search-indicator{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.last-refresh{background:#f0f8f0;color:#28a745}.sync-result{background:#e8f5e8;border:1px solid #c3e6cb;border-radius:8px;margin-bottom:20px;padding:15px}.sync-result h4{color:#155724;margin:0 0 10px}.sync-stats{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:10px}.sync-stats span{background:#fff;border-radius:4px;font-size:14px;font-weight:500;padding:4px 8px}.sync-errors{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;margin-top:10px;padding:10px}.sync-errors ul{margin:5px 0 0;padding-left:20px}.sync-errors li{color:#721c24;font-size:12px}.products-filters{margin-bottom:20px}.filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.filter-group{flex:1 1;min-width:200px}.search-group{flex:2 1;min-width:300px}.search-container{align-items:center;display:flex;gap:5px}.filter-select,.search-input{border:2px solid #ddd;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .3s ease}.search-input{flex:1 1}.filter-select{width:100%}.filter-select:focus,.search-input:focus{border-color:#667eea;outline:none}.clear-search-btn,.search-btn{align-items:center;background:#667eea;border:2px solid #667eea;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;justify-content:center;padding:10px 12px;transition:all .3s ease;white-space:nowrap}.search-btn:hover:not(:disabled){background:#5a67d8;border-color:#5a67d8}.clear-search-btn{background:#dc3545;border-color:#dc3545;min-width:40px;padding:10px}.clear-search-btn:hover:not(:disabled){background:#c82333;border-color:#c82333}.clear-search-btn:disabled,.search-btn:disabled{cursor:not-allowed;opacity:.6}.table-container{margin-bottom:20px;overflow-x:auto}.products-table{border-collapse:collapse;font-size:14px;width:100%}.subcategory-heading-row{background:#f1f5f9}.subcategory-heading-cell{border-bottom:2px solid #e2e8f0;border-top:2px solid #e2e8f0;color:#1f2933;font-weight:600;letter-spacing:.5px;padding:14px 12px;text-transform:uppercase}.subcategory-empty-row{background:#fbfbfb;color:#7b8794;font-style:italic}.subcategory-empty-row td{padding:12px}.product-row-draft,.product-row-live,.product-row-out-of-stock{color:#1f2933}.product-row-live{background-color:#ecfdf3}.product-row-draft{background-color:#f5f5f5}.product-row-out-of-stock{background-color:#fdecea}.product-row-uncategorized{color:#1f2933;position:relative;z-index:0}.product-row-uncategorized:after{background:#fffbd699;content:"";inset:0;pointer-events:none;position:absolute;z-index:-1}.products-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#333;font-weight:600;padding:12px;text-align:left;white-space:nowrap}.products-table td{border-bottom:1px solid #dee2e6;padding:12px;vertical-align:middle}.products-table tr:hover{background-color:#f8f9fa}.product-image-cell{text-align:center;width:60px}.product-thumbnail{border:1px solid #ddd;border-radius:4px;height:40px;object-fit:cover;width:40px}.no-image{align-items:center;background:#f0f0f0;border-radius:4px;color:#999;display:flex;font-size:10px;height:40px;justify-content:center;text-align:center;width:40px}.product-id{color:#666;font-family:monospace;font-size:12px;max-width:100px}.product-title{font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-category,.product-country{text-transform:capitalize}.product-brand{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-price{color:#2d3748;font-weight:600}.product-sizes{color:#666;font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.status-badge.live{background:#d4edda;color:#155724}.status-badge.draft{background:#f8d7da;color:#721c24}.status-badge.generating{animation:pulse 2s infinite;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.source-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.source-badge.shopify{background:#e3f2fd;color:#1976d2}.source-badge.manual{background:#f3e5f5;color:#7b1fa2}.no-products{font-style:italic}.loading-spinner,.no-products{color:#666;padding:40px;text-align:center}.loading-overlay{background:#fffc;bottom:0;color:#666;left:0;position:absolute;right:0;top:0}.loading-overlay,.pagination{align-items:center;display:flex;justify-content:center}.pagination{gap:10px;margin-top:20px}.pagination-btn{background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .3s ease}.pagination-btn:hover:not(:disabled){background:#f8f9fa;border-color:#667eea}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-info{color:#666;font-size:14px;padding:8px 16px}@media (max-width:768px){.filter-row{flex-direction:column}.filter-group,.search-group{min-width:100%}.search-container{flex-wrap:wrap;gap:10px}.search-input{min-width:200px}.products-header{gap:15px}.header-left,.products-header{align-items:flex-start;flex-direction:column}.header-left{gap:10px;width:100%}.products-stats{align-items:flex-start;flex-direction:column;gap:8px}.products-table{font-size:12px}.products-table td,.products-table th{padding:8px}.product-title{max-width:150px}.product-sizes{max-width:100px}}.product-detail-container{background-color:#f8f9fa;min-height:100vh;padding:0}.product-detail-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;padding:16px 24px;position:sticky;top:0;z-index:100}.header-left{align-items:center;display:flex;gap:16px}.header-left h1{color:#2c3e50;font-size:24px;font-weight:600;margin:0}.header-right{align-items:center;color:#6c757d;display:flex;gap:16px}.back-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.back-btn:hover{background:#5a6268}.logout-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.logout-btn:hover{background:#c82333}.product-detail-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1400px;padding:24px}.left-column,.right-column{display:flex;flex-direction:column;gap:24px}.images-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.images-section h2{border-bottom:2px solid #3498db;color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.images-container{display:flex;flex-direction:column;gap:16px}.main-image{align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;display:flex;height:400px;justify-content:center;overflow:hidden}.main-product-image{border-radius:6px;max-height:100%;max-width:100%;object-fit:contain}.image-thumbnails{display:flex;flex-wrap:wrap;gap:8px}.thumbnail{border:2px solid #e9ecef;border-radius:6px;cursor:pointer;height:80px;object-fit:cover;transition:all .2s;width:80px}.thumbnail:hover{border-color:#3498db;transform:scale(1.05)}.thumbnail.active{border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.no-images{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;font-style:italic;padding:40px;text-align:center}.model-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.model-section h2{border-bottom:2px solid #e74c3c;color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.model-container{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #e9ecef;border-radius:8px;height:400px;overflow:hidden;position:relative;width:100%}.model-error{flex-direction:column;gap:16px}.model-error,.model-loading{align-items:center;color:#6c757d;display:flex;height:100%;justify-content:center}.model-loading{background:#f8f9fa;font-size:16px}.retry-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.retry-btn:hover{background:#218838}.model-url{background:#f8f9fa;border-left:4px solid #17a2b8;border-radius:6px;font-size:14px;margin-top:16px;padding:12px;word-break:break-all}.model-url a{color:#17a2b8;margin-left:8px;text-decoration:none}.model-url a:hover{text-decoration:underline}.product-info-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.product-info-section h2{border-bottom:3px solid #f39c12;color:#2c3e50;font-size:24px;font-weight:700;margin:0 0 24px;padding-bottom:12px}.info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr}.info-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s}.info-item:hover{background:#e9ecef;transform:translateY(-1px)}.info-label{color:#495057;font-size:14px;font-weight:600}.info-value{color:#2c3e50;font-size:14px;font-weight:500;text-align:right}.info-value.price{font-size:16px}.info-value.price,.info-value.status.live{color:#28a745;font-weight:700}.info-value.status.draft{color:#ffc107;font-weight:700}.info-value.source.shopify{color:#95bf47;font-weight:600}.info-value.source.manual{color:#6f42c1;font-weight:600}.description-section{border-top:1px solid #e9ecef;margin-top:24px;padding-top:24px}.description-section h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 16px}.description-text{color:#495057;font-size:14px;line-height:1.6;margin:0}.tech-details-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.model-tech-info h3{border-bottom:2px solid #9b59b6;color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.tech-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.tech-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;font-size:13px;justify-content:space-between;padding:10px 14px}.tech-label{color:#495057;font-weight:600}.tech-value{color:#2c3e50;font-weight:500;text-align:right}.tech-value.yes{color:#28a745;font-weight:700}.tech-value.no{color:#6c757d;font-weight:500}.additional-info-section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:24px}.additional-info-section h3{border-bottom:2px solid #1abc9c;color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:8px}.additional-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.product-row-clickable{cursor:pointer;overflow:hidden;position:relative;transition:all .2s ease}.product-row-clickable:hover{background-color:#f8f9fa!important;box-shadow:0 2px 8px #0000001a;transform:scale(1.01)}.product-row-clickable:active{transform:scale(.99)}.loading-spinner{color:#6c757d}.error-message,.loading-spinner{align-items:center;display:flex;font-size:18px;height:400px;justify-content:center}.error-message{color:#dc3545;flex-direction:column;gap:16px;text-align:center}@media (max-width:1200px){.product-detail-content{gap:20px;padding:20px}.product-detail-content,.tech-grid{grid-template-columns:1fr}}@media (max-width:768px){.product-detail-header{flex-direction:column;gap:16px;padding:16px}.header-left,.header-right{justify-content:space-between;width:100%}.header-left h1{font-size:20px}.product-detail-content{gap:16px;padding:16px}.main-image,.model-container{height:300px}.info-grid{gap:12px}.info-item{align-items:flex-start;flex-direction:column;gap:8px}.info-value{text-align:left}}.product-detail,.product-header{margin:0 auto;max-width:1200px;padding:20px}.product-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between}.visual-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:20px;margin-bottom:30px;padding:20px}.thumbnails-sidebar{display:flex;flex-direction:column;gap:10px;min-width:120px}.thumbnail-item{background:#f8f9fa;border:3px solid #e9ecef;border-radius:8px;cursor:pointer;height:100px;overflow:hidden;transition:all .2s ease;width:100px}.thumbnail-item:hover{border-color:#007bff;transform:scale(1.02)}.thumbnail-item.active{border-color:#007bff;box-shadow:0 0 0 2px #007bff33}.thumbnail-item.disabled{cursor:not-allowed;opacity:.5}.thumbnail-item.disabled:hover{border-color:#e9ecef;transform:none}.thumbnail-item.disabled.uploadable{cursor:pointer;opacity:.8}.thumbnail-item.disabled.uploadable:hover{border-color:#007bff;opacity:1;transform:scale(1.02)}.thumbnail-content{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%}.thumbnail-image{height:100%;object-fit:cover;width:100%}.thumbnail-placeholder{color:#6c757d;font-size:12px;line-height:1.2;padding:5px;text-align:center}.thumbnail-placeholder.clickable-upload{align-items:center;border:1px dashed #dee2e6;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;padding:8px;transition:all .3s ease}.thumbnail-placeholder.clickable-upload:hover{background-color:#f8f9fa;border-color:#007bff;color:#007bff;transform:scale(1.02)}.thumbnail-placeholder .upload-icon{font-size:1.5rem;margin-bottom:4px}.thumbnail-placeholder .upload-text{font-size:11px;font-weight:600;margin-bottom:2px}.thumbnail-placeholder .upload-hint{color:#8d94a3;font-size:9px;font-style:italic}.thumbnail-delete-btn{align-items:center;background:#dc3545e6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:700;height:20px;justify-content:center;line-height:1;position:absolute;right:2px;top:2px;transition:all .2s ease;width:20px;z-index:10}.thumbnail-delete-btn:hover{background:#dc3545;transform:scale(1.1)}.thumbnail-delete-btn:active{transform:scale(.95)}.thumbnail-preview.model-preview{color:#28a745;font-size:24px}.thumbnail-item.uploading{animation:pulse-border 2s infinite;background:#e3f2fd;border-color:#007bff}@keyframes pulse-border{0%,to{border-color:#007bff}50%{border-color:#0056b3}}.thumbnail-upload-status{animation:pulse 1.5s infinite;font-size:24px}.main-display{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;flex:1 1;min-height:400px;overflow:hidden;position:relative}.main-display-empty{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.empty-content{color:#6c757d;text-align:center}.empty-content h3{color:#495057;margin:0 0 10px}.empty-content p{font-size:14px;margin:0 0 20px}.upload-area{align-items:center;display:flex;flex-direction:column;gap:10px}.upload-button{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;padding:12px 24px;text-decoration:none;transition:background .2s ease}.upload-button:hover{background:#0056b3}.main-display-image,.main-display-model{height:100%;position:relative;width:100%}.main-image{background:#fff;object-fit:contain}.babylon-canvas,.main-image{height:100%;max-height:400px;width:100%}.babylon-canvas{background:linear-gradient(45deg,#f8f9fa,#e9ecef)}.model-controls-overlay{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#3c3c3cf2;background-color:#3c3c3c;border:1px solid #fff3;border-radius:8px;bottom:15px;box-shadow:0 4px 12px #0000004d;min-width:140px;padding:12px;pointer-events:none;position:absolute;right:15px;z-index:10}.controls-header{align-items:center;border-bottom:1px solid #fff3;display:flex;gap:6px;margin-bottom:8px;padding-bottom:6px}.controls-icon{font-size:14px}.controls-title{color:#fff;font-size:12px;font-weight:600}.controls-stats{display:flex;flex-direction:column;gap:8px}.control-stat{align-items:center;display:flex;gap:8px;text-align:left}.control-icon{font-size:12px;text-align:center;width:16px}.control-label{color:#fffc;font-size:10px;line-height:1}.upload-overlay{left:10px;position:absolute;top:10px;z-index:10}.upload-button-overlay{background:#007bffe6;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:12px;font-weight:500;padding:8px 16px;text-decoration:none;transition:background .2s ease}.upload-button-overlay:hover{background:#0056b3e6}.model-tech-overlay{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#3c3c3cf2;background-color:#3c3c3c;border:1px solid #fff3;border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:140px;padding:12px;position:absolute;right:15px;top:15px;z-index:10}.tech-header{align-items:center;border-bottom:1px solid #fff3;display:flex;gap:6px;margin-bottom:8px;padding-bottom:6px}.tech-icon{font-size:14px}.tech-title{color:#fff;font-size:12px;font-weight:600}.tech-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.tech-stat{align-items:center;display:flex;flex-direction:column;text-align:center}.stat-value{color:#4fc3f7;font-size:13px;font-weight:700;line-height:1;margin-bottom:2px}.stat-label{color:#fffc;font-size:10px;line-height:1}.mannequin-controls{border-top:1px solid #fff3;margin-top:8px;padding-top:8px}.model-action-buttons{border-top:1px solid #fff3;display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px}.delete-model-info-btn{align-items:center;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;justify-content:center;padding:6px 12px;text-align:center;transition:all .3s ease}.delete-model-info-btn:hover{background:linear-gradient(135deg,#c82333,#bd2130);box-shadow:0 3px 8px #dc354566;transform:translateY(-1px)}.delete-model-info-btn:active{box-shadow:0 1px 4px #dc35454d;transform:translateY(0)}.load-mannequin-info-btn{align-items:center;background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;justify-content:center;padding:6px 12px;text-align:center;transition:all .3s ease}.load-mannequin-info-btn:hover{background:linear-gradient(135deg,#218838,#1e7e34);box-shadow:0 3px 8px #28a74566;transform:translateY(-1px)}.load-mannequin-info-btn:active{box-shadow:0 1px 4px #28a7454d;transform:translateY(0)}.animation-controls-overlay{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#3c3c3cf2;background-color:#3c3c3c;border:1px solid #fff3;border-radius:8px;bottom:15px;box-shadow:0 4px 12px #0000004d;left:15px;min-width:160px;padding:12px;position:absolute;z-index:10}.animation-header{align-items:center;border-bottom:1px solid #fff3;display:flex;gap:6px;margin-bottom:12px;padding-bottom:8px}.animation-icon{font-size:14px}.animation-title{color:#fff;font-size:12px;font-weight:600}.animation-buttons{display:flex;flex-direction:column;gap:6px}.animation-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;font-weight:500;padding:8px 12px;text-align:left;transition:all .2s ease;width:100%}.animation-btn:hover:not(:disabled){background:linear-gradient(135deg,#5a67d8,#6b46c1);box-shadow:0 2px 8px #667eea66;transform:translateY(-1px)}.animation-btn:active:not(:disabled){box-shadow:0 1px 4px #667eea4d;transform:translateY(0)}.animation-btn:disabled{background:#4a5568;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.animation-btn.stop-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);margin-top:4px}.animation-btn.stop-btn:hover:not(:disabled){background:linear-gradient(135deg,#dc3545,#bd2130);box-shadow:0 2px 8px #e74c3c66}.animation-btn.pose-btn{background:linear-gradient(135deg,#17a2b8,#138496);margin-top:2px}.animation-btn.pose-btn:hover:not(:disabled){background:linear-gradient(135deg,#138496,#0f6674);box-shadow:0 2px 8px #17a2b866}.main-display-uploading{align-items:center;background:#f8f9fa;display:flex;height:100%;justify-content:center;width:100%}.upload-progress-container{max-width:400px;padding:40px;text-align:center;width:100%}.upload-progress-container h3{color:#495057;font-size:18px;margin:0 0 20px}.progress-bar{background:#e9ecef;margin-bottom:15px}.progress-fill{background:linear-gradient(90deg,#007bff,#0056b3);overflow:hidden;position:relative}.progress-fill:after{animation:progress-shine 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes progress-shine{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-info{color:#6c757d}.progress-info span:first-child{color:#495057;font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-info span:last-child{color:#007bff;font-weight:600}.cancel-upload-btn{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background .2s ease}.cancel-upload-btn:hover{background:#c82333}.product-details-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:25px}.mobile-app-images-section{background:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;margin-bottom:25px;padding:20px}.mobile-app-images-section h2{align-items:center;color:#495057;display:flex;font-size:1.4rem;gap:8px;margin-bottom:8px}.mobile-app-images-section h2:before{content:"📱";font-size:1.2rem}.mobile-app-images-section .section-description{color:#6c757d;font-size:.9rem;font-style:italic;margin-bottom:20px}.mobile-images-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.mobile-image-slot{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:15px;text-align:center}.mobile-image-label{color:#495057;font-size:.9rem;font-weight:600;margin-bottom:10px}.mobile-image-container{cursor:pointer;position:relative}.mobile-image-preview{border:2px solid #e9ecef;border-radius:6px;height:150px;max-width:150px;object-fit:cover;transition:all .3s ease;width:100%}.mobile-image-preview:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff33;transform:scale(1.02)}.mobile-image-replace-btn{align-items:center;background:#007bffe6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;opacity:0;position:absolute;right:8px;top:8px;transition:all .3s ease;width:28px;z-index:2}.mobile-image-container:hover .mobile-image-replace-btn{opacity:1}.mobile-image-replace-btn:hover{background:#007bff;transform:scale(1.1)}.mobile-image-placeholder{align-items:center;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:6px;color:#6c757d;display:flex;flex-direction:column;font-size:.9rem;height:150px;justify-content:center;transition:all .3s ease;width:100%}.mobile-image-placeholder.clickable{cursor:pointer}.mobile-image-placeholder.clickable:hover{background:#e9ecef;border-color:#007bff;color:#007bff;transform:scale(1.02)}.mobile-image-placeholder .upload-icon{font-size:2rem;margin-bottom:8px}.mobile-image-placeholder .upload-hint{color:#8d94a3;font-size:.75rem;margin-top:4px;text-align:center}@media (max-width:768px){.mobile-images-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.mobile-image-placeholder,.mobile-image-preview{height:120px}}@media (max-width:480px){.mobile-images-grid{grid-template-columns:1fr}}.file-input{height:0;opacity:0;position:absolute;width:0}.reference-images-section{background:#f0f8ff;border:2px solid #add8e6;border-radius:12px;margin-bottom:30px;padding:25px}.reference-images-section h2{align-items:center;color:#1e3a8a;display:flex;gap:10px;margin-bottom:20px}.reference-images-section h2:before{content:"🦶";font-size:1.2em}.reference-images-container{display:flex;flex-direction:column;gap:30px}.reference-row{display:flex;flex-direction:column;gap:15px}.reference-row h3{color:#374151;font-size:18px;font-weight:600;margin:0}.reference-images-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr)}.reference-image-slot{aspect-ratio:1;border-radius:8px}.reference-upload-label{border:2px dashed #cbd5e0;border-radius:8px;cursor:pointer;display:block;height:100%;overflow:hidden;transition:all .2s ease;width:100%}.reference-upload-label:hover{background-color:#f8fafc;border-color:#3b82f6}.reference-thumbnail{display:block;height:100%;object-fit:cover;width:100%}.reference-placeholder{align-items:center;background-color:#f9fafb;color:#9ca3af;display:flex;flex-direction:column;height:100%;justify-content:center;transition:all .2s ease}.reference-placeholder:hover{background-color:#eff6ff;color:#3b82f6}.upload-icon{font-size:24px;margin-bottom:8px}.upload-text{font-size:12px;font-weight:500}@media (max-width:768px){.reference-images-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.reference-images-container{gap:20px}}@media (max-width:480px){.reference-images-grid{gap:8px;grid-template-columns:1fr}}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:30px}.form-group{display:flex;flex-direction:column}.form-group label{color:#495057;font-size:14px;font-weight:600;margin-bottom:8px}.form-control{background-color:#fff;border:2px solid #e9ecef;border-radius:8px;font-size:16px;padding:12px;transition:border-color .2s ease,box-shadow .2s ease}.form-control:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-control.disabled,.form-control:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}textarea.form-control{font-family:inherit;min-height:100px;resize:vertical}.shopify-badge{align-items:center;background:linear-gradient(135deg,#96c93f,#7ab82c);border-radius:20px;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px}.checkbox-group{display:flex;flex-direction:column;gap:8px}.checkbox-label{font-weight:400;gap:8px;margin:0}.checkbox-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.sizes-section{background:#f8f9fa;border-radius:12px;margin-bottom:30px;padding:25px}.size-groups{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr}.size-group h4{color:#495057;font-size:16px;margin-bottom:15px}.size-item{background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px;transition:all .2s ease}.size-item:hover{border-color:#dee2e6;box-shadow:0 2px 4px #0000000d}.size-details{border-top:1px solid #f1f3f4;gap:4px;margin-left:20px;padding:6px 0}.size-details,.variant-info{display:flex;flex-direction:column;min-width:0}.variant-info{font-size:11px;gap:3px}.variant-label{color:#6c757d;font-size:11px;font-weight:600}.variant-id{align-self:flex-start;background:#f8f9fa;border:1px solid #e9ecef;border-radius:3px;color:#495057;font-family:Courier New,monospace;font-size:10px;line-height:1.3;max-width:100%;min-width:0;overflow-wrap:break-word;padding:3px 6px;word-break:break-all}.stock-info{align-items:center;display:flex}.color-size-table{margin-top:12px;overflow-x:auto}.variant-table{background:#fff;border:1px solid #e9ecef;border-collapse:collapse;border-radius:4px;font-size:12px;overflow:hidden;width:100%}.variant-table thead{background-color:#f8f9fa}.variant-table th{border-bottom:2px solid #dee2e6;color:#495057;font-size:11px;font-weight:600;padding:8px 6px;text-align:left}.variant-table .color-header{min-width:80px;padding-left:12px}.variant-table .size-header{min-width:120px;text-align:center}.variant-table td{border-bottom:1px solid #f1f3f4;padding:6px;vertical-align:middle}.variant-table .color-cell{background-color:#f8f9fa;color:#495057;font-weight:500;min-width:80px;padding-left:12px}.variant-table .variant-cell{padding:4px}.table-variant-input{border:1px solid #ced4da;border-radius:3px;font-size:11px;min-width:100px;padding:4px 6px;width:100%}.table-variant-input:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.size-fallback-section{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;margin-top:12px;padding:12px}.fallback-label{color:#6c757d;display:block;font-size:12px;font-weight:600;margin-bottom:8px}.fallback-variants{display:flex;flex-direction:column;gap:6px}.fallback-variant-item{align-items:center;display:flex;gap:8px}.fallback-size-label{color:#495057;font-size:11px;font-weight:500;min-width:40px}.color-actions-header{font-size:11px;min-width:60px;text-align:center}.color-actions-cell{padding:4px;text-align:center}.add-color-button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:background-color .2s}.add-color-button:hover:not(:disabled){background-color:#0056b3}.add-color-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.remove-color-button{align-items:center;background-color:#dc3545;border:none;border-radius:3px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;height:28px;justify-content:center;min-width:28px;padding:4px 8px;transition:background-color .2s}.remove-color-button:hover:not(:disabled){background-color:#c82333}.remove-color-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.color-name-input{background-color:#fff;border:1px solid #007bff;border-radius:3px;font-size:12px;font-weight:500;padding:4px 6px;width:100%}.color-name-input:focus{border-color:#0056b3;box-shadow:0 0 0 .2rem #007bff40;outline:none}.color-code-header{font-size:11px;min-width:140px;text-align:center}.color-code-cell{padding:4px;vertical-align:middle}.color-picker-container{align-items:center;display:flex;gap:6px}.color-picker-input{background:none;border:1px solid #ced4da;border-radius:4px;cursor:pointer;height:32px;padding:2px;width:40px}.color-picker-input:disabled{cursor:not-allowed;opacity:.6}.color-code-text-input{border:1px solid #ced4da;border-radius:3px;flex:1 1;font-family:Courier New,monospace;font-size:11px;min-width:80px;padding:4px 6px;text-transform:uppercase}.color-code-text-input:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.color-code-text-input:disabled{background-color:#e9ecef;cursor:not-allowed}.stock-label{align-items:center;cursor:default;display:flex;font-size:11px;gap:5px;margin:0}.stock-checkbox{cursor:not-allowed;flex-shrink:0;height:12px;opacity:.8;width:12px}.stock-text{font-size:11px;font-weight:500}.stock-text.in-stock{color:#28a745}.stock-text.out-of-stock{color:#dc3545}.pricing-section{background:#fff3cd;border:1px solid #ffeaa7;border-radius:12px;margin-bottom:30px;padding:25px}.pricing-section h3{color:#856404;margin-bottom:20px}.price-input-container{align-items:center;display:flex;position:relative}.currency-symbol{color:#495057;font-size:16px;font-weight:600;left:12px;pointer-events:none;position:absolute;z-index:2}.price-input{padding-left:30px!important}.price-help{color:#856404;display:block;font-size:12px;margin-top:4px}.basic-info-section{background:#fff;border:1px solid #dee2e6;border-radius:12px;margin-bottom:30px;padding:25px}.action-controls{align-items:center;background:#fff;border-top:2px solid #dee2e6;bottom:0;box-shadow:0 -4px 12px #0000001a;display:flex;justify-content:space-between;margin:30px -30px -30px;padding:20px;position:sticky}.changes-indicator{align-items:center;color:#fd7e14;display:flex;font-weight:600;gap:8px}.changes-icon{animation:pulse 2s infinite;color:#fd7e14;font-size:18px}.action-buttons{display:flex;gap:15px}.discard-button,.save-button{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;min-width:140px;padding:12px 24px;transition:all .2s ease}.discard-button{background:#6c757d;color:#fff}.discard-button:hover:not(:disabled){background:#5a6268;transform:translateY(-1px)}.save-button{background:#28a745;color:#fff}.save-button:hover:not(:disabled){background:#218838;transform:translateY(-1px)}.discard-button:disabled,.save-button:disabled{background:#dee2e6;color:#6c757d;cursor:not-allowed}@media (max-width:768px){.top-nav{align-items:center;flex-direction:column;gap:12px;padding:12px 16px;text-align:center}.nav-title{font-size:20px}.product-detail{padding:10px}.product-page-header{align-items:flex-start;flex-direction:column;gap:15px;padding:15px 0}.visual-section{flex-direction:column;padding:15px}.thumbnails-sidebar{flex-direction:row;min-width:auto;overflow-x:auto}.thumbnail-item{height:80px;min-width:80px;width:80px}.main-display{min-height:300px}.product-details-form{padding:15px}.form-grid,.size-groups{grid-template-columns:1fr}.action-controls{align-items:stretch;flex-direction:column;gap:15px}.action-buttons{justify-content:space-between;width:100%}}.main-display-generating{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:flex;justify-content:center;min-height:400px}.generation-progress-container{max-width:400px;padding:40px;text-align:center}.generation-progress-container h3{font-size:24px;font-weight:600;margin-bottom:20px}.progress-bar{background:#ffffff4d;border-radius:4px;height:8px;margin:20px 0;overflow:hidden;width:100%}.progress-fill{background:#4caf50;border-radius:4px;height:100%;transition:width .3s ease}.progress-info{align-items:center;display:flex;font-size:14px;justify-content:space-between;margin-bottom:20px}.progress-message{flex:1 1;opacity:.9;text-align:left}.generation-actions{margin:20px 0}.cancel-generation-btn{background:#ff4757;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease}.cancel-generation-btn:hover{background:#ff3838;transform:translateY(-2px)}.generation-note{font-size:12px;margin-top:20px;opacity:.8}.generation-note p{margin:5px 0}.button-group{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.generate-button,.generate-button-overlay{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:160px;padding:12px 24px;transition:all .3s ease}.generate-button-overlay:hover:not(.disabled),.generate-button:hover:not(.disabled){background:linear-gradient(135deg,#5a67d8,#6b46c1);box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.generate-button-overlay.disabled,.generate-button.disabled{background:#cbd5e0;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.generate-button-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#667eeae6}.load-mannequin-button{align-items:center;background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-bottom:10px;min-width:160px;padding:12px 24px;transition:all .3s ease}.load-mannequin-button:hover:not(.disabled){background:linear-gradient(135deg,#218838,#1e7e34);box-shadow:0 4px 12px #28a74566;transform:translateY(-2px)}.load-mannequin-button.disabled{background:#cbd5e0;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.download-button-overlay{background:#2196f3;border:none;border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;cursor:pointer;display:inline-block;font-size:12px;font-weight:700;padding:8px 12px;transition:background .2s ease}.download-button-overlay:hover{background:#1976d2}.overlay-buttons{display:flex;flex-wrap:wrap;gap:10px}.modal-overlay{background:#000000b3;padding:20px}.modal-content{box-shadow:0 20px 40px #0000004d;max-height:90vh;overflow-y:auto;width:100%}.ngrok-settings-modal{max-width:500px}.modal-header{border-bottom:1px solid #e2e8f0}.modal-header h3{color:#2d3748;font-size:20px;margin:0}.close-modal-btn{background:none;border:none;border-radius:4px;color:#718096;cursor:pointer;font-size:20px;padding:4px;transition:all .2s ease}.close-modal-btn:hover{background:#edf2f7;color:#4a5568}.form-help{color:#718096;display:block;font-size:12px;margin-top:5px}.connection-status{border-radius:6px;font-size:14px;margin:15px 0;padding:12px}.connection-status.success{background:#f0fff4;border:1px solid #9ae6b4;color:#22543d}.connection-status.error{background:#fed7d7;border:1px solid #feb2b2;color:#742a2a}.modal-actions{display:flex;gap:12px;margin:20px 0}.test-button{background:#4299e1;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:14px;padding:10px 16px;transition:all .3s ease}.test-button:hover:not(:disabled){background:#3182ce}.test-button:disabled{background:#cbd5e0;cursor:not-allowed}.instructions{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;margin-top:20px;padding:16px}.instructions h4{color:#4a5568;font-size:14px;margin:0 0 10px}.instructions ol{color:#718096;font-size:13px;margin:0;padding-left:20px}.instructions li{margin:5px 0}.floating-settings{bottom:20px;position:fixed;right:20px;z-index:100}.settings-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;box-shadow:0 4px 12px #667eea66;color:#fff;cursor:pointer;display:flex;font-size:18px;height:50px;justify-content:center;transition:all .3s ease;width:50px}.settings-btn:hover{box-shadow:0 6px 16px #667eea80;transform:scale(1.05)}.product-row-generating{opacity:.6;pointer-events:none}.generation-indicator{align-items:center;background:#667eea1a;border-radius:12px;color:#667eea;display:inline-flex;font-size:11px;font-weight:500;gap:5px;padding:2px 6px}.generation-spinner{animation:spin 1s linear infinite;border:2px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:12px;width:12px}@media (max-width:768px){.button-group{align-items:center;flex-direction:column}.generate-button,.generate-button-overlay{min-width:200px}.overlay-buttons{flex-direction:column}.modal-content{margin:10px;max-width:calc(100vw - 20px)}.generation-progress-container{padding:20px}.floating-settings{bottom:10px;right:10px}.settings-btn{height:45px;width:45px}}.delete-generated-button-overlay{align-items:center;background-color:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;margin-left:10px;padding:8px 16px;transition:all .2s ease}.delete-generated-button-overlay:hover{background-color:#c82333;box-shadow:0 2px 8px #dc35454d;transform:translateY(-1px)}.delete-generated-button-overlay:active{box-shadow:0 1px 4px #dc354533;transform:translateY(0)}.delete-generated-button-overlay:disabled{background-color:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.delete-model-button-overlay{align-items:center;background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;margin-left:10px;padding:8px 16px;transition:all .3s ease}.delete-model-button-overlay:hover:not(.disabled){background:linear-gradient(135deg,#c82333,#bd2130);box-shadow:0 4px 12px #dc354566;transform:translateY(-1px)}.delete-model-button-overlay.disabled{background:#6c757d;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.delete-model-button-overlay:active:not(.disabled){box-shadow:0 2px 6px #dc35454d;transform:translateY(0)}.delete-generated-button{align-items:center;background-color:#dc3545;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;gap:8px;margin-left:15px;padding:12px 20px;transition:all .2s ease}.delete-generated-button:hover{background-color:#c82333;box-shadow:0 4px 12px #dc35454d;transform:translateY(-2px)}.checkbox-cell,.checkbox-column{padding:8px!important;text-align:center;width:40px}.checkbox-cell input[type=checkbox]{cursor:pointer;height:16px;margin:0;transform:scale(1.1);width:16px}.checkbox-cell input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.actions-cell,.actions-column{padding:8px!important;text-align:center;width:80px}.delete-btn{align-items:center;background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:14px;height:35px;justify-content:center;min-width:35px;padding:8px 10px;transition:all .2s ease}.delete-btn:hover:not(:disabled){background:#c82333;box-shadow:0 2px 8px #dc35454d;transform:translateY(-1px)}.delete-btn:disabled{background:#6c757d;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.bulk-delete-btn{align-items:center;background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .3s ease;white-space:nowrap}.bulk-delete-btn:hover:not(:disabled){background:#c82333;box-shadow:0 2px 8px #dc35454d;transform:translateY(-1px)}.bulk-delete-btn:disabled{background:#6c757d;box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.product-row-clickable.selected{background-color:#e3f2fd!important;border-left:4px solid #2196f3}.product-row-clickable.selected:hover{background-color:#e1f5fe!important}.selected-indicator{background:#2196f3;border-radius:12px;color:#fff;font-size:12px;font-weight:500;padding:4px 8px}.actions-cell,.checkbox-cell{cursor:default}@media (max-width:768px){.actions-column,.checkbox-column{width:35px}.actions-cell,.checkbox-cell{padding:6px!important;width:35px}.delete-btn{font-size:12px;height:30px;min-width:30px;padding:6px 8px}.bulk-delete-btn{font-size:12px;padding:6px 12px}.checkbox-cell input[type=checkbox]{height:14px;width:14px}}@media (max-width:480px){.bulk-delete-btn span{display:none}.bulk-delete-btn:after{content:" Delete"}}.endpoint-modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1100}.endpoint-modal{animation:modalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 25px 50px #0006;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.endpoint-modal .modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #e2e8f0;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:24px 28px}.endpoint-modal .modal-header h3{font-size:22px;font-weight:600;margin:0}.endpoint-modal .close-button{align-items:center;background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;padding:8px;transition:all .2s ease;width:32px}.endpoint-modal .close-button:hover{background:#ffffff4d;transform:scale(1.05)}.endpoint-modal .modal-content{padding:28px}.status-indicator{align-items:center;border-radius:8px;display:flex;font-size:14px;font-weight:500;gap:12px;margin:16px 0;padding:12px 16px;transition:all .2s ease}.status-indicator.checking{background:#e6f3ff;border:1px solid #b3d9ff;color:#06c}.status-indicator.success{background:#f0fff4;border:1px solid #9ae6b4;color:#22543d}.status-indicator.error{background:#fed7d7;border:1px solid #feb2b2;color:#742a2a}.status-icon{animation:spin 1s linear infinite;font-size:16px}.status-indicator.error .status-icon,.status-indicator.success .status-icon{animation:none}.status-message{flex:1 1}.endpoint-section{margin-bottom:24px}.endpoint-section label{color:#2d3748;display:block;font-size:16px;margin-bottom:8px}.endpoint-input{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:Courier New,monospace;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.endpoint-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.payload-section{margin-bottom:24px}.payload-section label{color:#2d3748;display:block;font-size:16px;margin-bottom:8px}.payload-display{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#4a5568;font-family:Courier New,monospace;font-size:13px;min-height:300px;padding:16px;resize:vertical;width:100%}.endpoint-modal .modal-actions{display:flex;gap:16px;justify-content:flex-end;padding:0 28px 28px}.cancel-button{background:#e2e8f0;border:none;border-radius:8px;color:#4a5568;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .2s ease}.cancel-button:hover{background:#cbd5e0;transform:translateY(-1px)}.send-button{background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:8px;box-shadow:0 4px 12px #48bb784d;color:#fff;cursor:pointer;font-size:14px;font-weight:500;min-width:140px;padding:12px 24px;transition:all .2s ease}.send-button:hover{background:linear-gradient(135deg,#38a169,#2f855a);box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.send-button:disabled{cursor:not-allowed}.send-button:disabled,.send-button:disabled:hover{background:#a0aec0;box-shadow:none;transform:none}.main-display-image-split{background:#f8f9fa;width:100%}.image-half,.main-display-image-split{display:flex;height:100%;position:relative}.image-half{flex:1 1;flex-direction:column}.original-image-half{border-right:1px solid #dee2e6}.processed-image-half{border-left:1px solid #dee2e6}.image-half-header{align-items:center;background:#fff;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;min-height:50px;padding:10px 15px}.image-half-header h4{color:#495057;font-size:14px;font-weight:600;margin:0}.replace-button-container{align-items:center;display:flex}.replace-button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:11px;font-weight:500;padding:4px 8px;text-decoration:none;transition:background .2s ease}.replace-button:hover{background:#0056b3}.image-container{align-items:center;background:#fff;display:flex;flex:1 1;justify-content:center;padding:20px}.half-image{border-radius:4px;box-shadow:0 2px 8px #0000001a;max-height:100%;max-width:100%;object-fit:contain}.process-button-container{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:10}.process-image-button{background:#28a745;border:none;border-radius:25px;box-shadow:0 4px 12px #28a7454d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-width:150px;padding:12px 20px;transition:all .3s ease;white-space:nowrap}.process-image-button:hover:not(:disabled){background:#218838;box-shadow:0 6px 16px #28a74566;transform:translateY(-2px)}.process-image-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.process-image-button.processing{animation:pulse 2s infinite;background:#007bff}.process-image-button.completed{background:#6f42c1}.process-image-button.error{background:#dc3545}.error-placeholder,.placeholder,.processing-placeholder{align-items:center;color:#6c757d;display:flex;flex-direction:column;height:200px;justify-content:center;text-align:center}.placeholder p{font-size:14px;font-style:italic;margin:0}.processing-placeholder{color:#007bff}.processing-spinner{animation:spin 2s linear infinite;font-size:32px;margin-bottom:10px}.error-placeholder{color:#dc3545}.error-icon{font-size:32px;margin-bottom:10px}.error-placeholder small{font-size:12px;margin-top:10px;opacity:.8}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.thumbnail-item:hover .thumbnail-image,.thumbnail-item:hover .thumbnail-preview{opacity:.8;transform:scale(1.05)}.image-modal-overlay{align-items:center;background-color:#000c;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.image-modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 60px #00000080;cursor:default;margin:20px;max-height:90vh;max-width:700px;overflow:hidden;position:relative}.image-modal-close{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:30px;justify-content:center;position:absolute;right:15px;top:10px;transition:background-color .2s ease;width:30px;z-index:2001}.image-modal-close:hover{background:#000000e6}.image-modal-wrapper{align-items:center;display:flex;justify-content:center;padding:20px}.modal-image{border-radius:4px;height:auto;max-height:calc(90vh - 40px);max-width:100%;object-fit:contain;width:auto}.clickable-image{cursor:pointer;transition:opacity .2s ease}.clickable-image:hover{opacity:.8}.feet-process-section{margin-bottom:20px;text-align:center}.process-feet-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-width:200px;padding:12px 24px;transition:all .3s ease}.process-feet-button:hover:not(:disabled){box-shadow:0 5px 15px #0003;transform:translateY(-1px)}.process-feet-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.process-feet-button.processing{background:linear-gradient(135deg,#ffa726,#ff7043)}.process-feet-button.completed{background:linear-gradient(135deg,#66bb6a,#43a047)}.process-feet-button.error{background:linear-gradient(135deg,#ef5350,#d32f2f)}.feet-processing-error{background-color:#ffebee;border:1px solid #ffcdd2;border-radius:4px;color:#c62828;font-size:14px;margin-top:10px;padding:10px}.reference-images-split-view{display:flex;gap:20px;margin-top:10px}.reference-original-column,.reference-processed-column{flex:1 1}.reference-original-column h4,.reference-processed-column h4{color:#333;font-size:16px;font-weight:600;margin-bottom:15px;text-align:center}.reference-processed-display{align-items:center;background-color:#fafafa;border:2px dashed #ddd;border-radius:8px;display:flex;justify-content:center;min-height:120px}.reference-processed-display .processing-placeholder{color:#666;text-align:center}.reference-processed-display .processing-spinner{animation:spin 1s linear infinite;font-size:24px;margin-bottom:8px}.reference-processed-display .error-placeholder{color:#d32f2f;text-align:center}.reference-processed-display .error-icon{font-size:24px;margin-bottom:8px}.reference-processed-display .placeholder{color:#666;font-size:14px;text-align:center}.reference-processed-display .placeholder p{margin:0;padding:20px}.reference-processed-display img{border-radius:6px;max-height:120px;max-width:100%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.separate-process-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.process-button-group{align-items:center;display:flex;flex-direction:column;gap:10px}.process-feet-button.left-foot{background:linear-gradient(135deg,#4fc3f7,#29b6f6)}.process-feet-button.right-foot{background:linear-gradient(135deg,#ab47bc,#8e24aa)}.process-feet-button.left-foot:hover:not(:disabled){background:linear-gradient(135deg,#29b6f6,#0288d1)}.process-feet-button.right-foot:hover:not(:disabled){background:linear-gradient(135deg,#8e24aa,#7b1fa2)}.feet-processing-error.left{background-color:#e1f5fe;border-color:#4fc3f7;color:#0277bd}.feet-processing-error.right{background-color:#f3e5f5;border-color:#ab47bc;color:#7b1fa2}.processed-upload-overlay{position:absolute;right:5px;top:5px;z-index:10}.processed-replace-button{background:#007bffe6;border:none;border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;cursor:pointer;display:inline-block;font-size:11px;font-weight:500;padding:4px 8px;text-decoration:none;transition:background .2s ease}.processed-replace-button:hover{background:#0056b3f2}.original-upload-overlay{left:5px;position:absolute;top:5px;z-index:10}.original-replace-button{background:#28a745e6;border:none;border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;cursor:pointer;display:inline-block;font-size:11px;font-weight:500;padding:4px 8px;text-decoration:none;transition:background .2s ease}.original-replace-button:hover{background:#218838f2}.replace-button.processed{background:#007bffe6;border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;font-size:12px;font-weight:500;padding:6px 12px;text-decoration:none;transition:background .2s ease}.replace-button.processed:hover{background:#0056b3f2}.manual-upload-option{border:2px dashed #dee2e6;border-radius:6px;margin-top:10px;padding:10px;text-align:center}.manual-upload-button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:12px;font-weight:500;padding:8px 16px;text-decoration:none;transition:background .2s ease}.manual-upload-button:hover{background:#218838}.reference-image-upload,.reference-processed-display{height:100%;position:relative;width:100%}.reference-processed-display .placeholder small{color:#6c757d;display:block;font-size:11px;font-style:italic;margin-top:5px}.reference-image-slot{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;min-height:120px;overflow:hidden;position:relative}.reference-processed-display .error-placeholder,.reference-processed-display .placeholder,.reference-processed-display .processing-placeholder{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:120px;padding:10px;text-align:center}.main-display-tabs{display:flex;flex-direction:column;height:100%}.tab-navigation{background-color:#f8f9fa;border-bottom:2px solid #e9ecef;display:flex;margin-bottom:0}.tab-button{background:#0000;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:12px 24px;transition:all .2s ease}.tab-button:hover{background-color:#e9ecef;color:#495057}.tab-button.active{background-color:#fff;border-bottom-color:#007bff;color:#007bff}.tab-content{background-color:#fff;flex:1 1;min-height:400px;position:relative}.mesh-info-overlay{left:10px}.mesh-controls-overlay,.mesh-info-overlay{background:#000c;border-radius:8px;color:#fff;font-size:12px;padding:10px;position:absolute;top:10px;z-index:1000}.mesh-controls-overlay{right:10px}.mesh-required-message{color:#6c757d;font-style:italic;margin-bottom:15px}.mesh-instruction{background-color:#e7f3ff;border:1px solid #b6d7ff;border-radius:6px;margin-top:15px;padding:15px}.mesh-instruction p{color:#06c;font-size:14px;margin:0}.mesh-required-overlay{background:#ffffffe6;border-radius:4px;color:#6c757d;font-style:italic;padding:10px;text-align:center}.mesh-required-overlay p{font-size:14px;margin:0}.progress-section{margin:15px 0}.progress-section .progress-info{align-items:center;display:flex;font-size:14px;justify-content:space-between;margin-top:8px}.progress-section .progress-message{color:#495057;font-weight:500}.images-tab-content{height:100%;width:100%}.images-visual-section{display:flex;gap:20px;height:100%;min-height:500px}.empty-tab-message{align-items:center;color:#6c757d;display:flex;font-style:italic;height:100%;justify-content:center;text-align:center}.empty-tab-message p{font-size:16px;margin:0}.feet-images-section{height:100%;overflow-y:auto;padding:20px}.feet-images-section .feet-process-section{border-bottom:1px solid #e9ecef;margin-bottom:20px;padding-bottom:20px}.feet-images-section .reference-images-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.feet-images-section .reference-row{margin-bottom:30px}.feet-images-section .reference-row h3{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin-bottom:15px;padding-bottom:8px}.feet-images-section .reference-images-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-top:10px}.feet-images-section .reference-image-slot{min-height:150px}@media (max-width:768px){.feet-images-section .reference-images-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.feet-images-section .reference-images-split-view,.feet-images-section .separate-process-buttons{flex-direction:column;gap:15px}}@media (max-width:480px){.feet-images-section .reference-images-grid{grid-template-columns:1fr}.feet-images-section{padding:15px}}.modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-close-btn:hover:not(:disabled){background:#f0f0f0;color:#333}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.modal-body{flex:1 1;overflow-y:auto;padding:24px}.modal-error{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;color:#856404;font-size:14px;margin-bottom:16px;padding:12px}.modal-loading{font-size:16px;padding:40px}.modal-info,.modal-loading{color:#666;text-align:center}.modal-info{background:#f8f9fa;border-radius:6px;font-size:14px;padding:20px}.modal-select-all{border-bottom:1px solid #eee;margin-bottom:16px;padding-bottom:16px}.modal-checkbox-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:8px}.modal-checkbox-list::-webkit-scrollbar{width:8px}.modal-checkbox-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.modal-checkbox-list::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.modal-checkbox-list::-webkit-scrollbar-thumb:hover{background:#555}.checkbox-label{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:10px;transition:background .2s ease;-webkit-user-select:none;user-select:none}.checkbox-label:hover{background:#f8f9fa}.checkbox-label input[type=checkbox]{accent-color:#7048e8;cursor:pointer;height:18px;width:18px}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.checkbox-label span{color:#333;flex:1 1;font-size:14px}.modal-footer{border-top:1px solid #eee;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.modal-cancel-btn,.modal-confirm-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-cancel-btn{background:#f0f0f0;color:#333}.modal-cancel-btn:hover:not(:disabled){background:#e0e0e0}.modal-confirm-btn{background:#7048e8;color:#fff}.modal-confirm-btn:hover:not(:disabled){background:#5f3dc4;box-shadow:0 2px 8px #7048e84d;transform:translateY(-1px)}.modal-cancel-btn:disabled,.modal-confirm-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}@media (max-width:768px){.modal-content{max-height:90vh;width:95%}.modal-body,.modal-footer,.modal-header{padding:16px}.modal-checkbox-list{max-height:300px}}
/*# sourceMappingURL=main.3f7e9402.css.map*/