body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.reactEasyCrop_Container{align-items:center;bottom:0;cursor:move;display:flex;justify-content:center;left:0;overflow:hidden;position:absolute;right:0;top:0;touch-action:none;-webkit-user-select:none;user-select:none}.reactEasyCrop_Image,.reactEasyCrop_Video{will-change:transform}.reactEasyCrop_Contain{bottom:0;left:0;margin:auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.reactEasyCrop_Cover_Horizontal{height:auto;width:100%}.reactEasyCrop_Cover_Vertical{height:100%;width:auto}.reactEasyCrop_CropArea{border:1px solid #ffffff80;box-shadow:0 0 0 9999em;box-sizing:border-box;color:#00000080;left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%)}.reactEasyCrop_CropAreaRound{border-radius:50%}.reactEasyCrop_CropAreaGrid:before{border:1px solid #ffffff80;border-bottom:0;border-top:0;bottom:0;box-sizing:border-box;content:" ";left:33.33%;position:absolute;right:33.33%;top:0}.reactEasyCrop_CropAreaGrid:after{border:1px solid #ffffff80;border-left:0;border-right:0;bottom:33.33%;box-sizing:border-box;content:" ";left:0;position:absolute;right:0;top:33.33%}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{min-height:100vh}.navigation{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.nav-brand a{color:#fff;font-size:1.5rem;font-weight:700;text-decoration:none}.nav-links{align-items:center;display:flex;gap:2rem}.nav-cart{font-size:1.1rem;position:relative;text-decoration:none}.nav-cart-count{background:#dc3545;border-radius:999px;color:#fff;font-size:.75rem;line-height:1;padding:2px 6px;position:absolute;right:-12px;top:-8px}.nav-links a{border-radius:5px;color:#fff;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s}.nav-links a:hover{background-color:#ffffff1a}.nav-user{align-items:center;display:flex;gap:1rem}.logout-button{background:#fff3;border:1px solid #ffffff4d;border-radius:5px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s}.logout-button:hover{background:#ffffff4d}.page-container{margin:0 auto;max-width:1200px;padding:2rem}.page-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.page-header h1{color:#495057;font-size:2.5rem}.user-info{gap:1rem}.auth-container,.user-info{align-items:center;display:flex}.auth-container{justify-content:center;min-height:80vh;padding:2rem}.auth-card{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0000001a;max-width:400px;padding:2rem;width:100%}.auth-card h2{color:#495057;margin-bottom:2rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group input,.form-group select{border:2px solid #e9ecef;border-radius:5px;font-size:1rem;padding:.75rem;transition:border-color .3s;width:100%}.input-error{background:#fff5f5;border-color:#dc3545!important}.error-text{color:#dc3545;display:inline-block;font-size:.85rem;margin-top:4px}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.form-help{display:block;font-size:.875rem;margin-top:.25rem}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:transform .2s;width:100%}.auth-button:hover:not(:disabled){transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-link{color:#6c757d;margin-top:1rem;text-align:center}.auth-link a{color:#667eea;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;color:#721c24;margin-bottom:1rem;padding:.75rem}.hero-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;color:#fff;margin-bottom:3rem;padding:4rem 0;text-align:center}.hero-section h2{font-size:3rem;margin-bottom:1rem}.hero-section p{font-size:1.2rem;margin-bottom:2rem;opacity:.9}.cta-button{background:#fff;border:none;border-radius:5px;color:#667eea;cursor:pointer;font-size:1.1rem;font-weight:700;padding:1rem 2rem;transition:transform .2s}.cta-button:hover{transform:translateY(-2px)}.features-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:3rem}.feature-card{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;padding:2rem;text-align:center}.feature-card h3{color:#495057;margin-bottom:1rem}.shop-header{align-items:center;flex-wrap:wrap;justify-content:space-between;margin-bottom:2rem}.filters,.shop-header{display:flex;gap:1rem}.filters select{border:2px solid #e9ecef;border-radius:5px;padding:.5rem}.products-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.product-card{border-radius:10px;box-shadow:0 5px 15px #0000001a;transition:transform .2s}.product-image{align-items:center;background:#f8f9fa;color:#6c757d;display:flex;justify-content:center}.product-card h3{color:#495057;padding:1rem 1rem .5rem}.product-price{color:#28a745;font-size:1.2rem;font-weight:700;padding:0 1rem}.add-to-cart{background:#28a745;border:none;color:#fff;cursor:pointer;padding:.75rem;transition:background-color .3s;width:100%}.add-to-cart:hover{background:#218838}.dashboard-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem}.dashboard-card{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;padding:2rem;text-align:center}.dashboard-card h3{color:#495057;margin-bottom:1rem}.dashboard-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;padding:.75rem 1.5rem;transition:transform .2s}.dashboard-button:hover{transform:translateY(-2px)}.recent-activity{border-radius:10px;box-shadow:0 5px 15px #0000001a}.recent-activity h3{margin-bottom:1rem}.activity-item{border-radius:5px;justify-content:space-between}.unauthorized-container{padding:4rem 2rem;text-align:center}.unauthorized-container h1{color:#dc3545;font-size:3rem;margin-bottom:1rem}.unauthorized-container p{color:#6c757d;font-size:1.2rem;margin-bottom:2rem}.unauthorized-actions{display:flex;gap:1rem;justify-content:center}.button{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:5px;color:#fff;padding:.75rem 1.5rem;text-decoration:none;transition:transform .2s}.button:hover{transform:translateY(-2px)}.sample-product-section{background:#f8f9fa;border-radius:8px;margin-bottom:2rem;padding:1.5rem;text-align:center}.sample-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:500;margin-bottom:1rem;padding:1rem 2rem;transition:all .3s ease}.sample-btn:hover{box-shadow:0 4px 15px #28a74566;transform:translateY(-2px)}.sample-help{color:#6c757d;font-size:.9rem;margin:0}.admin-tabs{border-bottom:2px solid #e9ecef;display:flex;gap:1rem;margin-bottom:2rem;padding-bottom:1rem}.tab-button{background:none;border:none;border-radius:8px 8px 0 0;color:#6c757d;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.tab-button:hover{background:#f8f9fa;color:#495057}.tab-button.active{background:#667eea;box-shadow:0 2px 8px #667eea4d;color:#fff}.tab-content{min-height:500px}.admin-stats h2{color:#495057;margin-bottom:2rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:3rem}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;display:flex;gap:1rem;padding:2rem;transition:transform .3s ease}.stat-card:hover{transform:translateY(-5px)}.stat-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem}.stat-content h3{color:#495057;font-size:2rem;margin:0 0 .5rem}.stat-content p{color:#6c757d;font-size:.9rem;margin:0}.quick-actions{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;margin-bottom:2rem;padding:2rem}.quick-actions h3{color:#495057;margin-bottom:1.5rem}.action-buttons{display:flex;flex-wrap:wrap;gap:1rem}.action-button{border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.action-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.action-button.primary:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.action-button.secondary{background:#f8f9fa;border:1px solid #e9ecef;color:#495057}.action-button.secondary:hover{background:#e9ecef}.recent-activity{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;padding:2rem}.recent-activity h3{color:#495057;margin-bottom:1.5rem}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:1rem;padding:1rem}.activity-icon{font-size:1.2rem}.activity-text{color:#495057;flex:1 1}.activity-time{color:#6c757d;font-size:.9rem}.add-product-container{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;padding:2rem}.add-product-container h2{color:#495057;margin-bottom:2rem}.product-form{display:flex;flex-direction:column;gap:2rem}.form-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem}.form-section h3{color:#495057;font-size:1.2rem;margin-bottom:1rem}.form-help{color:#6c757d;font-size:.9rem;font-style:italic}.form-group,.form-help{margin-bottom:1rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group label{color:#495057;display:block;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ced4da;border-radius:6px;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.option-container{background:#fff;border:1px solid #dee2e6;border-radius:8px;margin-bottom:1rem;padding:1rem}.option-header{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.option-name{flex:1 1}.remove-button{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .3s ease}.remove-button:hover{background:#c82333}.remove-button.small{font-size:.8rem;padding:.25rem .5rem}.choices-container{margin-left:1rem}.choice-row{align-items:center;display:flex;gap:1rem;margin-bottom:.5rem}.choice-input{flex:2 1}.price-input{flex:1 1}.add-button{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .3s ease}.add-button:hover{background:#218838}.dropzone{background:#f8f9fa;border:2px dashed #ced4da;border-radius:8px;cursor:pointer;padding:2rem;text-align:center;transition:all .3s ease}.dropzone.active,.dropzone:hover{background:#f0f2ff;border-color:#667eea}.dropzone p{color:#6c757d;font-size:1rem;margin:0}.image-preview{margin-top:1rem}.image-preview h4{color:#495057;margin-bottom:1rem}.image-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.image-item{border-radius:8px;overflow:hidden;position:relative}.preview-image{border-radius:8px;height:120px;object-fit:cover;width:100%}.remove-image-button{align-items:center;background:#dc3545e6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.8rem;height:24px;justify-content:center;position:absolute;right:.5rem;top:.5rem;width:24px}.remove-image-button:hover{background:#dc3545}.form-actions{display:flex;justify-content:center;margin-top:2rem}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:500;padding:1rem 2rem;transition:all .3s ease}.submit-button:hover:not(:disabled){box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.message{border-radius:8px;font-weight:500;margin-bottom:1rem;padding:1rem;text-align:center}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.message.warning{background:#fff3cd;border-color:#ffeaa7;color:#856404}.product-list-container{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;padding:2rem}.list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.list-header h2{color:#495057;margin:0}.refresh-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .3s ease}.refresh-button:hover{background:#5a6268}.no-products{color:#6c757d;padding:3rem;text-align:center}.products-table-container{margin-bottom:2rem;overflow-x:auto}.products-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden;width:100%}.products-table th{background:#f8f9fa;border-bottom:2px solid #e9ecef;color:#495057;font-weight:600;padding:1rem;text-align:left}.products-table td{border-bottom:1px solid #e9ecef;padding:1rem;vertical-align:top}.products-table tr:hover{background:#f8f9fa}.products-table tr.inactive{background:#f8f9fa;opacity:.6}.product-image{width:80px}.no-image,.thumbnail{border-radius:6px;height:60px;width:60px}.no-image{align-items:center;background:#e9ecef;color:#6c757d;display:flex;font-size:.8rem;justify-content:center}.product-title{max-width:200px}.product-title strong{color:#495057;display:block;margin-bottom:.5rem}.description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6c757d;display:-webkit-box;font-size:.9rem;margin:0;overflow:hidden}.final-price{color:#28a745;font-weight:600}.product-options{color:#6c757d;font-size:.9rem;max-width:200px}.discount{font-size:.9rem}.discount-fixed,.discount-percentage{color:#dc3545;font-weight:500}.status{border-radius:20px;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.status.active{background:#d4edda;color:#155724}.status.inactive{background:#f8d7da;color:#721c24}.actions{display:flex;flex-direction:column;gap:.5rem}.delete-button,.status-button{border:none;border-radius:6px;cursor:pointer;font-size:.8rem;padding:.5rem .75rem;transition:all .3s ease}.status-button.activate{background:#28a745;color:#fff}.status-button.activate:hover{background:#218838}.status-button.deactivate{background:#ffc107;color:#212529}.status-button.deactivate:hover{background:#e0a800}.delete-button{background:#dc3545;color:#fff}.delete-button:hover{background:#c82333}.products-summary{background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-around;padding:1.5rem}.products-summary p{color:#495057;margin:0}.products-summary strong{color:#667eea}.loading{color:#6c757d;font-size:1.1rem;padding:3rem;text-align:center}.category-filter{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.category-btn{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#495057;cursor:pointer;padding:.75rem 1.5rem;transition:all .3s ease}.category-btn:hover{background:#e9ecef}.category-btn.active{background:#667eea;border-color:#667eea;color:#fff}.products-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.product-card{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;overflow:hidden;transition:transform .3s ease}.product-card:hover{transform:translateY(-5px)}.product-image{height:200px;overflow:hidden}.product-thumbnail{height:100%;object-fit:cover;width:100%}.no-product-image{align-items:center;background:#f8f9fa;color:#6c757d;display:flex;height:100%;justify-content:center;width:100%}.product-info{padding:1.5rem}.product-title{color:#495057;font-size:1.2rem;margin-bottom:.5rem}.product-description{color:#6c757d;line-height:1.5;margin-bottom:1rem}.product-category{background:#e9ecef;border-radius:20px;color:#495057;display:inline-block;font-size:.8rem;margin-bottom:1rem;padding:.25rem .75rem}.product-price{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.price{color:#28a745;font-size:1.5rem;font-weight:600}.original-price{color:#6c757d;text-decoration:line-through}.product-options{margin-bottom:1.5rem}.options-label{color:#495057;font-size:.9rem;margin-bottom:.5rem}.option-tag{background:#f0f2ff;border-radius:20px;color:#667eea;display:inline-block;font-size:.8rem;margin-bottom:.5rem;margin-right:.5rem;padding:.25rem .75rem}.product-actions{margin-top:1rem}.shop-now-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.shop-now-btn:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.login-required{background:#f8f9fa;border-radius:8px;padding:1rem;text-align:center}.login-required p{color:#6c757d;margin-bottom:.5rem}.login-link{color:#667eea;font-weight:500;text-decoration:none}.login-link:hover{text-decoration:underline}.product-detail-container{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.back-btn{background:none;border:none;color:#667eea;cursor:pointer;font-size:1rem;margin-bottom:1rem;padding:0}.back-btn:hover{text-decoration:underline}.product-images{position:static}.image-gallery{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;overflow:hidden}.main-image-wrapper{position:relative}.main-image{height:400px;object-fit:cover;touch-action:pan-y;width:100%}.img-nav{align-items:center;background:#ffffffe6;border:1px solid #e2e8f0;border-radius:999px;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:36px}.img-nav.left{left:8px}.img-nav.right{right:8px}.thumbnail-images{display:flex;gap:.5rem;overflow-x:auto;padding:1rem}.thumbnail{border-radius:8px;cursor:pointer;height:80px;object-fit:cover;transition:opacity .3s ease;width:80px}.thumbnail.active{outline:2px solid #667eea}.thumbnail:hover{opacity:.8}.product-header{margin-bottom:1.5rem}.product-header h2{color:#495057;margin-bottom:.5rem}.category-badge{background:#667eea;border-radius:20px;color:#fff;display:inline-block;font-size:.8rem;padding:.25rem .75rem}.price-section{background:#f8f9fa;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.current-price{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.price-label{color:#495057;font-size:1rem}.price-amount{color:#28a745;font-size:2rem;font-weight:600}.discount-info{align-items:center;display:flex;gap:1rem}.discount-badge{background:#dc3545;border-radius:20px;color:#fff;font-size:.8rem;padding:.25rem .75rem}.product-options{margin-bottom:2rem}.product-options h3{color:#495057;margin-bottom:1rem}.option-group{margin-bottom:1.5rem}.option-label{color:#495057;display:block;font-weight:500;margin-bottom:.5rem}.option-choices{display:flex;flex-direction:column;gap:.5rem}.choice-radio{align-items:center;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .3s ease}.choice-radio:hover{background:#f8f9fa;border-color:#667eea}.choice-radio input[type=radio]{margin:0}.choice-text{color:#495057}.choice-price{color:#28a745;font-weight:500;margin-left:.5rem}.photo-upload-modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-overlay{background:#00000080;bottom:0;left:0;position:absolute;right:0;top:0}.modal-content{background:#fff;border-radius:12px;max-height:90vh;max-width:90vw;overflow-y:auto;position:relative;z-index:1001}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#495057;margin:0}.close-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:1.5rem}.close-btn:hover{color:#495057}.modal-body{padding:1.5rem}.upload-section{margin-bottom:2rem}.upload-section h3{color:#495057;font-size:1.1rem;margin-bottom:1rem}.multiple-upload-section{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem;text-align:center}.multiple-upload-btn{background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:500;margin-bottom:1rem;padding:1rem 2rem;transition:all .3s ease}.multiple-upload-btn:hover{box-shadow:0 4px 15px #007bff66;transform:translateY(-2px)}.upload-help{color:#6c757d;font-size:.9rem;margin-bottom:1rem}.photo-upload-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem}.photo-slot{aspect-ratio:auto;border-radius:8px;height:110px;overflow:hidden}.photo-upload-slot{align-items:center;background:#f8f9fa;border:2px dashed #e9ecef;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;transition:all .3s ease;width:100%}.small-upload-tile{padding:10px}.small-upload-label{align-items:center;display:flex;flex-direction:column;gap:6px}.small-upload-icon{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 1px #0000000a;display:inline-flex;height:28px;justify-content:center;width:28px}.small-upload-icon .icon{font-size:14px}.small-upload-icon .plus{color:#64748b;font-size:10px;margin-left:4px}.small-slot-label{color:#475569;font-size:11px}.slot-preview-link{background:#ffffffe6;border-radius:4px;bottom:8px;color:#2563eb;font-size:12px;left:8px;padding:2px 6px;position:absolute}.fixed-preview-modal{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:3000}.fixed-preview-content{background:#fff;border-radius:10px;max-width:960px;overflow:hidden;position:relative;width:100%}.fixed-preview-actions{display:flex;justify-content:center;padding:10px 12px 16px}.fixed-preview-edit{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:8px 14px}.fixed-preview-close{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;padding:4px 8px;position:absolute;right:10px;top:10px}.fixed-preview-image{height:80vh;object-fit:contain;width:100%}.photo-upload-slot:hover{background:#f0f2ff;border-color:#667eea}.upload-icon{margin-bottom:.5rem;position:relative}.upload-icon .icon{color:#6c757d;font-size:2rem}.upload-icon .plus{align-items:center;background:#dc3545;border-radius:50%;bottom:-.5rem;color:#fff;display:flex;font-size:.8rem;font-weight:700;height:20px;justify-content:center;position:absolute;right:-.5rem;width:20px}.slot-label{color:#6c757d;font-size:.8rem;text-align:center}.photo-preview{align-items:center;background:#fff;display:flex;height:100%;justify-content:center;position:relative;width:100%}.slot-image{background:#fff;border-radius:8px;height:110px;object-fit:contain;width:100%}.photo-actions{display:flex;gap:.25rem;position:absolute;right:.25rem;top:.25rem}.remove-slot-btn{align-items:center;background:#dc3545e6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.7rem;height:20px;justify-content:center;width:20px}.photobox-instructions{margin-bottom:2rem}.instruction-box{background:#e8f5e8;border:1px solid #c3e6c3;border-radius:8px;margin-bottom:1rem;padding:1rem}.instruction-box p{color:#2d5a2d;font-size:.9rem;margin:0}.cropping-section{margin-bottom:2rem}.cropping-section h3{color:#495057;margin-bottom:1rem}.crop-container{background:#f8f9fa;padding:1rem}.crop-area{margin-bottom:1rem}.crop-controls{gap:.3rem;margin-top:.4rem}.control-btn,.crop-controls{align-items:center;display:flex;justify-content:center}.control-btn{background:#fff;border:1px solid #e9ecef;border-radius:6px;cursor:pointer;font-size:.9rem;height:36px;transition:all .3s ease;width:36px}.control-btn:hover{background:#f8f9fa;border-color:#667eea}.control-btn.confirm{background:#28a745;border-color:#28a745;color:#fff}.control-btn.confirm:hover{background:#218838}.control-btn.cancel{background:#dc3545;border-color:#dc3545;color:#fff}.control-btn.cancel:hover{background:#c82333}.control-btn.reset{background:#6c757d;border-color:#6c757d;color:#fff}.control-btn.reset:hover{background:#5a6268}.control-btn:disabled{cursor:not-allowed;opacity:.6}.crop-image{max-height:400px}.crop-actions{margin-top:1rem;text-align:center}.crop-btn{background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem}.crop-btn:disabled{cursor:not-allowed;opacity:.6}.preview-section{margin-bottom:2rem}.preview-section h3{color:#495057;margin-bottom:1rem}.album-preview{background:#f8f9fa;border-radius:8px;padding:2rem;text-align:center}.flipbox-preview{align-items:center;display:flex;flex-direction:column;gap:1rem}.flipbox-box{filter:drop-shadow(0 12px 24px rgba(0,0,0,.25));height:240px;perspective:1200px;position:relative;width:320px}.flipbox-wood{background:linear-gradient(135deg,#6b3f22,#8b5a2b);border-radius:10px;box-shadow:inset 0 0 0 12px #5a331a,inset 0 0 0 20px #00000026;inset:0;position:absolute}.flipbox-viewport{background:#111;border-radius:6px;bottom:12px;left:12px;overflow:hidden;position:absolute;right:12px;top:12px}.flip-panel{align-items:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;inset:0;justify-content:center;position:absolute}.flip-panel img{height:100%;object-fit:contain;width:100%}.flip-current{background:#000;transform-origin:center bottom}.flip-next{background:#000;transform-origin:center top}.flipbox-box.is-flipping .flip-current{animation:slide-up .45s ease forwards}.flipbox-box.is-flipping .flip-next{animation:slide-down .45s ease forwards}@keyframes slide-up{0%{opacity:1;transform:translateY(0)}to{opacity:.9;transform:translateY(-100%)}}@keyframes slide-down{0%{opacity:.9;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.flipbox-crank{cursor:pointer;height:28px;position:absolute;right:-32px;top:50%;transform:translateY(-50%);width:28px}.crank-stick{background:#704225;border-radius:2px;height:12px;left:8px;position:absolute;top:8px;transform-origin:left center;width:12px}.crank-knob{background:radial-gradient(circle at 30% 30%,#e1b07a,#c58b4e);border-radius:50%;box-shadow:0 2px 4px #0000004d;height:20px;position:absolute;right:0;top:4px;width:20px}.flipbox-crank.spin .crank-stick{animation:crank-spin .6s linear infinite}@keyframes crank-spin{0%{transform:rotate(0deg) translateX(0)}to{transform:rotate(1turn) translateX(0)}}.album-controls.below{margin-top:.5rem}.preview-description{color:#6c757d;font-style:italic;margin-bottom:1rem;text-align:center}.album-info{margin-top:1rem;text-align:center}.album-info p{color:#6c757d;margin:.25rem 0}.album-instruction{color:#28a745;font-size:.9rem;font-weight:500}.album-frame{align-items:center;background:#8b4513;border-radius:8px;display:flex;height:300px;justify-content:center;margin:0 auto 1rem;overflow:hidden;position:relative;width:300px}.album-photo{height:100%;object-fit:cover;width:100%}.album-controls{display:flex;gap:1rem;justify-content:center;margin-top:1rem}.pause-btn,.play-btn{align-items:center;background:#495057;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:40px;justify-content:center;width:40px}.pause-btn:hover,.play-btn:hover{background:#6c757d}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.cancel-btn{background:#6c757d}.add-to-cart-btn,.cancel-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;padding:.75rem 1.5rem}.add-to-cart-btn{background:#dc3545;font-weight:500}.add-to-cart-btn:disabled{cursor:not-allowed;opacity:.6}.crop-modal{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.crop-modal-overlay{background:#000000b3;bottom:0;left:0;position:absolute;right:0;top:0}.crop-modal-content{background:#fff;border-radius:12px;max-height:70vh;max-width:60vw;overflow:hidden;position:relative;width:500px;z-index:2001}.crop-modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:.75rem 1rem}.crop-modal-header h3{color:#495057;font-size:1.1rem;margin:0}.crop-modal-body{display:flex;flex-direction:column;padding:.5rem}.crop-instructions{background:#f8f9fa;border-radius:8px;margin:.5rem 0;padding:.5rem}.crop-instructions p{color:#495057;font-weight:500;margin:0 0 .5rem}.crop-instructions ul{margin:0;padding-left:1.5rem}.crop-instructions li{color:#6c757d;margin-bottom:.25rem}.zoom-controls{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0;padding:.4rem;position:relative;text-align:center;z-index:10}.zoom-range{color:#6c757d;font-size:.8rem;font-weight:500}.zoom-controls label{color:#495057;display:block;font-weight:500;margin-bottom:.5rem}.zoom-slider{-webkit-appearance:none;background:#e9ecef;border-radius:3px;height:6px;max-width:300px;outline:none;width:100%}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#007bff;border-radius:50%;box-shadow:0 2px 5px #0003;cursor:pointer;height:20px;width:20px}.zoom-slider::-moz-range-thumb{background:#007bff;border:none;border-radius:50%;box-shadow:0 2px 5px #0003;cursor:pointer;height:20px;width:20px}.image-container{transform-origin:center;transition:transform .3s ease}.crop-area{align-items:center;background:#000;border-radius:8px;display:flex;justify-content:center;margin-bottom:.5rem;max-height:500px;min-height:300px;overflow:visible;padding:.75rem;position:relative}.crop-image{border-radius:4px;display:block;object-fit:contain;width:auto}.crop-area .reactCrop,.crop-image{height:auto;max-height:none;max-width:100%}.crop-area .reactCrop{overflow:visible;position:relative}.photo-cropper-modal{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:2000}.cropper-overlay{background:#000c;height:100%;left:0;position:absolute;top:0;width:100%}.cropper-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-height:90vh;max-width:90vw;overflow-y:auto;position:relative;width:600px;z-index:2001}.cropper-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.cropper-header h3{color:#495057;font-size:1.1rem;margin:0}.cropper-body{display:flex;flex-direction:column;gap:1rem;padding:1rem}.crop-container{background:#000;border-radius:8px}.crop-container,.crop-wrapper{overflow:hidden;position:relative}.crop-wrapper{height:400px;width:100%}.crop-wrapper .reactEasyCrop__crop-area{border:2px dashed #fff;box-shadow:0 0 0 9999px #00000080}.crop-wrapper .reactEasyCrop__image{max-height:100%;max-width:100%;object-fit:contain}.fixed-crop-highlight{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.crop-window{background:#0000004d;border:3px dashed #fff;box-shadow:0 0 20px #000c;height:80%;position:relative;width:80%}.crop-window-content{background:#000c;border-radius:4px;color:#fff;font-size:12px;font-weight:700;left:50%;padding:8px 12px;position:absolute;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.crop-dimensions{color:#fff;text-shadow:1px 1px 2px #000c}.cropper-controls{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-top:.5rem}.cropper-controls .control-btn{background:#fff;border:1px solid #e9ecef;border-radius:6px;cursor:pointer;font-size:.9rem;min-width:80px;padding:.5rem 1rem;transition:all .3s ease}.cropper-controls .control-btn:hover{background:#f8f9fa;border-color:#667eea}.cropper-controls .control-btn.confirm{background:#28a745;border-color:#28a745;color:#fff}.cropper-controls .control-btn.confirm:hover{background:#218838}.cropper-controls .control-btn.cancel{background:#dc3545;border-color:#dc3545;color:#fff}.cropper-controls .control-btn.cancel:hover{background:#c82333}.cropper-controls .control-btn.reset{background:#6c757d;border-color:#6c757d;color:#fff}.cropper-controls .control-btn.reset:hover{background:#5a6268}.cropper-controls .control-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.product-detail-container{gap:2rem;grid-template-columns:1fr}.product-images{top:0}.main-image{background:#000;height:55svh;object-fit:contain}.products-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.modal-content{margin:1rem;max-width:95vw}.photo-upload-grid{grid-template-columns:repeat(2,1fr)}.album-frame{height:250px;width:250px}}.test-section{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;margin-bottom:2rem;padding:2rem}.test-section h2{color:#495057;margin-bottom:1rem}.test-section p{color:#6c757d;margin-bottom:1.5rem}.test-result{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;margin-bottom:2rem;padding:2rem}.result-display{background:#f8f9fa;border-left:4px solid #667eea;border-radius:5px;font-family:monospace;padding:1rem;white-space:pre-wrap}.test-info{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000001a;padding:2rem}.test-info h3{color:#495057;margin-bottom:1rem}.test-info ul{color:#6c757d;margin-bottom:1rem}.test-info li{margin-bottom:.5rem}@media (max-width:768px){.navigation{flex-direction:column;gap:1rem}.nav-links{flex-wrap:wrap;justify-content:center}.page-header{flex-direction:column;gap:1rem;text-align:center}.hero-section h2{font-size:2rem}.shop-header{align-items:stretch;flex-direction:column}.filters{justify-content:center}}
/*# sourceMappingURL=main.240a1103.css.map*/