*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}button,.btn,.action-btn,.style-btn,.tool-btn{min-height:44px;min-width:44px}.custom-element{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:move;pointer-events:auto !important;position:absolute;z-index:10;will-change:transform;transform:translateZ(0)}.resize-handle,.rotate-handle,.delete-handle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none !important;-webkit-tap-highlight-color:transparent;pointer-events:auto !important;position:absolute;z-index:1000;will-change:transform;transform:translateZ(0)}input,select,textarea{font-size:16px}.customizer-modal,.modal-content,.customization-layer{touch-action:pan-y pan-x}.custom-element.selected{touch-action:manipulation}.custom-element:active,.resize-handle:active,.rotate-handle:active{transform:translateZ(0);will-change:transform}.custom-element.selected{outline:2px dashed #667eea;outline-offset:2px;transform:translateZ(0)}.canvas-container{transform:translateZ(0);will-change:transform}.customization-layer{transform:translateZ(0);will-change:contents}@media (max-width: 768px){.color-options{overflow-x:auto !important}.product-thumbnail{overflow:unset !important}.custom-element,.custom-element.selected,.resize-handle,.rotate-handle,.delete-handle{transform:translateZ(0)}.custom-element.selected .resize-handle{width:16px !important;height:16px !important;border:2px solid #fff !important;background:#667eea !important;border-radius:3px !important;box-shadow:0 2px 8px rgba(0,0,0,.3) !important;opacity:1 !important;visibility:visible !important;display:block !important;pointer-events:auto !important;touch-action:none !important;z-index:1001 !important;will-change:transform !important}.custom-element.selected .rotate-handle{width:28px !important;height:28px !important;border:3px solid #fff !important;background:#e74c3c !important;border-radius:50% !important;box-shadow:0 2px 8px rgba(0,0,0,.4) !important;opacity:1 !important;visibility:visible !important;display:block !important;pointer-events:auto !important;touch-action:none !important;z-index:1001 !important;top:-34px !important;will-change:transform !important}.custom-element.selected .delete-handle{width:32px !important;height:32px !important;border:3px solid #fff !important;background:#e74c3c !important;border-radius:50% !important;box-shadow:0 2px 8px rgba(0,0,0,.3) !important;font-size:20px !important;font-weight:bold !important;opacity:1 !important;visibility:visible !important;display:flex !important;align-items:center !important;justify-content:center !important;pointer-events:auto !important;touch-action:none !important;z-index:1001 !important;top:-16px !important;right:-16px !important;will-change:transform !important}.canvas-container{-webkit-overflow-scrolling:touch;overflow:visible}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,select{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.custom-logo{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (max-width: 768px){.custom-element{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto !important;touch-action:none !important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.custom-element.selected{will-change:transform;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);outline:2px dashed #667eea !important;outline-offset:2px !important}.custom-element .resize-handle,.custom-element .rotate-handle,.custom-element .delete-handle{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:auto !important;touch-action:none !important;opacity:0;transition:opacity .15s ease;will-change:opacity,transform}.custom-element.selected .resize-handle,.custom-element.selected .rotate-handle,.custom-element.selected .delete-handle{opacity:1 !important;display:block !important;visibility:visible !important}.customizer-modal,.modal-content,.modal-body{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}}html,body{touch-action:pan-y pan-x}@media (max-width: 768px){input,select,textarea{font-size:16px !important}}body{font-family:"Arial",sans-serif;line-height:1.6;color:#333}.product-customizer-trigger{margin:20px 0}.customize-btn{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:white;border:none;padding:15px 30px;font-size:16px;font-weight:bold;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:10px}.customize-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(102,126,234,.3)}.customizer-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);backdrop-filter:blur(5px)}.modal-content{background-color:#fff;margin:2% auto;width:95%;max-width:1400px;height:90vh;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3);display:flex;flex-direction:column}.modal-header{background:#0597d4;color:white;padding:15px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #34495e;position:relative;z-index:10}.header-left{display:flex;align-items:center;gap:10px;font-weight:bold;font-size:16px}.header-right{display:flex;gap:10px}.header-btn{background:#8cc641;border:1px solid rgba(255,255,255,.2);color:white;padding:3px 40px;border-radius:6px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:5px}.header-btn:hover{transform:translateY(2px)}.header-btn:disabled{cursor:not-allowed;opacity:.7 !important}.header-btn .fa-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.close-btn{background:#e74c3c;border:none;color:white;padding:8px 15px;border-radius:6px;cursor:pointer;transition:all .3s ease}.close-btn:hover{background:#c0392b}.modal-body{display:flex;flex:1;overflow:hidden;height:calc(100vh - 120px);position:relative}.product-display-panel{flex:1;background:#f8f9fa;padding:15px;display:flex;flex-direction:column;min-height:100%;overflow-y:auto;width:100%;padding-right:370px}.product-main-area{display:flex;gap:20px;flex:1}.product-tabs{display:flex;gap:10px;margin-bottom:20px}.tab-btn{background:white;border:2px solid #e9ecef;padding:10px 20px;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500}.tab-btn.active{background:#667eea;color:white;border-color:#667eea}.tab-btn:hover{border-color:#667eea}.color-options{display:flex;flex-direction:column;gap:10px;padding:15px;background:white;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.1);min-width:100px;max-width:120px;height:fit-content;overflow:visible;z-index:99999}.color-options:empty::before{content:"Loading thumbnails...";display:flex;align-items:center;justify-content:center;width:100%;color:#6c757d;font-style:italic}.color-swatch{width:40px;height:40px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .3s ease}.color-swatch.active{border-color:#667eea;transform:scale(1.1)}.color-swatch:hover{transform:scale(1.05)}.product-thumbnail{width:70px;height:85px;border-radius:10px;cursor:pointer;border:2px solid transparent;transition:all .3s ease;overflow:hidden;background:white;box-shadow:0 2px 8px rgba(0,0,0,.1);display:flex;flex-direction:column;align-items:center;padding:6px;position:relative}.product-thumbnail img{width:100%;height:55px;object-fit:cover;border-radius:6px;margin-bottom:4px;transition:transform .3s ease}.product-thumbnail .variation-label{font-size:9px;text-align:center;color:#495057;font-weight:600;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;text-transform:capitalize}.product-thumbnail.active{border-color:#17a7d4;background:#f0f4ff;transform:translateY(-3px);box-shadow:0 6px 20px rgba(102,126,234,.4)}.product-thumbnail.active .variation-label{color:#17a7d4;font-weight:bold}.product-thumbnail.active img{transform:scale(1.05)}.product-thumbnail:hover{transform:translateY(-2px);box-shadow:0 5px 18px rgba(0,0,0,.25)}.product-thumbnail:hover img{transform:scale(1.02)}.product-name{margin-bottom:15px;text-align:center}.product-name h3{font-size:18px;color:#333;margin:0;font-weight:600}.product-canvas{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;min-height:450px}.canvas-container{position:relative;padding:10px;margin-bottom:15px;width:100%;height:450px;display:flex;align-items:center;justify-content:center;overflow:visible;border-radius:12px;z-index:1}#product-image{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:8px;display:block;object-fit:contain;box-shadow:0 2px 12px rgba(0,0,0,.1);transition:transform .3s ease;border-radius:50px}.customization-layer{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:2}.custom-element{position:absolute;cursor:move;border:2px dashed transparent;transition:border-color .2s ease}.custom-element.selected{border-color:#667eea}.custom-text.selected{background-color:rgba(102,126,234,.1);border:2px dashed #667eea}.custom-element .resize-handle{position:absolute;background:white;border:1px solid #333;border-radius:0;display:none;z-index:10;box-shadow:0 1px 3px rgba(0,0,0,.2)}.custom-element.selected .resize-handle{display:block}.custom-element .resize-handle.top-left{width:8px;height:8px;left:-4px;top:-4px;cursor:nw-resize;border-radius:1px;background:white;border:1px solid #333}.custom-element .resize-handle.top-right{width:8px;height:8px;right:-4px;top:-4px;cursor:ne-resize;border-radius:1px;background:white;border:1px solid #333}.custom-element .resize-handle.bottom-left{width:8px;height:8px;left:-4px;bottom:-4px;cursor:sw-resize;border-radius:1px;background:white;border:1px solid #333}.custom-element .resize-handle.bottom-right{width:8px;height:8px;right:-4px;bottom:-4px;cursor:se-resize;border-radius:1px;background:white;border:1px solid #333}.resize-handle.top,.resize-handle.bottom,.resize-handle.left,.resize-handle.right,.custom-element .resize-handle.top,.custom-element .resize-handle.bottom,.custom-element .resize-handle.left,.custom-element .resize-handle.right,.custom-element.selected .resize-handle.top,.custom-element.selected .resize-handle.bottom,.custom-element.selected .resize-handle.left,.custom-element.selected .resize-handle.right{display:none !important;visibility:hidden !important;pointer-events:none !important;opacity:0 !important;width:0 !important;height:0 !important}.resize-handle.center,.custom-element .resize-handle.center,.custom-element.selected .resize-handle.center{display:none !important;visibility:hidden !important;pointer-events:none !important;opacity:0 !important;width:0 !important;height:0 !important}.custom-element .rotate-handle{position:absolute;width:18px;height:18px;background:#e74c3c;border:2px solid white;border-radius:50%;top:-25px;left:50%;transform:translateX(-50%);cursor:grab;display:none;box-shadow:0 1px 3px rgba(0,0,0,.2)}.custom-element.selected .rotate-handle{display:block}.custom-element .rotate-handle:active{cursor:grabbing}.custom-element .rotate-handle::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;border:2px solid #333;border-radius:50%;border-top:transparent;border-right:transparent}.custom-element .rotate-handle::after{content:"";position:absolute;top:6px;left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:4px solid #333;transform:rotate(-45deg)}.text-style-btn.active,#bold-btn.active,#italic-btn.active,#underline-btn.active{background-color:#17a7d4 !important;color:white !important;border-color:#17a7d4 !important}.custom-text{font-family:Arial,sans-serif;font-size:24px;color:#000}.custom-logo{max-width:100px;max-height:100px;border-radius:4px;mix-blend-mode:multiply;background:transparent !important;pointer-events:none !important;user-select:none !important;-webkit-user-select:none !important;-webkit-touch-callout:none !important;touch-action:none !important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;will-change:transform,width,height;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.canvas-tools{display:none;flex-direction:column;gap:8px;background:rgba(255,255,255,.95);padding:10px;border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.15);border:1px solid #e9ecef;position:fixed;right:28%;top:24%;width:fit-content;z-index:5;max-height:calc(100% - 30px);overflow:visible}.tool-btn{background:#f8f9fa;border:1px solid #17a7d4;padding:8px;border-radius:8px;cursor:pointer;transition:all .3s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#17a7d4}.tool-btn:hover{background:#b8e6f5;color:white;border-color:#b8e6f5;transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.3)}.tool-btn.active{background:#17a7d4;color:white;border-color:#17a7d4;transform:translateY(-1px)}.customization-panel{flex:1;background:#f3fcff;border-left:1px solid #e9ecef;display:flex;flex-direction:column;position:absolute;right:0;top:0;bottom:0;width:350px;z-index:3}.customization-tabs{display:flex;border-bottom:1px solid #e9ecef}.custom-tab{flex:1;background:none;border:none;padding:15px 10px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;color:#6c757d}.custom-tab.active{background:#667eea;color:white}.custom-tab:hover{background:#f8f9fa}.custom-tab.active:hover{background:#667eea}.design-header{text-align:center}.design-header h3{font-size:28px;color:#0e5b79;margin:0}.action-button-row{display:flex;gap:20px;justify-content:center;height:10%}.action-btn{flex:1;max-width:130px;min-height:60px;background:#fff;border:1px solid #17a7d4;padding:10px 15px;border-radius:6px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:500;color:#17a7d4;text-align:center;box-shadow:none}.action-btn i{font-size:16px;margin-bottom:1px;color:black}.action-btn:hover{opacity:.8}.action-btn.text-btn{background:#fff;border-color:#17a7d4;color:#17a7d4;border-radius:0px !important}.action-btn.upload-btn{background:#fff;border-color:#17a7d4;color:#17a7d4;border-radius:0px !important}.action-btn.active{background:#d3f1ff;border-color:#17a7d4;color:#17a7d4}.action-btn.active:hover{opacity:.9}.tab-content{display:none;flex:1;overflow-y:auto}.tab-content.active{display:block}.text-controls{display:flex;flex-direction:column;padding:5px 10px}.control-group{display:flex;flex-direction:column;gap:8px}.control-row{display:flex;gap:15px}.control-row .control-group{flex:1}label{font-weight:600;color:#666;font-size:15px;margin-bottom:8px}textarea,select,input[type="range"]{border:2px solid #17a7d4;border-radius:8px;font-size:14px;transition:all .3s ease;background:#fff}textarea:focus,select:focus{outline:none;border-color:#17a7d4;box-shadow:0 0 0 3px rgba(23,167,212,.1)}textarea{resize:vertical;font-family:inherit}input[type="color"]{width:60px;height:45px;border:2px solid #17a7d4;border-radius:6px;cursor:pointer}#font-size-value{font-size:12px;color:#6c757d;margin-left:10px}.text-style-options{display:flex;gap:12px;justify-content:flex-start}.style-btn{background:#fff;border:2px solid #17a7d4;padding:8px 12px;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:45px;height:40px;font-size:16px;color:#17a7d4;font-weight:600}.style-btn:hover{background:#b8e6f5;transform:translateY(-1px)}.style-btn.active{background:#17a7d4;border-color:#17a7d4;color:white}.add-text-btn{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:white;border:none;padding:12px 20px;border-radius:8px;font-weight:bold;cursor:pointer;transition:all .3s ease}.add-text-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(40,167,69,.3)}.upload-section{display:flex;flex-direction:column;gap:20px}.upload-area{border:2px dashed #dee2e6;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background:#f8f9fa;margin-top:10px}.upload-area:hover{border-color:#667eea;background:#f0f4ff}.upload-area.dragover{border-color:#667eea;background:#e3f2fd}.upload-area i{font-size:48px;color:#6c757d;margin-bottom:15px}.browse-btn{background:#0597d4;color:white;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;margin-top:10px;transition:all .3s ease}.browse-btn:hover{transform:translateY(2px)}.upload-btn{background:#28a745;color:white;border:none;padding:12px 30px;border-radius:8px;font-weight:bold;cursor:pointer;transition:all .3s ease}.logo-preview{background:#f8f9fa;border-radius:12px;padding:20px;text-align:center}#preview-image{max-width:150px;max-height:150px;border-radius:8px;margin-bottom:15px}.logo-actions{display:flex;flex-direction:column;gap:15px}.action-btn{background:#667eea;color:white;border:none;padding:12px 20px;border-radius:8px;cursor:pointer;transition:all .3s ease}.action-btn:hover{transform:translateY(2px)}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.checkbox-label input[type="checkbox"]{width:18px;height:18px}.terms-section{font-size:12px;color:#6c757d;line-height:1.5}.terms-link{color:#667eea;text-decoration:none}.terms-link:hover{text-decoration:underline}.graphics-categories{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.category-btn{background:#f8f9fa;border:1px solid #dee2e6;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .3s ease;font-size:14px}.category-btn.active{background:#667eea;color:white}.category-btn:hover{border-color:#667eea}.graphics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:15px;max-height:400px;overflow-y:auto}.graphic-item{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;padding:10px;cursor:pointer;transition:all .3s ease;text-align:center}.graphic-item:hover{border-color:#667eea;transform:translateY(-2px)}.graphic-item img{width:100%;height:60px;object-fit:contain}.action-buttons{padding:20px;border-top:1px solid #e9ecef}.cost-btn{background:#ffa403;color:white;border:none;padding:15px 30px;border-radius:8px;font-weight:bold;font-size:16px;cursor:pointer;width:100%;transition:all .3s ease}.cost-btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(40,167,69,.3)}@media (max-width: 1200px){.modal-content{width:98%;max-width:none}}@media (max-width: 992px){.modal-body{flex-direction:column}.product-display-panel{padding-right:0}.customization-panel{position:unset !important;width:100% !important}.cost-inquiry-form{margin-top:170px !important}}@media (max-width: 768px){.product-main-area{flex-direction:column !important}.color-options{flex-direction:row !important;min-width:100% !important;box-shadow:none !important;background:none !important}.modal-content{width:100%;height:100vh;margin:0;border-radius:0}.modal-header{padding:8px 15px;flex-wrap:wrap;gap:8px}.header-left{font-size:14px;flex:1;min-width:200px}.header-right{flex-wrap:wrap;gap:5px}.header-btn{padding:2px 15px;font-size:12px}.close-btn{padding:6px 10px}.design-header h3{font-size:20px}.action-button-row{padding:15px 20px;gap:15px}.action-btn{max-width:none;flex:1;min-height:50px;font-size:11px;padding:8px 12px}.action-btn i{font-size:14px}.text-controls{padding:10px 15px;gap:15px}.control-row{flex-direction:column;gap:10px}.text-style-options{justify-content:center;gap:8px}.style-btn{min-width:35px;height:35px;font-size:14px}.color-options{padding:8px;gap:8px}.variation-label{font-size:10px}.canvas-tools{right:10px;top:10px}.tool-btn{padding:6px;font-size:12px}.upload-area{padding:20px 15px;margin-top:5px}.upload-area i{font-size:36px;margin-bottom:10px}.browse-btn{padding:8px 16px;font-size:14px}.cost-btn{padding:12px 20px;font-size:14px;margin:10px 15px}.tab-content{margin-top:10px}.custom-element{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:auto !important;cursor:grab}.custom-element:active{cursor:grabbing;opacity:.8;transform:scale(1.02)}.custom-element.selected{touch-action:none !important;cursor:move}.customization-layer{touch-action:pan-y pan-x;pointer-events:auto !important;overflow:visible}.custom-element .resize-handle{opacity:0;display:none;visibility:hidden;pointer-events:none;transition:all .2s ease}.custom-element.selected .resize-handle,.custom-element:hover .resize-handle{opacity:1 !important;display:block !important;visibility:visible !important;pointer-events:auto !important;transition:none}.custom-element .rotate-handle{width:22px !important;height:22px !important;top:-28px !important;left:50% !important;transform:translateX(-50%) !important;border:3px solid white !important;box-shadow:0 2px 8px rgba(0,0,0,.4) !important;opacity:0 !important;pointer-events:none !important;touch-action:none !important;display:none !important;transition:all .2s ease}.custom-element.selected .rotate-handle,.custom-element:hover .rotate-handle{opacity:1 !important;display:block !important;visibility:visible !important;pointer-events:auto !important;transition:none}.rotate-handle::before{font-size:16px !important;font-weight:bold !important}.custom-element .delete-handle{width:24px !important;height:24px !important;top:-12px !important;right:-12px !important;border:3px solid white !important;font-size:16px !important;box-shadow:0 2px 8px rgba(0,0,0,.3) !important;opacity:0 !important;pointer-events:none !important;touch-action:none !important;display:none !important;transition:all .2s ease}.custom-element.selected .delete-handle,.custom-element:hover .delete-handle{opacity:1 !important;display:flex !important}.canvas-container{touch-action:pan-y pan-x !important;-webkit-touch-callout:none !important;-webkit-user-select:none !important;user-select:none !important;pointer-events:auto !important}#product-image{touch-action:pan-y pan-x !important;pointer-events:none !important}}@media (max-width: 480px){.product-main-area{flex-direction:column !important}.modal-header{padding:5px 10px}.header-left{font-size:12px}.header-btn{padding:2px 10px;font-size:10px}.action-button-row{padding:10px 15px;gap:10px}.action-btn{min-height:45px;font-size:10px;padding:6px 8px}.action-btn i{font-size:12px}.design-header h3{font-size:16px}.text-controls{padding:8px 12px;gap:12px}textarea,select{font-size:12px;padding:8px 10px}.style-btn{min-width:30px;height:30px;font-size:12px}.variation-label{font-size:9px}.cost-btn{padding:10px 15px;font-size:12px;margin:8px 12px}.tab-content{margin-top:10px}.rotate-handle{width:24px !important;height:24px !important;top:-32px !important;border:4px solid white !important}.delete-handle{width:26px !important;height:26px !important;top:-13px !important;right:-13px !important;border:4px solid white !important;font-size:18px !important}}@media (max-width: 768px) and (orientation: landscape){.modal-content{height:100vh}.action-button-row{padding:8px 15px}.action-btn{min-height:40px;font-size:10px}.text-controls{padding:8px 12px;gap:10px}.custom-element{touch-action:manipulation !important;pointer-events:auto !important}.custom-element.selected{touch-action:none !important}.customization-layer{touch-action:pan-y pan-x !important;pointer-events:auto !important}.resize-handle,.rotate-handle,.delete-handle{pointer-events:auto !important;touch-action:none !important}}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.product-thumbnail img,#product-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}@media (prefers-color-scheme: dark){.customizer-modal{background-color:rgba(0,0,0,.9)}}@media print{.customizer-modal{display:none !important}}.cost-inquiry-modal{z-index:100000001}.cost-inquiry-content{max-width:1000px;width:90%;height:auto;max-height:90vh;margin:5vh auto}.cost-inquiry-header{background:#0597d4;color:white;padding:15px 25px;border-bottom:none}.cost-inquiry-header h2{font-size:20px;font-weight:600;margin:0}.cost-inquiry-body{display:flex;gap:30px;padding:25px;overflow-y:auto;max-height:calc(90vh - 80px)}.design-preview-panel{flex:1;min-width:300px;background:#f8f9fa;border-radius:12px;padding:20px;height:200px}.design-preview-panel h3{font-size:18px;font-weight:600;color:#0597d4;margin-bottom:15px;text-align:center}.design-preview-container{background:white;border-radius:8px;padding:15px;text-align:center;border:2px solid #e9ecef}#design-preview-canvas{max-width:100%;height:200px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.design-info{background:white;border-radius:8px;border:1px solid #e9ecef}.design-info p{margin:5px 0;font-size:14px;color:#333}.cost-inquiry-form-panel{flex:1.5;min-width:400px}.cost-inquiry-form{display:flex;flex-direction:column}.form-row{display:flex;gap:6px;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:5px}.form-group.full-width{flex:1 1 100%}.form-group.half-width{flex:1 1 calc(50% - 7.5px);min-width:200px}.form-group.third-width{flex:1 1 calc(33.333% - 10px);min-width:150px}.form-group label{font-weight:600;color:#333;font-size:14px}.required{color:#e74c3c;font-weight:bold}.form-group input,.form-group select,.form-group textarea{padding:12px 15px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;transition:all .3s ease;background:white}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#0597d4;box-shadow:0 0 0 3px rgba(5,151,212,.1)}.form-group input:invalid{border-color:#e74c3c}.form-group textarea{resize:vertical;min-height:80px;font-family:inherit}.form-actions{margin-top:10px;text-align:center}.submit-cost-inquiry.cost-btn,#get-cost{background:#ffa403;color:white;border:none;padding:15px 30px;border-radius:8px;font-size:16px;font-weight:bold;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px;width:100%;margin-top:20px;z-index:999;position:relative;pointer-events:auto}.cost-btn:hover,#get-cost:hover{background:#e6930a;transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,164,3,.3);box-shadow:0 8px 25px rgba(255,164,3,.3)}.submit-cost-inquiry-btn:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.success-message{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#28a745;color:white;padding:20px 30px;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.3);z-index:10002;text-align:center;min-width:300px}.success-message h3{margin:0 0 10px 0;font-size:18px}.success-message p{margin:0;font-size:14px;opacity:.9}@media (max-width: 768px){.cost-inquiry-content{width:95%;margin:2vh auto;max-height:96vh}.cost-inquiry-body{flex-direction:column;gap:20px;padding:15px}.design-preview-panel,.cost-inquiry-form-panel{min-width:auto}.form-row{flex-direction:column;gap:15px}.form-group.half-width,.form-group.third-width{flex:1 1 100%;min-width:auto}.submit-cost-inquiry-btn{min-width:100%;padding:15px 20px}}@media (max-width: 480px){.cost-inquiry-header{padding:10px 15px}.cost-inquiry-header h2{font-size:16px}.cost-inquiry-body{padding:10px}.design-preview-panel,.form-group input,.form-group select,.form-group textarea{padding:10px 12px}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn .3s ease-out}@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}.loading{opacity:.6;pointer-events:none}.spinner{border:2px solid #f3f3f3;border-top:2px solid #667eea;border-radius:50%;width:20px;height:20px;animation:spin 1s linear infinite;display:inline-block;margin-right:10px}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.custom-element{position:absolute;cursor:move;user-select:none;border:2px solid transparent;min-width:20px;min-height:20px;pointer-events:auto}.custom-element.selected{border:2px solid #667eea;box-shadow:0 0 10px rgba(102,126,234,.3)}.custom-element:hover{border:2px solid #667eea}.custom-text{display:inline-block;white-space:nowrap;padding:0;background:transparent !important;background-color:transparent !important;border:none !important;border-radius:0;outline:none !important;box-shadow:none !important}.custom-logo img{width:100%;height:100%;object-fit:contain;pointer-events:none;position:relative;z-index:1}.cost-btn,#get-cost{background:#ffa403 !important;color:white !important;border:none !important;padding:15px 30px !important;border-radius:8px !important;font-size:16px !important;font-weight:bold !important;cursor:pointer !important;transition:all .3s ease !important;text-transform:uppercase !important;letter-spacing:1px !important;width:100% !important;margin-top:20px !important;z-index:999 !important;position:relative !important;pointer-events:auto !important;display:block !important}.cost-btn:hover,#get-cost:hover{background:#e6930a !important;transform:translateY(-2px) !important;box-shadow:0 4px 12px rgba(255,164,3,.3) !important}.cost-btn:active,#get-cost:active{transform:translateY(0) !important}.bottom-action-buttons{padding:20px !important;border-top:1px solid #e9ecef !important;background:#f8f9fa !important;position:relative !important;z-index:10 !important}.resize-handle{position:absolute;background:#667eea;border:2px solid white;border-radius:50%;width:14px;height:14px;cursor:pointer;opacity:0;transition:opacity .2s ease;z-index:100;pointer-events:auto;box-shadow:0 2px 4px rgba(0,0,0,.2)}.custom-element.selected .resize-handle,.custom-element:hover .resize-handle{opacity:1;display:block}.resize-handle.top-left{top:-7px;left:-7px;cursor:nw-resize}.resize-handle.top-right{top:-7px;right:-7px;cursor:ne-resize}.resize-handle.bottom-left{bottom:-7px;left:-7px;cursor:sw-resize}.resize-handle.bottom-right{bottom:-7px;right:-7px;cursor:se-resize}.resize-handle.top,.resize-handle.bottom,.resize-handle.left,.resize-handle.right{display:none !important;visibility:hidden !important;pointer-events:none !important;opacity:0 !important;width:0 !important;height:0 !important}.resize-handle.center{display:none !important;visibility:hidden !important;pointer-events:none !important;opacity:0 !important;width:0 !important;height:0 !important}.rotate-handle{position:absolute;top:-26px;left:50%;transform:translateX(-50%);width:20px;height:20px;background:#e74c3c;border:2px solid white;border-radius:50%;cursor:grab;display:none;opacity:.9;transition:all .2s ease;z-index:1003;box-shadow:0 2px 8px rgba(0,0,0,.3)}.rotate-handle:active{cursor:grabbing}.custom-element.selected .rotate-handle,.custom-element:hover .rotate-handle{opacity:1 !important;display:block !important;visibility:visible !important}.rotate-handle::before{content:"↻";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;color:white;font-weight:bold}.delete-handle{position:absolute;top:-12px;right:-12px;width:22px;height:22px;background:#ff4757;border:2px solid white;border-radius:50%;cursor:pointer;display:none;opacity:.9;transition:all .2s ease;z-index:1004;font-size:14px;font-weight:bold;color:white;text-align:center;line-height:18px;justify-content:center;align-items:center;box-shadow:0 2px 6px rgba(0,0,0,.3)}.delete-handle:hover{background:#ff3742;transform:scale(1.1)}.custom-element.selected .delete-handle,.custom-element:hover .delete-handle{opacity:1;display:flex}.customization-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto;z-index:5}.add-to-cart-custom{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:white;border:none;padding:15px 30px;border-radius:8px;font-weight:bold;font-size:16px;cursor:pointer;width:100%;margin-top:10px;transition:all .3s ease}.add-to-cart-custom:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(40,167,69,.3)}.add-to-cart-custom:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.upload-area.dragover{border-color:#667eea;background-color:rgba(102,126,234,.1);transform:scale(1.02)}.upload-area.dragover i{color:#667eea;transform:scale(1.1)}.upload-info{font-size:12px;color:#666;margin-top:10px;text-align:center;font-style:italic}#custom-text{padding-bottom:0px !important;padding-right:0px !important;padding-left:0px !important}