/* ===================================

   BAG DESIGNER v4.0 - DESKTOP STYLES

   =================================== */



/* Container */

/* Outer Wrapper */

.bag-designer-product-wrapper {

    position: relative;

    margin: 0 20px 30px 20px;

    padding: 20px;

    max-width: 1200px;

    border-radius: 20px;

    background: #f8f9fa;

    overflow: hidden;

}



.bag-designer-product-wrapper::before {

    content: none;

}



.bag-designer-container {

    position: relative;

    z-index: 1;

    display: flex;

    gap: 20px;

    align-items: flex-start;

}



.bag-designer-row {

    display: contents;

}



.bag-designer-preview-column {

    flex: 1 1 auto;

}



.bag-designer-controls-column {

    width: 220px;

    flex-shrink: 0;

    display: flex;

    flex-direction: column;

    gap: 15px;

    padding: 0 20px;

    background-color: #ffffff;

    border: none;

    border-radius: 16px;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05), 0 1px 3px rgba(0, 0, 0, 0.03);

}



/* Preview Box */

.bag-designer-preview-box {

    position: relative;

    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 250, 240, 0.96) 100%);

    border: 3px solid rgba(255, 255, 255, 0.9);

    border-radius: 20px;

    overflow: hidden;

    box-shadow:

        0 20px 60px rgba(255, 140, 0, 0.3),

        0 0 40px rgba(255, 165, 0, 0.2),

        inset 0 0 100px rgba(255, 140, 0, 0.05);

    position: sticky;

    top: 20px;

}



.bag-designer-base-image {

    width: 100%;

    height: auto;

    display: block;

}



.bag-designer-canvas {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    cursor: default;

}



.bag-designer-canvas.grabbing {

    cursor: grabbing !important;

}



/* Controls Box */

.bag-designer-controls-box {

    display: flex;

    flex-direction: column;

    gap: 10px;

    background: transparent;

    border: none;

    padding: 0;

    margin: 0;

}



.bag-designer-title {

    margin: 0 0 12px 0;

    font-size: 28px;

    font-weight: 800;

    color: #1a1a1a;

    letter-spacing: -0.5px;

    text-transform: uppercase;

}



.bag-designer-description {

    margin: 0 0 24px 0;

    color: #333333;

    font-size: 15px;

    line-height: 1.6;

    font-weight: 500;

    max-width: 600px;

}



/* Base Image Selector */

.bag-designer-base-selector {

    margin-bottom: 16px;

    padding-bottom: 12px;

    border-bottom: 1px solid #e9ecef;

}



.bag-designer-base-selector h3 {

    margin: 0 0 12px 0;

    font-size: 16px;

    font-weight: 600;

    color: #495057;

}



.bag-designer-base-grid {

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));

    gap: 10px;

    max-height: 150px;

    overflow-y: auto;

    padding: 3px;

}



.bag-designer-base-option {

    position: relative;

    cursor: pointer;

    border: 2px solid transparent;

    border-radius: 6px;

    overflow: hidden;

    transition: all 0.3s ease;

    background: #f8f9fa;

    aspect-ratio: 1;

}



.bag-designer-base-option:hover {

    border-color: #667eea;

    transform: translateY(-2px);

    box-shadow: 0 3px 8px rgba(102, 126, 234, 0.25);

}



.bag-designer-base-option.active {

    border-color: #667eea;

    box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.2);

}



.bag-designer-base-option img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

}



.bag-designer-base-name {

    position: absolute;

    bottom: 0;

    left: 0;

    right: 0;

    background: rgba(0, 0, 0, 0.7);

    color: white;

    font-size: 9px;

    padding: 3px;

    text-align: center;

    opacity: 0;

    transition: opacity 0.3s ease;

}



.bag-designer-base-option:hover .bag-designer-base-name {

    opacity: 1;

}



/* Scrollbar styling */

.bag-designer-base-grid::-webkit-scrollbar {

    width: 6px;

}



.bag-designer-base-grid::-webkit-scrollbar-track {

    background: #f1f1f1;

    border-radius: 3px;

}



.bag-designer-base-grid::-webkit-scrollbar-thumb {

    background: #667eea;

    border-radius: 3px;

}



.bag-designer-base-grid::-webkit-scrollbar-thumb:hover {

    background: #5568d3;

}



/* Upload Button */

.bag-designer-upload-area {

    margin-bottom: 0;

}



.bag-designer-upload-button {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding: 5px 9px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: #ffffff;

    border: none;

    border-radius: 6px;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);

    width: 200px;

    justify-content: center;

}



.bag-designer-upload-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);

}



.bag-designer-upload-button svg {

    width: 16px;

    height: 16px;

}



/* Status Messages */

.bag-designer-status {

    padding: 10px 14px;

    border-radius: 6px;

    font-size: 13px;

    font-weight: 500;

    margin-bottom: 15px;

    display: none;

}



.bag-designer-status.error {

    background: #f8d7da;

    color: #721c24;

    border: 1px solid #f5c6cb;

    display: block;

}



.bag-designer-status.info {

    background: #d1ecf1;

    color: #0c5460;

    border: 1px solid #bee5eb;

    display: block;

}



/* Drag & Drop Layer Control */

.bag-designer-layer-control {

    margin-bottom: 0 !important;

    padding: 10px;

    background: transparent;

}



.bag-designer-layer-control h3 {

    margin: 0 0 6px 0;

    font-size: 16px;

    font-weight: 600;

    color: transparent;

    display: flex;

    align-items: center;

    gap: 4px;

}



.bag-designer-layer-control h3 svg {

    color: #667eea;

    width: 18px;

    height: 18px;

}



.bag-designer-layer-hint {

    margin: 0 0 8px 0;

    padding: 8px 6px;

    background: rgba(102, 126, 234, 0.08);

    border-left: 3px solid #667eea;

    border-radius: 4px;

    font-size: 12px;

    color: #495057;

    display: flex;

    align-items: center;

    gap: 6px;

    line-height: 1.4;

}



.bag-designer-layer-hint svg {

    flex-shrink: 0;

    color: #667eea;

    width: 14px;

    height: 14px;

}



/* Layer Stack */

.bag-designer-layer-stack {

    display: flex;

    flex-direction: column;

    gap: 6px;

}



/* Layer Item */

.bag-designer-layer-item {

    position: relative;

    display: flex;

    align-items: flex-start;

    flex-direction: row;

    flex-wrap: wrap;

    gap: 0;

    padding: 8px;

    background: #ffffff;

    border: 2px solid #e9ecef;

    border-radius: 8px;

    cursor: pointer;

    transition: all 0.3s ease;

    user-select: none;

    overflow: hidden;

}



.bag-designer-layer-item:hover {

    border-color: #667eea;

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.15);

}



.bag-designer-layer-item.dragging {

    opacity: 0.5;

    transform: scale(0.98);

}



.bag-designer-layer-item.drag-over {

    border-color: #667eea;

    background: rgba(102, 126, 234, 0.05);

    border-style: dashed;

}



.bag-designer-layer-item.selected {

    border-color: #667eea;

    background: rgba(102, 126, 234, 0.05);

    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);

}



.bag-designer-layer-item > .bag-designer-layer-drag-handle {

    order: 1;

    flex-shrink: 0;

}



.bag-designer-layer-item > .bag-designer-layer-content {

    order: 2;

    flex: 1;

    min-width: 0;

}



.bag-designer-layer-item > .bag-designer-layer-opacity,

.bag-designer-layer-item > .bag-designer-layer-alignment {

    order: 4;

    width: 100%;

    max-height: 0;

    opacity: 0;

    overflow: hidden;

    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);

    pointer-events: none;

}



.bag-designer-layer-item.selected > .bag-designer-layer-opacity {

    max-height: 100px;

    opacity: 1;

    margin-top: 8px;

    padding-top: 8px;

    border-top: 1px solid #e9ecef;

    pointer-events: auto;

}



.bag-designer-layer-item.selected > .bag-designer-layer-alignment {

    max-height: 120px;

    opacity: 1;

    margin-top: 8px;

    padding-top: 8px;

    border-top: 1px solid #e9ecef;

    pointer-events: auto;

}



.bag-designer-layer-drag-handle {

    display: flex;

    align-items: center;

    color: #6c757d;

    cursor: grab;

    padding: 6px;

    margin: -6px;

    border-radius: 6px;

    transition: all 0.3s ease;

    user-select: none;

}



.bag-designer-layer-drag-handle:hover {

    background: rgba(102, 126, 234, 0.1);

    color: #667eea;

}



.bag-designer-layer-drag-handle:active {

    cursor: grabbing;

    background: rgba(102, 126, 234, 0.2);

}



.bag-designer-layer-drag-handle svg {

    width: 16px;

    height: 16px;

    pointer-events: none;

}



.bag-designer-layer-content {

    display: flex;

    align-items: center;

    gap: 8px;

}



.bag-designer-layer-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 32px;

    height: 32px;

    border-radius: 6px;

    flex-shrink: 0;

}



.bag-designer-layer-icon.image {

    background: #e3f2fd;

    color: #1976d2;

}



.bag-designer-layer-icon.text {

    background: #f3e5f5;

    color: #7b1fa2;

}



.bag-designer-layer-icon svg {

    width: 16px;

    height: 16px;

}



.bag-designer-layer-name {

    font-size: 13px;

    font-weight: 600;

    color: #495057;

}



.bag-designer-layer-opacity {

    display: flex;

    align-items: center;

    gap: 8px;

    padding: 0;

    width: 100%;

    user-select: none;

}



.bag-designer-layer-opacity label {

    font-size: 11px;

    font-weight: 600;

    color: #6c757d;

    min-width: 55px;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.bag-designer-layer-opacity input[type="range"] {

    flex: 1;

    height: 4px;

    border-radius: 2px;

    background: #e9ecef;

    outline: none;

    -webkit-appearance: none;
    appearance: none;

    cursor: pointer;

}



.bag-designer-layer-opacity input[type="range"]::-webkit-slider-thumb {

    -webkit-appearance: none;

    appearance: none;

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #667eea;

    cursor: pointer;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);

    transition: all 0.2s ease;

}



.bag-designer-layer-opacity input[type="range"]::-webkit-slider-thumb:hover {

    transform: scale(1.2);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);

}



.bag-designer-layer-opacity input[type="range"]::-moz-range-thumb {

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #667eea;

    cursor: pointer;

    border: none;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);

    transition: all 0.2s ease;

}



.bag-designer-layer-opacity input[type="range"]::-moz-range-thumb:hover {

    transform: scale(1.2);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);

}



.bag-designer-layer-opacity .opacity-value {

    font-size: 11px;

    font-weight: 700;

    color: #667eea;

    min-width: 35px;

    text-align: right;

}



.bag-designer-layer-alignment {

    display: flex;

    flex-direction: row;

    align-items: center;

    gap: 8px;

    padding: 0;

    width: 100%;

    user-select: none;

}



.bag-designer-layer-alignment button {

    display: flex;

    align-items: center;

    justify-content: center;

    flex: 1;

    height: 32px;

    padding: 0;

    background: white;

    color: #6c757d;

    border: 1px solid #dee2e6;

    border-radius: 6px;

    cursor: pointer;

    transition: all 0.2s ease;

    font-size: 11px;

    font-weight: 600;

    gap: 4px;

}



.bag-designer-layer-alignment button:hover {

    background: #667eea;

    border-color: #667eea;

    color: white;

    transform: translateY(-1px);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);

}



.bag-designer-layer-alignment button:active {

    transform: translateY(0);

}



.bag-designer-layer-alignment button svg {

    width: 14px;

    height: 14px;

}



.bag-designer-layer-item.dragging * {

    user-select: none;

    pointer-events: none;

}



.bag-designer-layer-item.dragging .bag-designer-layer-drag-handle {

    cursor: grabbing;

}



/* Text Controls */

.bag-designer-text-controls {

    margin: 0;

    padding: 18px;

    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);

    border-radius: 10px;

    border: 1px solid #dee2e6;

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);

    animation: fadeInUp 0.4s ease-out;

}



.bag-designer-text-controls h3 {

    display: none !important;

}



.bag-designer-text-input-group {

    margin: 0 0 14px 0;

    background: white;

    padding: 8px;

    border-radius: 8px;

    border: none;

    transition: all 0.3s ease;

    animation: fadeInUp 0.5s ease-out;

}



.bag-designer-text-input-group:hover {

    border-color: #667eea;

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.1);

}



.bag-designer-text-input-group label {

    display: flex;

    align-items: center;

    gap: 10px;

    margin: 0 0 8px 0;

    font-size: 13px;

    font-weight: 600;

    color: #495057;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    flex-direction: row;

    justify-content: flex-start;

}



.bag-designer-text-input-group label::before {

    content: "📝";

    font-size: 14px;

    flex-shrink: 0;

}



.bag-designer-text-input-group label .text-color-title {

    flex: 0 0 auto;

    margin-right: auto;

}



.bag-designer-text-input-group label input[type="color"] {

    width: 32px;

    height: 32px;

    border: 3px solid #e9ecef;

    border-radius: 50%;

    cursor: pointer;

    transition: all 0.3s ease;

    padding: 0;

    background: white;

    margin-left: 0;

    margin-right: 0;

    flex-shrink: 0;

    overflow: hidden;

    -webkit-appearance: none;

    -moz-appearance: none;

    appearance: none;

}



.bag-designer-text-input-group label input[type="color"]::-webkit-color-swatch-wrapper {

    padding: 0;

    border-radius: 50%;

    overflow: hidden;

}



.bag-designer-text-input-group label input[type="color"]::-webkit-color-swatch {

    border: none;

    border-radius: 50%;

}



.bag-designer-text-input-group label input[type="color"]::-moz-color-swatch {

    border: none;

    border-radius: 50%;

}



.bag-designer-text-input-group label input[type="color"]:hover {

    border-color: #667eea;

    transform: scale(1.15);

    box-shadow: 0 3px 12px rgba(102, 126, 234, 0.4);

}



.bag-designer-text-input-group label input[type="color"]:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.2);

}



.bag-designer-text-input-group label input[type="color"]:active {

    transform: scale(1.05);

}



.bag-designer-text-input-group input[type="text"] {

    width: 100%;

    padding: 12px 14px;

    border: 2px solid #e9ecef;

    border-radius: 8px;

    font-size: 15px;

    font-family: inherit;

    transition: all 0.3s ease;

    background: #fafbfc;

    margin: 0;

}



.bag-designer-text-input-group input[type="text"]:focus {

    outline: none;

    border-color: #667eea;

    background: white;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

    transform: translateY(-1px);

}



.bag-designer-text-input-group input[type="text"]::placeholder {

    color: #adb5bd;

    font-style: italic;

}



.bag-designer-text-options {

    display: flex;

    flex-direction: column;

    gap: 14px;

    margin: 0;

}



.bag-designer-text-option-row {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 14px;

    margin: 0;

}



.bag-designer-text-option-col {

    display: flex;

    flex-direction: column;

    background: white;

    padding: 12px;

    border-radius: 8px;

    border: 1px solid #e9ecef;

    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    margin: 0;

}



.bag-designer-text-option-col:hover {

    border-color: #667eea;

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.1);

}



.bag-designer-text-option-col label {

    margin: 0 0 8px 0;

    font-size: 12px;

    font-weight: 600;

    color: #6c757d;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    display: flex;

    align-items: center;

    gap: 6px;

}



.bag-designer-text-option-col input[type="color"] {

    width: 100%;

    height: 45px;

    border: 2px solid #e9ecef;

    border-radius: 8px;

    cursor: pointer;

    transition: all 0.3s ease;

    padding: 4px;

    background: white;

}



.bag-designer-text-option-col input[type="color"]:hover {

    border-color: #667eea;

    transform: translateY(-1px);

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);

}



.bag-designer-text-option-col input[type="color"]:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.15);

}



.bag-designer-text-option-col select {

    width: 100%;

    padding: 10px 12px;

    border: 2px solid #e9ecef;

    border-radius: 8px;

    font-size: 14px;

    font-family: inherit;

    background: white;

    color: #212529;

    cursor: pointer;

    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    appearance: none;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E");

    background-repeat: no-repeat;

    background-position: right 12px center;

    padding-right: 36px;

    font-weight: 500;

    margin: 0;

}



.bag-designer-text-option-col select:hover {

    border-color: #667eea;

    background-color: #f8f9ff;

}



.bag-designer-text-option-col select:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

    background-color: white;

}



.bag-designer-text-option-col select optgroup {

    font-weight: 700;

    color: #212529;

    background: #f8f9fa;

    padding: 8px 0;

    font-size: 13px;

}



.bag-designer-text-option-col select option {

    padding: 10px 12px;

    font-weight: 500;

    color: #212529;

    background: white;

    font-size: 14px;

}



.bag-designer-text-option-col select option:hover {

    background: #f0f3ff;

    color: #667eea;

}



.bag-designer-text-option-col select:disabled {

    opacity: 0.6;

    cursor: not-allowed;

    background-color: #f8f9fa;

}



.bag-designer-text-controls:focus-within {

    box-shadow: 0 4px 16px rgba(102, 126, 234, 0.15);

}



@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(10px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



/* Action Buttons */

.bag-designer-action-section {

    margin: 0 !important;

    padding: 0;

    background: transparent ;

    border-radius: 8px;

    border: none;

}



.bag-designer-action-buttons {

    display: flex !important;

    gap: 10px;

    margin: 0;

}



.bag-designer-download-button {

    flex: 1;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    padding: 5px 10px !important;

    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);

    color: #ffffff;

    border: none;

    border-radius: 50px !important;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    box-shadow: 0 2px 8px rgba(40, 167, 69, 0.25);

    margin: 0;

}



.bag-designer-download-button:hover {

    background: linear-gradient(135deg, #218838 0%, #1aa179 100%);

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(40, 167, 69, 0.35);

}



.bag-designer-download-button svg {

    width: 16px;

    height: 16px;

}



.bag-designer-reset-button {

    flex: 1;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 6px;

    padding: 5px 10px !important;

    background: #6c757d;

    color: #ffffff;

    border: none;

    border-radius: 50px !important;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    margin: 0;

}



.bag-designer-reset-button:hover {

    background: #5a6268;

    transform: translateY(-2px);

}



.bag-designer-reset-button svg {

    width: 14px;

    height: 14px;

}



button:focus-visible,

input:focus-visible,

select:focus-visible {

    outline: 2px solid #667eea;

    outline-offset: 2px;

}





/* We now show color options inside a full-screen lightbox instead of inline dropdown */

.dropdown-arrow {

    display: none;

}



.color-option {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 12px 15px;

    cursor: pointer;

    transition: all 0.3s ease;

    border-radius: 12px;

    background: linear-gradient(135deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 250, 240, 0.92) 100%);

    border: 2px solid rgba(255, 140, 0, 0.35);

    box-shadow: 0 5px 15px rgba(255, 140, 0, 0.18);

    margin-bottom: 10px;

}



.color-option:last-child {

    border-bottom: none;

}



.color-option:hover {

    background: #f8f9fa;

}



.color-option img {

    width: 60px;

    height: 60px;

    object-fit: cover;

    border-radius: 10px;

    border: 2px solid #ff8c00;

}



.color-option span {

    font-size: 16px;

    font-weight: 600;

    color: #ff6347;

}



.color-option:hover {

    background: linear-gradient(135deg, rgba(255, 140, 0, 0.15) 0%, rgba(255, 69, 0, 0.15) 100%);

    transform: translateY(-2px);

    box-shadow: 0 8px 25px rgba(255, 140, 0, 0.35);

}



.color-option.active {

    background: linear-gradient(135deg, #ff8c00 0%, #ff6347 100%);

    border-color: #ff4500;

    color: #fff;

    box-shadow: 0 10px 30px rgba(255, 140, 0, 0.4);

}



/* Generic lightbox (color, size, etc.) */

.bag-designer-lightbox {

    display: none;

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.7);

    backdrop-filter: blur(10px);

    z-index: 9999;

    justify-content: center;

    align-items: center;

    padding: 20px;

}



.bag-designer-lightbox.active {

    display: flex;

}



.bag-designer-lightbox-content {

    background: linear-gradient(135deg,

        rgba(255, 255, 255, 0.98) 0%,

        rgba(255, 250, 240, 0.98) 100%);

    border: 3px solid rgba(255, 140, 0, 0.6);

    border-radius: 20px;

    padding: 30px 30px 24px 30px;

    max-width: 640px;

    width: 100%;

    max-height: 80vh;

    overflow-y: auto;

    position: relative;

    box-shadow:

        0 20px 60px rgba(255, 140, 0, 0.4),

        0 0 80px rgba(255, 69, 0, 0.35),

        inset 0 0 80px rgba(255, 140, 0, 0.06);

}



.bag-designer-lightbox-close {

    position: absolute;

    top: 12px;

    right: 12px;

    font-size: 28px;

    width: 36px;

    height: 36px;

    border-radius: 50%;

    border: none;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    background: linear-gradient(135deg, rgba(255, 140, 0, 0.12) 0%, rgba(255, 69, 0, 0.12) 100%);

    color: #ff4500;

    transition: all 0.3s ease;

}



.bag-designer-lightbox-close:hover {

    background: linear-gradient(135deg, #ff8c00 0%, #ff4500 100%);

    color: #ffffff;

    transform: rotate(90deg);

    box-shadow: 0 5px 20px rgba(255, 140, 0, 0.4);

}



.bag-designer-lightbox-title {

    font-size: 24px;

    font-weight: 700;

    margin-bottom: 10px;

    background: linear-gradient(135deg, #ff8c00 0%, #ff4500 50%, #ff6347 100%);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    background-clip: text;

}



.bag-designer-lightbox-body {

    font-size: 16px;

    line-height: 1.6;

    color: #333333;

}



.bag-designer-lightbox-helper-text {

    margin: 0 0 12px 0;

    font-size: 14px;

    color: #666666;

}



.bag-designer-lightbox .color-dropdown-options {

    max-height: 55vh;

    overflow-y: auto;

    padding-right: 4px;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar {

    width: 8px;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar-track {

    background: rgba(255, 255, 255, 0.5);

    border-radius: 10px;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar-thumb {

    background: linear-gradient(135deg, #ff8c00 0%, #ff6347 100%);

    border-radius: 10px;

}



/* Text Controls Expandable */

.bag-designer-text-controls-expandable {

    display: none;

    padding: 10px;

    background: #f8f9fa;

    border-radius: 8px;

    margin: 0;

    animation: slideDown 0.3s ease-out;

}



.bag-designer-layer-item.selected .bag-designer-text-controls-expandable {

    display: block;

}



@keyframes slideDown {

    from {

        opacity: 0;

        max-height: 0;

        transform: translateY(-10px);

    }

    to {

        opacity: 1;

        max-height: 500px;

        transform: translateY(0);

    }

}



.bag-designer-text-controls-expandable .bag-designer-text-input-group {

    margin-bottom: 15px;

}



.bag-designer-text-controls-expandable .bag-designer-text-input-group input[type="text"] {

    width: 100%;

    padding: 10px 12px;

    border: 2px solid #e0e0e0;

    border-radius: 6px;

    font-size: 14px;

    transition: all 0.3s ease;

}



.bag-designer-text-controls-expandable .bag-designer-text-input-group input[type="text"]:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);

}



.bag-designer-text-controls-expandable .bag-designer-text-options {

    display: flex;

    flex-direction: column;

    gap: 12px;

}



.bag-designer-text-controls-expandable .bag-designer-text-option-row {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

}



.bag-designer-text-controls-expandable .bag-designer-text-option-col {

    display: flex;

    flex-direction: column;

}



.bag-designer-text-controls-expandable .bag-designer-text-option-full {

    display: flex;

    flex-direction: column;

}



/* Modern Label Styling for Color Picker */

.bag-designer-text-controls-expandable label {

    font-size: 13px;

    font-weight: 600;

    color: #374151;

    margin-bottom: 8px;

    text-transform: none;

    letter-spacing: 0;

    display: flex;

    align-items: center;

    gap: 6px;

}



.bag-designer-text-controls-expandable label::before {

    content: '';

    width: 3px;

    height: 16px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-radius: 2px;

}



.bag-designer-text-controls-expandable input[type="color"] {

    width: 100%;

    height: 50px;

    border: 3px solid #e5e7eb;

    border-radius: 12px;

    cursor: pointer;

    transition: all 0.3s ease;

    padding: 4px;

    background: #ffffff;

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);

}



.bag-designer-text-controls-expandable input[type="color"]:hover {

    border-color: #667eea;

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);

}



.bag-designer-text-controls-expandable input[type="color"]:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.15);

}



/* Remove default color input styling */

.bag-designer-text-controls-expandable input[type="color"]::-webkit-color-swatch-wrapper {

    padding: 0;

    border-radius: 8px;

}



.bag-designer-text-controls-expandable input[type="color"]::-webkit-color-swatch {

    border: none;

    border-radius: 8px;

    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.1);

}



.bag-designer-text-controls-expandable input[type="color"]::-moz-color-swatch {

    border: none;

    border-radius: 8px;

}



/* Modern Color Option Cards for Lightbox */

.color-option {

    display: flex;

    align-items: center;

    gap: 16px;

    padding: 16px 20px;

    cursor: pointer;

    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    border-radius: 16px;

    background: #ffffff;

    border: 2px solid #e5e7eb;

    margin-bottom: 12px;

    position: relative;

    overflow: hidden;

}



.color-option::before {

    content: '';

    position: absolute;

    left: 0;

    top: 0;

    height: 100%;

    width: 4px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    transform: scaleY(0);

    transition: transform 0.3s ease;

}



.color-option:hover::before {

    transform: scaleY(1);

}



.color-option:hover {

    background: #f9fafb;

    border-color: #667eea;

    transform: translateX(4px);

    box-shadow: 0 4px 16px rgba(102, 126, 234, 0.15);

}



.color-option img {

    width: 70px;

    height: 70px;

    object-fit: cover;

    border-radius: 12px;

    border: 2px solid #e5e7eb;

    transition: all 0.3s ease;

}



.color-option:hover img {

    border-color: #667eea;

    transform: scale(1.05);

}



.color-option span {

    font-size: 16px;

    font-weight: 600;

    color: #1f2937;

    transition: color 0.3s ease;

}



.color-option:hover span {

    color: #667eea;

}



/* Active/Selected State */

.color-option.active {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-color: #667eea;

    box-shadow: 0 8px 24px rgba(102, 126, 234, 0.3);

    transform: translateX(4px);

}



.color-option.active::before {

    transform: scaleY(1);

    background: #ffffff;

}



.color-option.active img {

    border-color: #ffffff;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);

}



.color-option.active span {

    color: #ffffff;

    font-weight: 700;

}



/* Checkmark for selected color */

.color-option.active::after {

    content: '✓';

    position: absolute;

    right: 20px;

    top: 50%;

    transform: translateY(-50%);

    font-size: 24px;

    color: #ffffff;

    font-weight: bold;

    animation: checkmarkPop 0.3s ease;

}



@keyframes checkmarkPop {

    0% {

        transform: translateY(-50%) scale(0);

    }

    50% {

        transform: translateY(-50%) scale(1.2);

    }

    100% {

        transform: translateY(-50%) scale(1);

    }

}



/* Modern Lightbox Updates */

.bag-designer-lightbox-content {

    background: #ffffff;

    border: none;

    border-radius: 24px;

    padding: 16px;

    max-width: 640px;

    width: 100%;

    max-height: 80vh;

    overflow-y: auto;

    position: relative;

    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.12),

                0 12px 24px rgba(0, 0, 0, 0.08);

}



.bag-designer-lightbox-close {

    position: absolute;

    top: 16px;

    right: 16px;

    font-size: 24px;

    width: 40px;

    height: 40px;

    border-radius: 50%;

    border: none;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    background: #f3f4f6;

    color: #6b7280;

    transition: all 0.3s ease;

}



.bag-designer-lightbox-close:hover {

    background: #667eea;

    color: #ffffff;

    transform: rotate(90deg);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);

}



.bag-designer-lightbox-title {

    font-size: 26px;

    font-weight: 700;

    margin-bottom: 8px;

    color: #1f2937;

}



.bag-designer-lightbox-helper-text {

    margin: 0 0 20px 0;

    font-size: 14px;

    color: #6b7280;

    font-weight: 400;

}



/* Scrollbar Styling */

.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar {

    width: 10px;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar-track {

    background: #f3f4f6;

    border-radius: 10px;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar-thumb {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-radius: 10px;

    border: 2px solid #f3f4f6;

}



.bag-designer-lightbox .color-dropdown-options::-webkit-scrollbar-thumb:hover {

    background: linear-gradient(135deg, #5568d3 0%, #6a3f8f 100%);

}



/* Color Preview Box Enhancement */

.color-preview-box {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 0;

    background: transparent;

    border-radius: 12px;

    border: none;

    transition: all 0.3s ease;

}



.color-preview-box:hover {

    border-color: #667eea;

    background: #ffffff;

}



.color-preview-box img {

    width: 50px;

    height: 50px;

    object-fit: cover;

    border-radius: 10px;

    border: 2px solid #e5e7eb;

}



.color-preview-box span {

    font-size: 15px;

    font-weight: 600;

    color: #1f2937;

}



.bag-designer-text-controls-expandable select {

    width: 100%;

    padding: 8px 10px;

    border: 2px solid #e0e0e0;

    border-radius: 6px;

    font-size: 14px;

    background: white;

    cursor: pointer;

    transition: all 0.3s ease;

}



.bag-designer-text-controls-expandable select:hover {

    border-color: #667eea;

}



.bag-designer-text-controls-expandable select:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);

}



/* Layer Item Header */

.bag-designer-layer-item {

    display: flex;

    flex-direction: column;

    padding: 8px;

    background: white;

    border: 2px solid #e0e0e0;

    border-radius: 8px;

    margin-bottom: 0;

    cursor: pointer;

    transition: all 0.3s ease;

    position: relative;

}



.bag-designer-layer-item-header {

    display: flex;

    align-items: center;

    width: 100%;

    position: relative;

}



.bag-designer-layer-item .bag-designer-layer-drag-handle {

    flex-shrink: 0;

    width: 24px;

    height: 24px;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: grab;

    color: #999;

    margin-right: 8px;

}



.bag-designer-layer-item .bag-designer-layer-content {

    display: flex;

    align-items: center;

    flex: 1;

    min-width: 0;

}



.bag-designer-layer-item .bag-designer-layer-icon {

    flex-shrink: 0;

    width: 32px;

    height: 32px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 6px;

    margin-right: 10px;

}



.bag-designer-layer-item .bag-designer-layer-icon.image {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

}



.bag-designer-layer-item .bag-designer-layer-icon.text {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

    color: white;

}



.bag-designer-layer-item .bag-designer-layer-name {

    font-weight: 600;

    color: #333;

    font-size: 14px;

    flex: 1;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;

}



.bag-designer-layer-item.selected {

    border-color: #667eea;

    background: #f8f9ff;

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);

}



.bag-designer-layer-item .bag-designer-layer-opacity,

.bag-designer-layer-item .bag-designer-layer-alignment {

    margin-top: 0;

    width: 100%;

}



.bag-designer-text-controls-expandable {

    display: none;

    padding: 15px;

    background: #f8f9fa;

    border-radius: 8px;

    margin-top: 0;

    animation: slideDown 0.3s ease-out;

    width: 100%;

}



.bag-designer-layer-item.selected .bag-designer-text-controls-expandable {

    display: block;

}



.bag-designer-layer-item[draggable="true"] {

    user-select: none;

}



.bag-designer-layer-item .bag-designer-layer-drag-handle:active {

    cursor: grabbing;

}



/* Image Filter Expandable */

.bag-designer-image-filter-expandable {

    display: none;

    padding: 15px;

    background: #f8f9fa;

    border-radius: 8px;

    margin-top: 12px;

    animation: slideDown 0.3s ease-out;

    width: 100%;

}



.bag-designer-layer-item.selected .bag-designer-image-filter-expandable {

    display: block;

}



.bag-designer-image-filter-expandable .filter-toggle-row {

    display: flex;

    align-items: center;

    margin-bottom: 12px;

}



.bag-designer-image-filter-expandable .filter-toggle {

    display: flex;

    align-items: center;

    gap: 12px;

    cursor: pointer;

    user-select: none;

}



.bag-designer-image-filter-expandable .filter-toggle input[type="checkbox"] {

    display: none;

}



.bag-designer-image-filter-expandable .toggle-slider {

    position: relative;

    width: 50px;

    height: 26px;

    background: #ccc;

    border-radius: 13px;

    transition: all 0.3s ease;

    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);

}



.bag-designer-image-filter-expandable .toggle-slider::before {

    content: '';

    position: absolute;

    width: 20px;

    height: 20px;

    border-radius: 50%;

    background: white;

    top: 3px;

    left: 3px;

    transition: all 0.3s ease;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);

}



.bag-designer-image-filter-expandable .filter-toggle input[type="checkbox"]:checked + .toggle-slider {

    background: #667eea;

}



.bag-designer-image-filter-expandable .filter-toggle input[type="checkbox"]:checked + .toggle-slider::before {

    transform: translateX(24px);

}



.bag-designer-image-filter-expandable .toggle-label {

    font-size: 14px;

    font-weight: 600;

    color: #495057;

}



.filter-controls-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

    animation: slideIn 0.3s ease-out;

}



@keyframes slideIn {

    from {

        opacity: 0;

        transform: translateX(-10px);

    }

    to {

        opacity: 1;

        transform: translateX(0);

    }

}



.filter-color-col,

.filter-opacity-col {

    display: flex;

    flex-direction: column;

    background: white;

    padding: 10px;

    border-radius: 8px;

    border: 1px solid #e9ecef;

    transition: all 0.3s ease;

}



.filter-color-col:hover,

.filter-opacity-col:hover {

    border-color: #667eea;

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.1);

}



.filter-color-col label,

.filter-opacity-col label {

    font-size: 12px;

    font-weight: 600;

    color: #6c757d;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    margin-bottom: 8px;

}



.filter-color-col input[type="color"] {

    width: 100%;

    height: 40px;

    border: 2px solid #e9ecef;

    border-radius: 6px;

    cursor: pointer;

    transition: all 0.3s ease;

    padding: 2px;

}



.filter-color-col input[type="color"]:hover {

    border-color: #667eea;

    transform: scale(1.05);

}



.filter-opacity-slider-wrapper {

    display: flex;

    align-items: center;

    gap: 8px;

}



.filter-opacity-slider-wrapper input[type="range"] {

    flex: 1;

    height: 4px;

    border-radius: 2px;

    background: #e9ecef;

    outline: none;

    -webkit-appearance: none;
    appearance: none;

    cursor: pointer;

}



.filter-opacity-slider-wrapper input[type="range"]::-webkit-slider-thumb {

    -webkit-appearance: none;

    appearance: none;

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #667eea;

    cursor: pointer;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);

    transition: all 0.2s ease;

}



.filter-opacity-slider-wrapper input[type="range"]::-webkit-slider-thumb:hover {

    transform: scale(1.2);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);

}



.filter-opacity-slider-wrapper input[type="range"]::-moz-range-thumb {

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #667eea;

    cursor: pointer;

    border: none;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);

    transition: all 0.2s ease;

}



.filter-opacity-slider-wrapper input[type="range"]::-moz-range-thumb:hover {

    transform: scale(1.2);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);

}



.filter-opacity-value {

    font-size: 11px;

    font-weight: 700;

    color: #667eea;

    min-width: 35px;

    text-align: right;

}



/* Add Text/Image/Icon Layer Buttons */

.bag-designer-add-text-button,

.bag-designer-add-image-button,

.bag-designer-add-icon-button {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    width: 100%;

    padding: 4px 8px;

    margin-bottom: 0;

    color: white;

    border: none;

    border-radius: 8px;

    font-size: 12px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

}



.bag-designer-add-text-button {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);

}



.bag-designer-add-text-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);

}



.bag-designer-add-image-button {

    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);

    box-shadow: 0 2px 6px rgba(40, 167, 69, 0.3);

}



.bag-designer-add-image-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(40, 167, 69, 0.4);

}



.bag-designer-add-icon-button {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

    box-shadow: 0 2px 6px rgba(240, 147, 251, 0.3);

}



.bag-designer-add-icon-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(240, 147, 251, 0.4);

}



.bag-designer-add-text-button svg,

.bag-designer-add-image-button svg,

.bag-designer-add-icon-button svg {

    width: 16px;

    height: 16px;

}



/* Layer Buttons - Horizontal 3 Column Grid */

.bag-designer-layer-buttons {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 8px;

    margin: 0;

}



/* Delete Layer Button */

.bag-designer-delete-layer {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 24px;

    height: 24px;

    padding: 0;

    margin: 0;

    background: #dc3545;

    color: white;

    border: none;

    border-radius: 6px;

    cursor: pointer;

    transition: all 0.3s ease;

    flex-shrink: 0;

}



.bag-designer-delete-layer:hover {

    background: #c82333;

    transform: scale(1.1);

}



.bag-designer-delete-layer svg {

    width: 14px;

    height: 14px;

}



/* Text Option Full */

.bag-designer-text-option-full {

    display: flex;

    flex-direction: column;

}



.bag-designer-text-option-full label {

    margin: 0 0 8px 0;

    font-size: 12px;

    font-weight: 600;

    color: #6c757d;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.bag-designer-text-option-full select {

    width: 100%;

    padding: 10px 12px;

    border: 2px solid #e9ecef;

    border-radius: 8px;

    font-size: 14px;

    font-family: inherit;

    background: white;

    color: #212529;

    cursor: pointer;

    transition: all 0.3s ease;

    appearance: none;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E");

    background-repeat: no-repeat;

    background-position: right 12px center;

    padding-right: 36px;

}



.bag-designer-text-option-full select:hover {

    border-color: #667eea;

    background-color: #f8f9ff;

}



.bag-designer-text-option-full select:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

}



/* Upload Button Inline */

.bag-designer-upload-button-inline {

    width: 100%;

    padding: 12px 16px;

    background: white;

    color: #667eea;

    border: 2px dashed #667eea;

    border-radius: 8px;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    margin-bottom: 16px;

    transition: all 0.3s ease;

}



.bag-designer-upload-button-inline:hover {

    background: #f0f3ff;

    border-color: #5568d3;

    transform: translateY(-1px);

}



.bag-designer-upload-button-inline svg {

    flex-shrink: 0;

}



.bag-designer-upload-button-inline.has-image {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border-color: transparent;

    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);

}



.bag-designer-upload-button-inline.has-image:hover {

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);

}



/* Expand/Collapse Button */

.bag-designer-layer-expand {

    background: none;

    border: none;

    padding: 4px;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #6c757d;

    transition: all 0.3s ease;

    border-radius: 4px;

    margin: 0;

}



.bag-designer-layer-expand:hover {

    background: #f8f9fa;

    color: #667eea;

}



.bag-designer-layer-expand .expand-icon {

    transition: transform 0.3s ease;

}



.bag-designer-layer-item.expanded .bag-designer-layer-expand .expand-icon {

    transform: rotate(180deg);

}



.bag-designer-image-filter-expandable {

    padding: 0;

    max-height: 0;

    overflow: hidden;

    transition: all 0.3s ease;

    background: #f8f9fa;

    border-top: 1px solid transparent;

}



.bag-designer-layer-item.expanded .bag-designer-image-filter-expandable {

    padding: 16px;

    max-height: 1000px;

    border-top-color: #e9ecef;

}



.bag-designer-text-controls-expandable {

    padding: 0;

    max-height: 0;

    overflow: hidden;

    transition: all 0.3s ease;

    background: #f8f9fa;

    border-top: 1px solid transparent;

}



.bag-designer-layer-item.expanded .bag-designer-text-controls-expandable {

    padding: 16px;

    max-height: 1000px;

    border-top-color: #e9ecef;

}



/* Product Info Section */

.bag-designer-product-info {

    margin-top: 0;

    padding: 8px;

    background: transparent;

    border-radius: 15px;

    border: none;

}



.product-info-title {

    margin: 0 0 16px 0;

    font-size: 24px;

    font-weight: 700;

    color: #212529;

    text-align: center;

}



.product-price-wrapper {

    text-align: center;

    margin: 0 0 16px 0;

    padding: 12px;

    background: transparent;

    order: 10;

}



.product-price {

    font-size: 32px;

    font-weight: 800;

    color: #667eea;

    display: inline-block;

    position: static !important;

}



.product-price del {

    font-size: 20px;

    color: #6c757d;

    margin-right: 8px;

}



.product-price ins {

    text-decoration: none;

}



.bag-designer-cart-form {

    display: flex;

    flex-direction: column;

    gap: 16px;

}



.bag-designer-cart-form .bag-designer-product-variations {

    order: 1;

}



.bag-designer-cart-form .product-quantity-wrapper {

    order: 3;

}



.bag-designer-cart-form .product-price-wrapper {

    order: 2;

}



.bag-designer-cart-form .single_add_to_cart_button {

    order: 4;

}



.product-quantity-wrapper {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

}



.product-quantity-wrapper label {

    font-size: 14px;

    font-weight: 600;

    color: #495057;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.product-quantity-wrapper .quantity {

    display: flex;

    align-items: center;

}



.product-quantity-wrapper input.qty {

    width: 70px;

    height: 45px;

    text-align: center;

    font-size: 16px;

    font-weight: 600;

    border: 2px solid #dee2e6;

    border-radius: 8px;

    padding: 0 8px;

    transition: all 0.3s ease;

}



.product-quantity-wrapper input.qty:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

}



.single_add_to_cart_button {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    width: 100%;

    padding: 16px 24px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border: none;

    border-radius: 50px;

    font-size: 16px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 1px;

    cursor: pointer;

    transition: all 0.3s ease;

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);

}



.single_add_to_cart_button:hover {

    transform: translateY(-2px);

    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5);

}



.single_add_to_cart_button:active {

    transform: translateY(0);

}



.single_add_to_cart_button svg {

    flex-shrink: 0;

}



/* Product Variations */

.bag-designer-product-variations {

    margin-top: 24px !important;

    padding: 0 20px;

    background: white;

    border-radius: 10px;

}



.bag-designer-variation-option {

    margin-bottom: 0;

}



.bag-designer-variation-label {

    display: flex;

    align-items: center;

    gap: 8px;

    margin: 0 0 12px 0;

    font-size: 14px;

    font-weight: 700;

    color: #495057;

    text-transform: uppercase;

    letter-spacing: 0.8px;

}



.bag-designer-variation-label svg {

    color: #667eea;

    flex-shrink: 0;

}



.bag-designer-variation-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

}



.bag-designer-variation-button {

    flex: 0 0 auto;

    padding: 4px 6px;

    margin: 0;

    background: white;

    color: #495057;

    border: 2px solid #dee2e6;

    border-radius: 8px;

    font-size: 14px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    position: relative;

    overflow: hidden;

}



.bag-designer-variation-button::before {

    content: '';

    position: absolute;

    top: 0;

    left: -100%;

    width: 100%;

    height: 100%;

    background: linear-gradient(90deg, transparent, rgba(102, 126, 234, 0.1), transparent);

    transition: left 0.5s ease;

}



.bag-designer-variation-button:hover {

    border-color: #667eea;

    color: #667eea;

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);

}



.bag-designer-variation-button:hover::before {

    left: 100%;

}



.bag-designer-variation-button.selected {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border-color: #667eea;

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);

    transform: translateY(-2px);

}



.bag-designer-variation-button.selected::after {

    content: '✓';

    position: absolute;

    top: 4px;

    right: 6px;

    font-size: 12px;

    font-weight: bold;

}



.bag-designer-variation-button:disabled {

    opacity: 0.4;

    cursor: not-allowed;

    background: #f8f9fa;

    color: #adb5bd;

}



.bag-designer-variation-button:disabled:hover {

    transform: none;

    box-shadow: none;

    border-color: #dee2e6;

}



/* Quantity wrapper enhancement */

.product-quantity-wrapper {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 12px;

    padding: 0 16px;

    background: white;

    border-radius: 10px;

    border: 2px solid #e9ecef;

    margin-bottom: 16px;

}



.product-quantity-wrapper label {

    display: flex;

    align-items: center;

    gap: 8px;

    font-size: 14px;

    font-weight: 700;

    color: #495057;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    margin: 0;

}



.product-quantity-wrapper label svg {

    color: #667eea;

    flex-shrink: 0;

}



/* Add to cart button enhancement */

.single_add_to_cart_button:disabled {

    opacity: 0.5;

    cursor: not-allowed;

    background: #6c757d;

}



/* Animation for variation change */

@keyframes variationPulse {

    0% {

        box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.7);

    }

    70% {

        box-shadow: 0 0 0 10px rgba(102, 126, 234, 0);

    }

    100% {

        box-shadow: 0 0 0 0 rgba(102, 126, 234, 0);

    }

}



.bag-designer-variation-button.selected {

    animation: variationPulse 0.6s ease-out;

}



/* Force add to cart button to be clickable */

.single_add_to_cart_button:disabled {

    opacity: 0.6;

    cursor: not-allowed;

    pointer-events: auto !important;

}



.single_add_to_cart_button.disabled {

    opacity: 0.6;

    background: #6c757d !important;

}



.single_add_to_cart_button:not(.disabled):not(:disabled) {

    cursor: pointer;

    pointer-events: auto;

}



/* Hide color attribute variation selector */

.bag-designer-variation-option:has(.bag-designer-variation-buttons[data-attribute-name*="color"]),

.bag-designer-variation-option:has(.bag-designer-variation-buttons[data-attribute-name*="colour"]) {

    display: none !important;

}



.bag-designer-color-input {

    display: none !important;

}



/* Price Wrapper Fix */

.bag-designer-cart-form .product-price-wrapper {

    text-align: center;

    padding: 0 16px !important;

    border: transparent !important;

    width: 100% !important;

    display: block !important;

    order: 3 !important;

    position: relative !important;

    float: none !important;

    clear: both !important;

}



.bag-designer-cart-form .product-price-wrapper .product-price,

.bag-designer-cart-form .product-price-wrapper #productPrice {

    font-size: 36px !important;

    font-weight: 800 !important;

    color: #667eea !important;

    display: block !important;

    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;

    line-height: 1.2 !important;

    margin: 0 !important;

    padding: 0 !important;

}



.bag-designer-cart-form .product-price-wrapper .woocommerce-Price-amount {

    display: inline-block !important;

    font-size: inherit !important;

    color: inherit !important;

}



.bag-designer-cart-form .product-price-wrapper .woocommerce-Price-currencySymbol {

    font-size: inherit !important;

    color: inherit !important;

}



.bag-designer-cart-form .product-price-wrapper del {

    font-size: 20px !important;

    color: #6c757d !important;

    margin-right: 8px !important;

    opacity: 0.7 !important;

}



.bag-designer-cart-form .product-price-wrapper ins {

    text-decoration: none !important;

    color: #28a745 !important;

}



.bag-designer-product-info .product-price-wrapper {

    position: static !important;

    transform: none !important;

    left: auto !important;

    right: auto !important;

    top: auto !important;

    bottom: auto !important;

}



/* Admin Orders List */

.column-bag_design_preview {

    width: 80px;

    text-align: center;

}



.column-bag_design_preview img:hover {

    transform: scale(1.1);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);

}



/* Icon Modal */

.bag-designer-icon-modal {

    display: none;

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.7);

    z-index: 10000;

    justify-content: center;

    align-items: center;

    padding: 20px;

    animation: fadeIn 0.3s ease;

}



@keyframes fadeIn {

    from { opacity: 0; }

    to { opacity: 1; }

}



.bag-designer-icon-modal-content {

    background: white;

    border-radius: 16px;

    max-width: 800px;

    width: 100%;

    max-height: 90vh;

    overflow: hidden;

    display: flex;

    flex-direction: column;

    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);

    animation: slideUp 0.3s ease;

}



@keyframes slideUp {

    from {

        transform: translateY(50px);

        opacity: 0;

    }

    to {

        transform: translateY(0);

        opacity: 1;

    }

}



.bag-designer-icon-modal-header {

    padding: 24px;

    border-bottom: 2px solid #e9ecef;

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.bag-designer-icon-modal-header h3 {

    margin: 0;

    font-size: 24px;

    font-weight: 700;

    color: #212529;

}



.bag-designer-icon-modal-close {

    background: none;

    border: none;

    font-size: 28px;

    color: #6c757d;

    cursor: pointer;

    padding: 0;

    width: 32px;

    height: 32px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    transition: all 0.3s ease;

}



.bag-designer-icon-modal-close:hover {

    background: #f8f9fa;

    color: #212529;

}



.bag-designer-icon-categories {

    padding: 16px 24px;

    border-bottom: 1px solid #e9ecef;

    display: flex;

    gap: 8px;

    flex-wrap: wrap;

}



.icon-category-btn {

    padding: 8px 16px;

    background: white;

    color: #495057;

    border: 2px solid #dee2e6;

    border-radius: 20px;

    font-size: 13px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

}



.icon-category-btn:hover {

    border-color: #667eea;

    color: #667eea;

}



.icon-category-btn.active {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border-color: transparent;

}



.bag-designer-icon-grid {

    padding: 24px;

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));

    gap: 16px;

    overflow-y: auto;

    max-height: calc(90vh - 200px);

}



.bag-designer-icon-item {

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    padding: 20px;

    background: #f8f9fa;

    border: 2px solid #e9ecef;

    border-radius: 12px;

    cursor: pointer;

    transition: all 0.3s ease;

}



.bag-designer-icon-item:hover {

    border-color: #667eea;

    background: white;

    transform: translateY(-4px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);

}



.bag-designer-icon-item svg {

    width: 48px;

    height: 48px;

    stroke: #495057;

    margin-bottom: 8px;

    transition: all 0.3s ease;

}



.bag-designer-icon-item:hover svg {

    stroke: #667eea;

    transform: scale(1.1);

}



.bag-designer-icon-item span {

    font-size: 12px;

    font-weight: 600;

    color: #495057;

    text-align: center;

}



.bag-designer-icon-grid::-webkit-scrollbar {

    width: 8px;

}



.bag-designer-icon-grid::-webkit-scrollbar-track {

    background: #f1f1f1;

}



.bag-designer-icon-grid::-webkit-scrollbar-thumb {

    background: #667eea;

    border-radius: 4px;

}



.bag-designer-icon-grid::-webkit-scrollbar-thumb:hover {

    background: #5568d3;

}



/* Text Layer Opacity & Alignment */

.bag-designer-text-controls-expandable .bag-designer-layer-opacity,

.bag-designer-text-controls-expandable .bag-designer-layer-alignment {

    display: flex;

    margin-top: 16px;

    padding-top: 16px;

    border-top: 1px solid #e9ecef;

}



.bag-designer-text-controls-expandable .bag-designer-layer-opacity {

    flex-direction: column;

    gap: 8px;

}



.bag-designer-text-controls-expandable .bag-designer-layer-opacity label {

    display: flex;

    align-items: center;

    gap: 8px;

    font-size: 12px;

    font-weight: 600;

    color: #6c757d;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    margin: 0;

}



.bag-designer-text-controls-expandable .opacity-slider-wrapper {

    display: flex;

    align-items: center;

    gap: 10px;

}



.bag-designer-text-controls-expandable .opacity-slider {

    flex: 1;

    height: 4px;

    border-radius: 2px;

    background: #e9ecef;

    outline: none;

    -webkit-appearance: none;
    appearance: none;

    cursor: pointer;

}



.bag-designer-text-controls-expandable .opacity-slider::-webkit-slider-thumb {

    -webkit-appearance: none;

    appearance: none;

    width: 14px;

    height: 14px;

    border-radius: 50%;

    background: #667eea;

    cursor: pointer;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);

    transition: all 0.2s ease;

}



.bag-designer-text-controls-expandable .opacity-slider::-webkit-slider-thumb:hover {

    transform: scale(1.2);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);

}



.bag-designer-text-controls-expandable .opacity-value {

    font-size: 11px;

    font-weight: 700;

    color: #667eea;

    min-width: 35px;

    text-align: right;

}



.bag-designer-text-controls-expandable .bag-designer-layer-alignment {

    flex-direction: column;

    gap: 8px;

}



.bag-designer-text-controls-expandable .bag-designer-layer-alignment label {

    display: flex;

    align-items: center;

    gap: 8px;

    font-size: 12px;

    font-weight: 600;

    color: #6c757d;

    text-transform: uppercase;

    letter-spacing: 0.5px;

    margin: 0;

}



.bag-designer-text-controls-expandable .alignment-buttons {

    display: flex;

    gap: 8px;

}



.bag-designer-text-controls-expandable .alignment-buttons button {

    flex: 1;

    display: flex;

    align-items: center;

    justify-content: center;

    height: 38px;

    padding: 0;

    background: white;

    color: #6c757d;

    border: 2px solid #dee2e6;

    border-radius: 6px;

    cursor: pointer;

    transition: all 0.2s ease;

}



.bag-designer-text-controls-expandable .alignment-buttons button:hover {

    background: #667eea;

    border-color: #667eea;

    color: white;

    transform: translateY(-1px);

    box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);

}



.bag-designer-text-controls-expandable .alignment-buttons button svg {

    width: 16px;

    height: 16px;

}



/* Snapping Toggle */

.bag-designer-snap-toggle {

    margin-bottom: 20px !important;

    padding: 8px 16px;

    background: transparent;

    border-radius: 8px;

}



.bag-designer-snap-toggle label {

    display: flex;

    align-items: center;

    justify-content: space-between;

    cursor: pointer;

    user-select: none;

    margin: 0;

    gap: 12px;

}



.bag-designer-snap-toggle span {

    font-size: 14px;

    font-weight: 600;

    color: #495057;

    order: 1;

}



.bag-designer-snap-toggle input[type="checkbox"] {

    appearance: none;

    -webkit-appearance: none;

    -moz-appearance: none;

    width: 48px;

    height: 26px;

    margin: 0;

    background: #ccc;

    border-radius: 13px;

    position: relative;

    cursor: pointer;

    transition: background 0.3s ease;

    order: 2;

    flex-shrink: 0;

}



.bag-designer-snap-toggle input[type="checkbox"]::after {

    content: '';

    position: absolute;

    width: 22px;

    height: 22px;

    border-radius: 50%;

    background: white;

    top: 2px;

    left: 2px;

    transition: transform 0.3s ease;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);

}



.bag-designer-snap-toggle input[type="checkbox"]:checked {

    background: #667eea;

}



.bag-designer-snap-toggle input[type="checkbox"]:checked::after {

    transform: translateX(22px);

}



.bag-designer-snap-toggle input[type="checkbox"]:focus {

    outline: 2px solid #667eea;

    outline-offset: 2px;

}



/* Quantity Selector - Rounded Style */

.ux-quantity.quantity.buttons_added {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    background: transparent;

}



.ux-quantity.quantity.buttons_added .minus,

.ux-quantity.quantity.buttons_added .plus {

    width: 36px;

    height: 36px;

    border-radius: 50%;

    color: #495057;

    font-size: 18px;

    font-weight: 700;

    cursor: pointer;

    transition: all 0.2s ease;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

}



.ux-quantity.quantity.buttons_added .minus:active,

.ux-quantity.quantity.buttons_added .plus:active {

    color: white;

    transform: scale(0.9);

}



.ux-quantity.quantity.buttons_added .qty,

.ux-quantity.quantity.buttons_added input[type="number"] {

    width: 50px;

    height: 36px;

    text-align: center;

    font-size: 15px;

    font-weight: 600;

    border-radius: 8px;

    color: #212529;

    background: white;

    -moz-appearance: textfield;

    appearance: textfield;

    margin: 0;

    padding: 0;

}



.ux-quantity.quantity.buttons_added .qty::-webkit-outer-spin-button,

.ux-quantity.quantity.buttons_added .qty::-webkit-inner-spin-button,

.ux-quantity.quantity.buttons_added input[type="number"]::-webkit-outer-spin-button,

.ux-quantity.quantity.buttons_added input[type="number"]::-webkit-inner-spin-button {

    -webkit-appearance: none;

    margin: 0;

}



.ux-quantity.quantity.buttons_added .qty:focus,

.ux-quantity.quantity.buttons_added input[type="number"]:focus {

    outline: none;

}



.ux-quantity.quantity.buttons_added .minus:disabled,

.ux-quantity.quantity.buttons_added .plus:disabled {

    opacity: 0.3;

    cursor: not-allowed;

}



/* Font Dropdown Preview */

.text-layer-font option {

    padding: 12px 10px !important;

    font-size: 16px !important;

    line-height: 1.8 !important;

}



.text-layer-font option[value="Arial"] { font-family: Arial, sans-serif !important; }

.text-layer-font option[value="Helvetica"] { font-family: Helvetica, sans-serif !important; }

.text-layer-font option[value="Verdana"] { font-family: Verdana, sans-serif !important; }

.text-layer-font option[value="'Trebuchet MS'"] { font-family: 'Trebuchet MS', sans-serif !important; }

.text-layer-font option[value="'Gill Sans'"] { font-family: 'Gill Sans', sans-serif !important; }

.text-layer-font option[value="'Century Gothic'"] { font-family: 'Century Gothic', sans-serif !important; }

.text-layer-font option[value="'Segoe UI'"] { font-family: 'Segoe UI', sans-serif !important; }

.text-layer-font option[value="'Times New Roman'"] { font-family: 'Times New Roman', serif !important; }

.text-layer-font option[value="Georgia"] { font-family: Georgia, serif !important; }

.text-layer-font option[value="Garamond"] { font-family: Garamond, serif !important; }

.text-layer-font option[value="'Palatino Linotype'"] { font-family: 'Palatino Linotype', serif !important; }

.text-layer-font option[value="'Book Antiqua'"] { font-family: 'Book Antiqua', serif !important; }

.text-layer-font option[value="Baskerville"] { font-family: Baskerville, serif !important; }

.text-layer-font option[value="'Brush Script MT'"] { font-family: 'Brush Script MT', cursive !important; }

.text-layer-font option[value="'Lucida Handwriting'"] { font-family: 'Lucida Handwriting', cursive !important; }

.text-layer-font option[value="'Comic Sans MS'"] { font-family: 'Comic Sans MS', cursive !important; }

.text-layer-font option[value="Papyrus"] { font-family: Papyrus, fantasy !important; }

.text-layer-font option[value="'Monotype Corsiva'"] { font-family: 'Monotype Corsiva', cursive !important; }

.text-layer-font option[value="Impact"] { font-family: Impact, fantasy !important; }

.text-layer-font option[value="'Arial Black'"] { font-family: 'Arial Black', sans-serif !important; }

.text-layer-font option[value="'Courier New'"] { font-family: 'Courier New', monospace !important; }

.text-layer-font option[value="Monaco"] { font-family: Monaco, monospace !important; }

.text-layer-font option[value="Consolas"] { font-family: Consolas, monospace !important; }

.text-layer-font option[value="'Traditional Arabic'"] { font-family: 'Traditional Arabic', serif !important; }

.text-layer-font option[value="'Simplified Arabic'"] { font-family: 'Simplified Arabic', sans-serif !important; }

.text-layer-font option[value="'Arabic Typesetting'"] { font-family: 'Arabic Typesetting', serif !important; }

.text-layer-font option[value="Tahoma"] { font-family: Tahoma, sans-serif !important; }

.text-layer-font option[value="Amiri"] { font-family: Amiri, serif !important; }

.text-layer-font option[value="Cairo"] { font-family: Cairo, sans-serif !important; }

.text-layer-font option[value="Tajawal"] { font-family: Tajawal, sans-serif !important; }

.text-layer-font option[value="Almarai"] { font-family: Almarai, sans-serif !important; }



.text-layer-font optgroup {

    font-weight: 700 !important;

    font-size: 14px !important;

    color: #212529 !important;

    background: #f0f3ff !important;

    padding: 8px 0 !important;

    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;

}



.bag-designer-text-option-col select,

.bag-designer-text-controls-expandable select {

    min-height: 42px !important;

    max-height: none !important;

    overflow: visible !important;

    display: block !important;

}



.bag-designer-text-option-col select option,

.text-layer-font option {

    display: block !important;

    padding: 10px 12px !important;

    min-height: 36px !important;

    background: white !important;

    color: #212529 !important;

}



.bag-designer-text-option-col select option:hover,

.text-layer-font option:hover {

    background: #f0f3ff !important;

    color: #667eea !important;

}



.bag-designer-text-option-col select option:checked,

.text-layer-font option:checked {

    background: #667eea !important;

    color: white !important;

    font-weight: 600 !important;

}



.bag-designer-text-option-col,

.bag-designer-text-option-full {

    position: relative !important;

    z-index: 1 !important;

}



.bag-designer-text-option-col select:focus,

.text-layer-font:focus {

    z-index: 10 !important;

}



/* Canvas Touch Support */

.bag-designer-canvas {

    touch-action: pan-y pan-x;

    user-select: none;

    -webkit-user-select: none;

    -webkit-tap-highlight-color: transparent;

}



.bag-designer-container {

    touch-action: manipulation;

}



.bag-designer-controls-column {

    touch-action: auto;

    overflow-y: auto;

    -webkit-overflow-scrolling: touch;

}





/* Touch-friendly adjustments */

@media (hover: none) and (pointer: coarse) {

    .bag-designer-base-option {

        min-height: 60px;

    }



    .bag-designer-layer-item {

        min-height: 60px;

        padding: 12px;

    }



    .bag-designer-variation-button,

    .bag-designer-layer-alignment button,

    .bag-designer-delete-layer,

    .bag-designer-layer-expand {

        min-height: 48px;

        min-width: 48px;

    }



    .bag-designer-layer-item:active,

    .bag-designer-variation-button:active,

    button:active {

        transform: scale(0.98);

        opacity: 0.8;

    }



    .bag-designer-canvas {

        touch-action: none;

        cursor: default !important;

    }



    .bag-designer-base-option:hover,

    .bag-designer-layer-item:hover,

    .bag-designer-variation-button:hover {

        transform: none;

        box-shadow: none;

    }



    .bag-designer-canvas,

    .bag-designer-preview-box,

    .bag-designer-layer-item {

        -webkit-user-select: none;

        -moz-user-select: none;

        -ms-user-select: none;

        user-select: none;

        -webkit-touch-callout: none;

        -webkit-tap-highlight-color: transparent;

    }



    .bag-designer-canvas {

        --handle-size: 16px;

    }

}





/* ===================================

   FINAL UTILITY CLASSES & FIXES

   =================================== */



/* Prevent text selection during drag */

.bag-designer-container.dragging * {

    user-select: none !important;

    -webkit-user-select: none !important;

    -moz-user-select: none !important;

}



/* Loading state */

.bag-designer-container.loading {

    opacity: 0.6;

    pointer-events: none;

}



.bag-designer-container.loading::after {

    content: '';

    position: fixed;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    width: 50px;

    height: 50px;

    border: 4px solid #f3f3f3;

    border-top: 4px solid #667eea;

    border-radius: 50%;

    animation: spin 1s linear infinite;

    z-index: 10001;

}



@keyframes spin {

    0% { transform: translate(-50%, -50%) rotate(0deg); }

    100% { transform: translate(-50%, -50%) rotate(360deg); }

}



/* Hidden utility */

.bag-designer-hidden {

    display: none !important;

}



/* Disabled state */

.bag-designer-disabled {

    opacity: 0.5;

    pointer-events: none;

    cursor: not-allowed;

}



/* Error state */

.bag-designer-error {

    border-color: #dc3545 !important;

    background-color: #f8d7da !important;

}



/* Success state */

.bag-designer-success {

    border-color: #28a745 !important;

    background-color: #d4edda !important;

}



/* Print styles */

@media print {

    .bag-designer-controls-column,

    .bag-designer-action-buttons,

    .bag-designer-layer-control,

    .bag-designer-text-controls,

    .bag-color-selector,

    .bag-designer-product-info {

        display: none !important;

    }



    .bag-designer-preview-box {

        max-width: 100%;

        page-break-inside: avoid;

    }

}



/* Accessibility improvements */

.bag-designer-container *:focus-visible {

    outline: 3px solid #667eea;

    outline-offset: 2px;

}



/* Reduced motion */

@media (prefers-reduced-motion: reduce) {

    * {

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;

    }

}



/* High contrast mode */

@media (prefers-contrast: high) {

    .bag-designer-layer-item,

    .bag-designer-base-option,

    .bag-designer-variation-button {

        border-width: 3px;

    }



    .bag-designer-layer-item.selected {

        border-width: 4px;

    }

}



/* Dark mode support (optional) */

@media (prefers-color-scheme: dark) {

    .bag-designer-container {

        color-scheme: light;

    }

}



/* Force light mode for designer */

.bag-designer-container,

.bag-designer-container * {

    color-scheme: light !important;

}



/* ===================================

   DESKTOP RESET TO ORIGINAL LAYOUT

   (desktop >= 769px keeps old design)

   =================================== */

@media (min-width: 769px) {

    /* Wrapper back to neutral on desktop */

    .bag-designer-product-wrapper {

        margin: 20px 0;

        padding: 30px 20px ;

        max-width: 100%;

        border-radius: 0;

        background: transparent;

        overflow: visible;

        position: relative;

    }



    .bag-designer-product-wrapper::before {

        display: none;

    }



    /* Container & columns: original two-column grid */

    .bag-designer-container {

        max-width: 100%;

        margin: 20px auto;

        padding: 15px;

        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

        display: block;

    }



    .bag-designer-row {

        display: grid;

        grid-template-columns: 1fr 1fr;

        gap: 20px;

        align-items: start;

    }



    .bag-designer-preview-column,

    .bag-designer-controls-column {

        width: 100%;

        display: block;

    }



    /* Preview box: original card style */

    .bag-designer-preview-box {

        position: relative;

        background: #f8f9fa;

        border: 1px solid #dee2e6;

        border-radius: 8px;

        overflow: hidden;

        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);

        position: sticky;

        top: 20px;

    }



    /* Controls box: original card style */

    .bag-designer-controls-box {

        background: #ffffff;

        border-radius: 8px;

        padding: 10px;

        margin-bottom: 20px;

        display: block;

    }



    /* Title / description colors back to dark text */

    .bag-designer-title {

        margin: 0 0 8px 0;

        font-size: 22px;

        font-weight: 700;

        color: #000000;

    }



    .bag-designer-description {

        margin: 0 0 20px 0;

        color: #000000;

        font-size: 14px;

        line-height: 1.4;

    }

	

	.bag-designer-small-description {

        margin: 0 0 20px 0;

        color: #000000;

        font-size: 18px;

        line-height: 0.6;

    }

	

	



    /* Product info card: original styling */

    .bag-designer-product-info {

        margin-top: 0;

        padding: 8px;

        border-radius: 12px;

    }



    /* Hide mobile-only layers button on desktop */

    .bag-designer-layers-open-button {

        display: none;

    }

}



/* ===================================

   LAYERS BUTTON WITH LABEL - HORIZONTAL

   =================================== */



/* Wrapper for label + button */

.bag-designer-layers-wrapper {

    display: none; /* Hidden on desktop */

}



@media (max-width: 768px) {

    /* ✅ Show wrapper on mobile */

    .bag-designer-layers-wrapper {

        display: none !important;

        flex-direction: row !important;

        align-items: center !important;

        gap: 8px !important;

        margin-top: 6px;

        width: 100%;

    }



    /* Label styling */

    .bag-designer-layers-wrapper .Layers-label {

        font-size: 11px;

        font-weight: 600;

        color: #495057;

        text-align: left;

        white-space: nowrap;

        flex-shrink: 0;

        text-transform: uppercase;

        letter-spacing: 0.5px;

    }



    /* Button takes remaining space */

    .bag-designer-layers-wrapper .bag-designer-layers-open-button {

        flex: 1;

        min-width: 0;

        margin-top: 0 !important; /* Remove individual margin */

    }



    /* Layers open button - compact with icon */

    .bag-designer-layers-open-button {

        display: flex;

        width: 100%;

        padding: 10px;

        background: transparent;

        color: #495057;

        border-radius: 8px;

        border: none;

        font-size: 0;

        font-weight: 600;

        align-items: center;

        justify-content: center;

        gap: 6px;

        cursor: pointer;

        transition: all 0.2s ease;

        min-height: 44px;

    }



    .bag-designer-layers-open-button span {

        display: none;

    }



    .bag-designer-layers-open-button svg {

        width: 20px;

        height: 20px;

        margin: 0;

    }



    .bag-designer-layers-open-button:hover {

        border-color: #667eea;

        color: #667eea;

        background: #f8f9ff;

    }

}



/* Extra small screens */

@media (max-width: 480px) {

    .bag-designer-layers-wrapper .Layers-label {

        font-size: 10px;

    }



    .bag-designer-layers-open-button {

        min-height: 40px;

        padding: 8px;

    }



    .bag-designer-layers-open-button svg {

        width: 18px;

        height: 18px;

    }

}







/* Size Lightbox Overlay */

.bag-designer-size-lightbox {

    display: none;

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.7);

    z-index: 100000;

    backdrop-filter: blur(5px);

    animation: fadeIn 0.3s ease;

}



.bag-designer-size-lightbox.active {

    display: flex;

    align-items: center;

    justify-content: center;

}



/* Size Lightbox Content */

.bag-designer-size-lightbox-content {

    background: white;

    border-radius: 16px;

    padding: 24px;

    max-width: 500px;

    width: 90%;

    max-height: 80vh;

    overflow-y: auto;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);

    animation: slideUp 0.3s ease;

    position: relative;

}



/* Size Lightbox Header */

.bag-designer-size-lightbox-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 20px;

    padding-bottom: 16px;

    border-bottom: 2px solid #e9ecef;

}



.bag-designer-size-lightbox-header h3 {

    margin: 0;

    font-size: 20px;

    font-weight: 700;

    color: #495057;

    display: flex;

    align-items: center;

    gap: 8px;

}



.bag-designer-size-lightbox-close {

    background: #f8f9fa;

    border: none;

    width: 32px;

    height: 32px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    transition: all 0.3s ease;

    color: #6c757d;

}



.bag-designer-size-lightbox-close:hover {

    background: #ff4444;

    color: white;

    transform: rotate(90deg);

}



.bag-designer-size-lightbox-close svg {

    width: 16px;

    height: 16px;

}



/* Size Options Container */

#bagDesignerSizeOptions {

    display: flex;

    flex-direction: column;

    gap: 10px;

}



/* Size Selection Items */

#bagDesignerSizeOptions .selection-item {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 16px 18px;

    background: #f8f9fa;

    border: 2px solid #e9ecef;

    border-radius: 10px;

    cursor: pointer;

    transition: all 0.3s ease;

    font-size: 15px;

    font-weight: 600;

    color: #495057;

}



#bagDesignerSizeOptions .selection-item:hover {

    border-color: #ff8c00;

    background: #fff7ec;

    transform: translateX(5px);

}



#bagDesignerSizeOptions .selection-item.selected {

    border-color: #ff8c00;

    background: linear-gradient(135deg, #fff7ec 0%, #ffe5cc 100%);

    box-shadow: 0 4px 12px rgba(255, 140, 0, 0.2);

}



#bagDesignerSizeOptions .selection-item::after {

    content: "✓";

    opacity: 0;

    font-size: 18px;

    color: #ff8c00;

    font-weight: 700;

    transition: opacity 0.3s ease;

}



#bagDesignerSizeOptions .selection-item.selected::after {

    opacity: 1;

}



/* Animations */

@keyframes fadeIn {

    from {

        opacity: 0;

    }

    to {

        opacity: 1;

    }

}



@keyframes slideUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}





/* ===================================

   MOBILE-SPECIFIC COMPACT DESIGN

   (max-width: 768px)

   =================================== */

@media (max-width: 768px) {

    /* 80/20 horizontal layout via flex columns (container stays flex) */

    .bag-designer-container {

        padding: 10px;

    }



    .bag-designer-preview-column {

        flex: 0 0 80%;

        max-width: 80%;

    }



    .bag-designer-controls-column {

        flex: 0 0 20%;

        max-width: 20%;

        gap: 8px;

		background-color: transparent;

    }



    /* Stack add-layer buttons vertically - icon only */

    .bag-designer-layer-buttons {

        display: flex;

        flex-direction: column;

        gap: 1px;

    }



    .bag-designer-add-text-button,

    .bag-designer-add-image-button,

    .bag-designer-add-icon-button {

        padding: 10px;

        font-size: 0;

        border-radius: 8px;

        min-height: 44px;

        width: 100%;

        justify-content: center;

    }



    /* Hide button text, show only icons */

    .bag-designer-add-text-button span,

    .bag-designer-add-image-button span,

    .bag-designer-add-icon-button span {

        display: none;

    }



    /* Make icons larger and centered */

    .bag-designer-add-text-button svg,

    .bag-designer-add-image-button svg,

    .bag-designer-add-icon-button svg {

        width: 20px;

        height: 20px;

        margin: 0;

    }

	

	.bag-designer-add-text-button{

		border-radius: 8px 8px 0 0;

	}

	

	.bag-designer-add-text-button::before {

        content: "T";

        font-size: 18px;

        font-weight: 700;

        font-family: serif;

        display: block;

    }



    .bag-designer-add-text-button svg {

        display: none;

    }



    /* Add Image button - show image icon */

    .bag-designer-add-image-button::before {

        content: "🖼️";

        font-size: 18px;

        display: block;

    }



    .bag-designer-add-image-button svg {

        display: none;

    }



    /* Add Icon button - keep existing icon */

    .bag-designer-add-icon-button svg {

        display: block;

    }

	

	.bag-designer-add-image-button{

		border-radius: 0;

	}

	

    .bag-designer-add-icon-button{

		border-radius: 0 0 8px 8px;

	}

    /* Hide Layers toggle button; use inline stack instead */
    #bagDesignerOpenLayersPanel {
        display: none !important;
    }



    /* Enable touch dragging for layer handles on mobile */

    .bag-designer-layer-drag-handle {

        touch-action: none;

        -webkit-touch-callout: none;

        -webkit-user-select: none;

        user-select: none;

    }



    /* Size selector trigger button - compact */

    .bag-designer-size-open-button {

        margin-top: 8px;

        width: 100%;

        padding: 10px;

        border-radius: 8px;

        border: 2px solid #dee2e6;

        background: #ffffff;

        font-size: 0;

        font-weight: 600;

        color: #495057;

        cursor: pointer;

        transition: all 0.2s ease;

        min-height: 44px;

        display: flex;

        align-items: center;

        justify-content: center;

    }

	

	.product-quantity-wrapper input.qty {

		border: 1px solid #9aa1a6 !important;

		box-shadow: none !important;

		border-radius: 8px !important;

	}

    .bag-designer-size-open-button:hover {

        border-color: #ff8c00;

        color: #ff8c00;

        background: #fff7ec;

    }



    /* Upload button - compact icon only */

    .bag-designer-upload-button {

        width: 100%;

        padding: 10px;

        font-size: 0;

        min-height: 44px;

        border-radius: 8px;

    }



    .bag-designer-upload-button span {

        display: none;

    }



    .bag-designer-upload-button svg {

        width: 20px;

        height: 20px;

        margin: 0;

    }



    /* Action buttons - compact */

    .bag-designer-action-buttons {

        gap: 6px;

    }



    .bag-designer-download-button,

    .bag-designer-reset-button {

        padding: 10px !important;

        font-size: 0;

        min-height: 44px;

    }



    .bag-designer-download-button span,

    .bag-designer-reset-button span {

        display: none;

    }



    .bag-designer-download-button svg,

    .bag-designer-reset-button svg {

        width: 20px;

        height: 20px;

        margin: 0;

    }



    /* Snap toggle - compact with emoji only for mobile */

    .bag-designer-snap-toggle {

        padding: 4px 6px;

        margin: 0;

		background-color: transparent;

		border: none;

    }



    .bag-designer-snap-toggle label {

        gap: 4px;

        flex-direction: column;

    }



    .bag-designer-snap-toggle span {

        font-size: 0;

        order: 1;

    }



    .bag-designer-snap-toggle span::before {

        content: "🧲";

        font-size: 12px;

        display: block;

    }



    .bag-designer-snap-toggle input[type="checkbox"] {

        width: 32px;

        height: 18px;

        border-radius: 9px;

        order: 2;

    }



    .bag-designer-snap-toggle input[type="checkbox"]::after {

        width: 14px;

        height: 14px;

        top: 2px;

        left: 2px;

    }



    .bag-designer-snap-toggle input[type="checkbox"]:checked::after {

        transform: translateX(14px);

    }



    /* Size lightbox options reuse selection-item styling from layout template */

    #bagDesignerSizeOptions .selection-item {

        padding: 14px 16px;

        font-size: 15px;

    }



    /* Base selector - compact grid */

    .bag-designer-base-selector {

        margin-bottom: 12px;

        padding-bottom: 10px;

    }



    .bag-designer-base-selector h3 {

        font-size: 0;

        margin-bottom: 8px;

    }



    .bag-designer-base-selector h3::before {

        content: "👜";

        font-size: 18px;

    }



    .bag-designer-base-grid {

        grid-template-columns: 1fr;

        gap: 6px;

        max-height: 120px;

    }



    .bag-designer-base-option {

        aspect-ratio: 1;

    }



    /* Product info - compact */

    .product-info-title {

        font-size: 18px;

        margin-bottom: 12px;

    }



    .product-price {

        font-size: 24px;

    }



    .product-price del {

        font-size: 16px;

    }



    /* Variation buttons - smaller */

    .bag-designer-variation-button {

        padding: 8px 12px;

        font-size: 13px;

    }



    /* Quantity wrapper - compact */

    .product-quantity-wrapper {

        padding: 8px 12px;

        gap: 8px;

    }



    .product-quantity-wrapper label {

        font-size: 12px;

    }



    .product-quantity-wrapper input.qty {

        width: 60px;

        height: 38px;

        font-size: 14px;

    }



    /* Add to cart button - slightly smaller */

    .single_add_to_cart_button {

        padding: 14px 20px;

        font-size: 14px;

    }

}



/* Extra compact for very small screens */

@media (max-width: 480px) {

    .bag-designer-container {

        padding: 8px;

    }



    .bag-designer-controls-column {

        gap: 6px;

    }



    .bag-designer-add-text-button,

    .bag-designer-add-image-button,

    .bag-designer-add-icon-button,

    .bag-designer-layers-open-button,

    .bag-designer-upload-button,

    .bag-designer-download-button,

    .bag-designer-reset-button {

        min-height: 40px;

        padding: 8px;

    }



    .bag-designer-add-text-button svg,

    .bag-designer-add-image-button svg,

    .bag-designer-add-icon-button svg,

    .bag-designer-layers-open-button svg,

    .bag-designer-upload-button svg,

    .bag-designer-download-button svg,

    .bag-designer-reset-button svg {

        width: 18px;

        height: 18px;

    }



    .color-preview-box img {

        width: 32px;

        height: 32px;

    }

	

	.bag-designer-snap-toggle input[type="checkbox"] {

        width: 28px;

        height: 16px;

        border-radius: 8px;

    }



    .bag-designer-snap-toggle input[type="checkbox"]::after {

        width: 12px;

        height: 12px;

    }



    .bag-designer-snap-toggle input[type="checkbox"]:checked::after {

        transform: translateX(12px);

    }

	

	.bag-designer-size-lightbox-content {

        max-width: 95%;

        padding: 20px;

    }



    #bagDesignerSizeOptions .selection-item {

        padding: 14px 16px;

        font-size: 14px;

    }

}











/* ===== SIZE SELECTOR - DESKTOP vs MOBILE ===== */



/* DESKTOP: Show buttons, hide lightbox trigger */

.bag-designer-size-buttons-desktop {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

}



.bag-designer-size-open-button {

    display: none; /* Hidden on desktop */

}



/* MOBILE: Hide buttons, show lightbox trigger */

@media (max-width: 768px) {

    .bag-designer-size-buttons-desktop {

        display: none !important; /* Hide desktop buttons on mobile */

    }

    

    .bag-designer-size-open-button {

        display: flex; /* Show mobile lightbox button */

        align-items: center;

        justify-content: center;

        width: 100%;

        padding: 14px 20px;

        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

        color: white;

        border: none;

        border-radius: 10px;

        font-size: 16px;

        font-weight: 600;

        cursor: pointer;

        transition: all 0.3s ease;

        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);

    }

    

    .bag-designer-size-open-button:hover {

        transform: translateY(-2px);

        box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);

    }

}



/* Size Lightbox Styles (same as before) */

.bag-designer-size-lightbox {

    display: none;

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background: rgba(0, 0, 0, 0.7);

    z-index: 100000;

    backdrop-filter: blur(5px);

    align-items: center;

    justify-content: center;

}



.bag-designer-size-lightbox.active {

    display: flex;

}



.bag-designer-size-lightbox-content {

    background: white;

    border-radius: 16px;

    padding: 24px;

    max-width: 500px;

    width: 90%;

    max-height: 80vh;

    overflow-y: auto;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);

    animation: slideUp 0.3s ease;

}



.bag-designer-size-lightbox-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 20px;

    padding-bottom: 16px;

    border-bottom: 2px solid #e9ecef;

}



.bag-designer-size-lightbox-header h3 {

    margin: 0;

    font-size: 20px;

    font-weight: 700;

    color: #495057;

}



.bag-designer-size-lightbox-close {

    background: #f8f9fa;

    border: none;

    width: 32px;

    height: 32px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    transition: all 0.3s ease;

}



.bag-designer-size-lightbox-close:hover {

    background: #ff4444;

    color: white;

    transform: rotate(90deg);

}



#bagDesignerSizeOptions .selection-item {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 16px 18px;

    background: #f8f9fa;

    border: 2px solid #e9ecef;

    border-radius: 10px;

    cursor: pointer;

    transition: all 0.3s ease;

    font-size: 15px;

    font-weight: 600;

    color: #495057;

    margin-bottom: 10px;

}



#bagDesignerSizeOptions .selection-item:hover {

    border-color: #ff8c00;

    background: #fff7ec;

    transform: translateX(5px);

}



#bagDesignerSizeOptions .selection-item.selected {

    border-color: #ff8c00;

    background: linear-gradient(135deg, #fff7ec 0%, #ffe5cc 100%);

    box-shadow: 0 4px 12px rgba(255, 140, 0, 0.2);

}



#bagDesignerSizeOptions .selection-item::after {

    content: "✓";

    opacity: 0;

    font-size: 18px;

    color: #ff8c00;

    font-weight: 700;

}



#bagDesignerSizeOptions .selection-item.selected::after {

    opacity: 1;

}









/* ===== SIZE LIGHTBOX (Mobile) ===== */

.bag-designer-size-open-button {

    display: none; /* Hidden on desktop */

    width: 100%;

    padding: 14px 20px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border: none;

    border-radius: 12px;

    font-size: 16px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);

    text-align: left;

}



.bag-designer-size-open-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);

}



/* Show on mobile */

@media (max-width: 768px) {

    

    .bag-designer-size-open-button {

        display: block !important;

    }

}



/* Size lightbox styling */

.bag-designer-size-lightbox .bag-designer-lightbox-content {

    max-width: 500px;

}



.bag-designer-size-lightbox .selection-item {

    padding: 16px 20px;

    background: white;

    border: 2px solid #e0e0e0;

    border-radius: 12px;

    margin-bottom: 12px;

    cursor: pointer;

    transition: all 0.3s ease;

    font-size: 16px;

    font-weight: 500;

    text-align: center;

}



.bag-designer-size-lightbox .selection-item:hover {

    border-color: #667eea;

    background: #f8f9ff;

    transform: translateX(5px);

}



.bag-designer-size-lightbox .selection-item.selected {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border-color: #667eea;

}



.bag-designer-size-lightbox .selection-item.selected::after {

    content: ' ✓';

    float: right;

}





/* ===================================

   MOBILE COMPACT BUTTONS - 20% COLUMN OPTIMIZED

   =================================== */

@media (max-width: 768px) {

    

    /* ===== SIZE BUTTON - Fits 20% column ===== */

    .bag-designer-size-open-button {

        display: flex !important;

        align-items: center;

        justify-content: center;

        width: 100%;

        padding: 8px 4px !important;

        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

        color: white;

        border: none;

        border-radius: 8px;

        font-size: 11px;

        font-weight: 600;

        cursor: pointer;

        transition: all 0.3s ease;

        box-shadow: 0 2px 6px rgba(102, 126, 234, 0.3);

        min-height: 40px;

        gap: 4px;

        text-align: center;

        word-break: break-word;

        line-height: 1.2;

    }

	

	.bag-designer-variation-label{

		display: none !important;

	}

	

	.bag-color-selector {

		margin: 0;

		padding: 0;

		color: transparent !important;

	}

    

    .bag-designer-size-open-button:hover {

        transform: translateY(-2px);

        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);

    }

    

    /* ===== QUANTITY WRAPPER - Compact for narrow space ===== */

    .product-quantity-wrapper {

        display: flex;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        gap: 6px;

        padding: 8px 4px !important;

        background: white;

        border-radius: 8px;

        border: none !important;

        margin-bottom: 10px;

        width: 100%;

    }

    

    .product-quantity-wrapper label {

        display: flex;

        align-items: center;

        justify-content: center;

        gap: 4px;

        font-size: 10px;

        font-weight: 600;

        color: #495057;

        text-transform: uppercase;

        letter-spacing: 0.3px;

        margin: 0;

        text-align: center;

    }

    

    .product-quantity-wrapper label svg {

        width: 12px;

        height: 12px;

        color: #667eea;

        flex-shrink: 0;

    }

    

    .product-quantity-wrapper .quantity {

        width: 100%;

        display: flex;

        justify-content: center;

    }

    

    .product-quantity-wrapper input.qty {

        width: 100%;

        max-width: 50px;

        height: 32px;

        text-align: center;

        font-size: 13px;

        font-weight: 600;

        border: 2px solid #dee2e6;

        border-radius: 6px;

        padding: 0 4px;

    }

    

    .product-quantity-wrapper input.qty:focus {

        outline: none;

        border-color: #667eea;

        box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);

    }

    

    /* Hide +/- buttons if they exist (too cramped) */

    .product-quantity-wrapper .minus,

    .product-quantity-wrapper .plus {

        display: none !important;

    }

    

    /* ===== PRICE WRAPPER - Vertical compact layout ===== */

    .bag-designer-cart-form .product-price-wrapper {

        text-align: center;

        padding: 8px 4px !important;

        background: #ffffff !important;

        border-radius: 8px !important;

        border: none !important;

        box-shadow: none !important;

        width: 100% !important;

        display: flex !important;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        order: 2 !important;

        margin-bottom: 0px;

        min-height: 50px;

    }

    

    .bag-designer-cart-form .product-price-wrapper .product-price,

    .bag-designer-cart-form .product-price-wrapper #productPrice {

        font-size: 18px !important;

        font-weight: 700 !important;

        color: #667eea !important;

        display: block !important;

        line-height: 1.1 !important;

        margin: 0 !important;

        padding: 0 !important;

        word-break: break-word;

        text-align: center;

    }

    

    .bag-designer-cart-form .product-price-wrapper del {

        font-size: 12px !important;

        color: #6c757d !important;

        display: block;

        margin-bottom: 2px !important;

    }

    

    .bag-designer-cart-form .product-price-wrapper ins {

        text-decoration: none !important;

        display: block;

    }

    

    /* ===== ADD TO CART BUTTON - Vertical text layout ===== */

    .single_add_to_cart_button {

        display: flex;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        gap: 4px;

        width: 100%;

        padding: 10px 4px !important;

        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

        color: white;

        border: none;

        border-radius: 8px;

        font-size: 10px;

        font-weight: 700;

        text-transform: uppercase;

        letter-spacing: 0.3px;

        cursor: pointer;

        transition: all 0.3s ease;

        box-shadow: 0 3px 10px rgba(102, 126, 234, 0.4);

        min-height: 60px;

        line-height: 1.2;

        text-align: center;

        word-break: break-word;

    }

    

    .single_add_to_cart_button:hover {

        transform: translateY(-2px);

        box-shadow: 0 5px 15px rgba(102, 126, 234, 0.5);

    }

    

    .single_add_to_cart_button:active {

        transform: translateY(0);

    }

    

    .single_add_to_cart_button svg {

        width: 18px;

        height: 18px;

        flex-shrink: 0;

        margin-bottom: 2px;

    }

    

    .single_add_to_cart_button span {

        font-size: 10px;

        line-height: 1.2;

        text-align: center;

        display: block;

        word-wrap: break-word;

        max-width: 100%;

    }

    

    /* ===== VARIATION BUTTONS - Stay in main area, not sidebar ===== */

    .bag-designer-variation-buttons {

        display: flex;

        flex-wrap: wrap;

        gap: 8px;

        width: 100%;

    }

    

    .bag-designer-variation-button {

        flex: 0 0 auto;

        padding: 8px 12px !important;

        margin: 0;

        background: white;

        color: #495057;

        border: 2px solid #dee2e6;

        border-radius: 8px;

        font-size: 12px;

        font-weight: 600;

        cursor: pointer;

        transition: all 0.3s ease;

        min-height: 38px;

    }

    

    .bag-designer-variation-button:hover {

        border-color: #667eea;

        color: #667eea;

        transform: translateY(-2px);

        box-shadow: 0 3px 8px rgba(102, 126, 234, 0.2);

    }

    

    .bag-designer-variation-button.selected {

        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

        color: white;

        border-color: #667eea;

        box-shadow: 0 3px 10px rgba(102, 126, 234, 0.4);

        transform: translateY(-2px);

    }

    

    /* ===== PRODUCT VARIATIONS CONTAINER - Full width in main area ===== */

    .bag-designer-product-variations {

        margin: 0 !important;

        padding: 0 16px !important;

        background: white;

        border-radius: 8px;

        border: 2px solid #e9ecef;

        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);

        width: 100%;

    }

    

    .bag-designer-variation-option {

        margin-bottom: 12px;

    }

    

    .bag-designer-variation-label {

        display: flex;

        align-items: center;

        gap: 6px;

        margin: 0 0 10px 0;

        font-size: 12px;

        font-weight: 700;

        color: #495057;

        text-transform: uppercase;

        letter-spacing: 0.5px;

    }

    

    .bag-designer-variation-label svg {

        width: 14px;

        height: 14px;

        color: #667eea;

        flex-shrink: 0;

    }

    

    /* ===== PRODUCT INFO CONTAINER - Full width below preview ===== */

    .bag-designer-product-info {

        margin-top: 0;

        padding: 0 12px !important;

        border-radius: 12px;

        width: 100%;

    }

    

    .product-info-title {

        font-size: 16px;

        margin-bottom: 12px;

        text-align: center;

    }

    

    /* ===== FORM ORDER - Mobile ===== */

    .bag-designer-cart-form {

        display: flex;

        flex-direction: column;

        gap: 0 !important;

    }

    

    .bag-designer-cart-form .bag-designer-product-variations {

        order: 1;

    }

    

    .bag-designer-cart-form .product-price-wrapper {

        order: 2;

    }

    

    .bag-designer-cart-form .product-quantity-wrapper {

        order: 3;

    }

    

    .bag-designer-cart-form .single_add_to_cart_button {

        order: 4;

    }

    

    /* ===== MOBILE LAYOUT ADJUSTMENT ===== */

    /* Move product info BELOW the 80/20 split */

    /* ===================================

   MOBILE LAYOUT - PRODUCT INFO BELOW

   =================================== */

@media (max-width: 768px) {

    /* Container becomes vertical stack */

    .bag-designer-container {

        display: flex;

        flex-direction: column;

        gap: 16px;

        padding: 10px;

    }

    

    /* Row stays horizontal 75/25 */

    .bag-designer-row {

        display: flex;

        flex-direction: row;

        gap: 10px;

        width: 100%;

        order: 1; /* Appears first */

    }

    

    /* Preview column - 75% */

    .bag-designer-preview-column {

        flex: 0 0 75%;

        max-width: 75%;

    }

    

    /* Controls column - 25% */

    .bag-designer-controls-column {

        flex: 0 0 25%;

        max-width: 25%;

        display: flex;

        flex-direction: column;

        gap: 6px;

    }

    

    /* ✅ Product info - Full width below */

    .bag-designer-product-info {

        order: 2; /* Appears second */

        width: 100% !important;

        max-width: 100% !important;

        margin: 0 !important;

        padding: 16px !important;

        background: #ffffff !important;

        border-radius: 12px;

        border: 2px solid #e0e0e0;

    }

    

    /* Form elements full width */

    .bag-designer-cart-form {

        display: flex;

        flex-direction: column;

        gap: 12px;

    }

    

    .bag-designer-product-variations {

        order: 1;

        width: 100%;

    }

    

    .product-price-wrapper {

        order: 2;

        width: 100%;

        text-align: center;

        padding: 12px !important;

    }

    

    .product-quantity-wrapper {

        order: 3;

        width: 100%;

        display: flex;

        align-items: center;

        justify-content: center;

        gap: 12px;

    }

    

    .single_add_to_cart_button {

        order: 4;

        width: 100%;

        padding: 14px 20px !important;

        font-size: 16px !important;

    }

}



/* Extra small screens */

@media (max-width: 480px) {

    .bag-designer-preview-column {

        flex: 0 0 70%;

        max-width: 70%;

    }

    

    .bag-designer-controls-column {

        flex: 0 0 30%;

        max-width: 30%;

    }

    

    .bag-designer-product-info {

        padding: 12px !important;

    }

}

    .bag-designer-size-open-button,

    .product-quantity-wrapper,

    .single_add_to_cart_button {

        min-height: 36px;

        padding: 6px 2px !important;

        font-size: 9px;

    }

    

    .bag-designer-cart-form .product-price-wrapper .product-price,

    .bag-designer-cart-form .product-price-wrapper #productPrice {

        font-size: 16px !important;

    }

    

    .product-quantity-wrapper input.qty {

        max-width: 45px;

        height: 28px;

        font-size: 12px;

    }

    

    .single_add_to_cart_button svg {

        width: 16px;

        height: 16px;

    }

    

    .single_add_to_cart_button span {

        font-size: 9px;

    }

}



/* ===== VERY SMALL SCREENS ===== */

@media (max-width: 380px) {

    .bag-designer-preview-column {

        flex: 0 0 65%;

        max-width: 65%;

    }

    

    .bag-designer-controls-column {

        flex: 0 0 35%;

        max-width: 35%;

    }

    

    .bag-designer-size-open-button span,

    .product-quantity-wrapper label span,

    .single_add_to_cart_button span {

        font-size: 8px;

        line-height: 1.1;

    }

}

@keyframes pulse {

    0%, 100% {

        transform: scale(1);

        box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.7);

    }

    50% {

        transform: scale(1.02);

        box-shadow: 0 0 0 10px rgba(102, 126, 234, 0);

    }

}





/* ===================================

   MOBILE WHITE BACKGROUND OVERRIDE

   =================================== */

@media (max-width: 768px) {

    

    /* ===== MAIN CONTAINERS - WHITE BACKGROUND ===== */

    .bag-designer-product-wrapper {

        background: #ffffff !important;

        box-shadow: none !important;

        border: none !important;

    }

    

    .bag-designer-container {

        background: #ffffff !important;

    }

    

    .bag-designer-preview-column {

        background: #ffffff !important;

    }

    

    .bag-designer-controls-column {

        background: #ffffff !important;

    }

    

    .bag-designer-row {

        background: #ffffff !important;

    }

	

	.product-price-wrapper{

		border: none !important;

		box-shadow: none !important;

	}

    

    /* ===== PREVIEW BOX - WHITE BACKGROUND ===== */

    .bag-designer-preview-box {

        background: #ffffff !important;

        box-shadow: none !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    /* ===== PRODUCT INFO - WHITE BACKGROUND ===== */

    .bag-designer-product-info {

        background: #ffffff !important;

        box-shadow: none !important;

        border: none !important;

    }

    

    .bag-designer-product-variations {

        background: #ffffff !important;

        box-shadow: none !important;

        border: none;

    }

    

    .product-price-wrapper {

        background: #ffffff !important;

        box-shadow: none !important;

        border: none;

    }

    

    .product-quantity-wrapper {

        background: #ffffff !important;

    }

    

    /* ===== COLOR SELECTOR - WHITE BACKGROUND ===== */

    .bag-color-selector {

        background: #ffffff !important;

    }

    

    .color-dropdown {

        background: #ffffff !important;

    }

    

    

    /* ===== SNAP TOGGLE - WHITE BACKGROUND ===== */

    .bag-designer-snap-toggle {

        background: #ffffff !important;

        border: none !important;

    }

    

    /* ===== ACTION SECTION - WHITE BACKGROUND ===== */

    .bag-designer-action-section {

        background: #ffffff !important;

        border: none !important;

    }

    

    .bag-designer-action-buttons {

        background: #ffffff !important;

    }

    

    /* ===== BASE SELECTOR - WHITE BACKGROUND ===== */

    .bag-designer-base-selector {

        background: #ffffff !important;

        border-bottom: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-base-grid {

        background: #ffffff !important;

    }

    

    .bag-designer-base-option {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    /* ===== LAYER CONTROL - WHITE BACKGROUND ===== */

    .bag-designer-layer-control {

        background: #ffffff !important;

        box-shadow: none !important;

    }

    

    .bag-designer-layer-hint {

        background: #f0f3ff !important;

        border-left: 3px solid #667eea !important;

    }

    

    .bag-designer-layer-stack {

        background: #ffffff !important;

    }

    

    .bag-designer-layer-item {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-layer-item.selected {

        background: #f8f9ff !important;

        border-color: #667eea !important;

    }

    

    .bag-designer-layer-item:hover {

        background: #fafbfc !important;

    }

    

    /* ===== TEXT CONTROLS - WHITE BACKGROUND ===== */

    .bag-designer-text-controls {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

        box-shadow: none !important;

    }

    

    .bag-designer-text-input-group {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-text-option-col {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-text-controls-expandable {

        background: #ffffff !important;

    }

    

    /* ===== IMAGE FILTER - WHITE BACKGROUND ===== */

    .bag-designer-image-filter-expandable {

        background: #ffffff !important;

    }

    

    .filter-color-col,

    .filter-opacity-col {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    /* ===== LIGHTBOXES - WHITE BACKGROUND ===== */

    .bag-designer-lightbox-content {

        background: #ffffff !important;

        border: 2px solid #e0e0e0 !important;

        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2) !important;

    }

    

    .bag-designer-size-lightbox-content {

        background: #ffffff !important;

        border: 2px solid #e0e0e0 !important;

    }

    

    .color-option {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

        box-shadow: none !important;

    }

    

    .color-option:hover {

        background: #f8f9fa !important;

    }

    

    #bagDesignerSizeOptions .selection-item {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    #bagDesignerSizeOptions .selection-item:hover {

        background: #f8f9fa !important;

    }

    

    /* ===== ICON MODAL - WHITE BACKGROUND ===== */

    .bag-designer-icon-modal-content {

        background: #ffffff !important;

        border: 2px solid #e0e0e0 !important;

    }

    

    .bag-designer-icon-modal-header {

        background: #ffffff !important;

        border-bottom: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-icon-categories {

        background: #ffffff !important;

        border-bottom: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-icon-grid {

        background: #ffffff !important;

    }

    

    .bag-designer-icon-item {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-icon-item:hover {

        background: #f8f9fa !important;

    }

    

    /* ===== UPLOAD BUTTON INLINE - WHITE BACKGROUND ===== */

    .bag-designer-upload-button-inline {

        background: #ffffff !important;

        border: 2px dashed #667eea !important;

    }

    

    .bag-designer-upload-button-inline:hover {

        background: #f0f3ff !important;

    }

    

    /* ===== STATUS MESSAGES - WHITE BACKGROUND ===== */

    .bag-designer-status {

        background: #ffffff !important;

        border: 1px solid #e0e0e0 !important;

    }

    

    .bag-designer-status.error {

        background: #fff5f5 !important;

        border-color: #ff0000 !important;

    }

    

    .bag-designer-status.info {

        background: #f0f9ff !important;

        border-color: #0ea5e9 !important;

    }

    

    .bag-designer-status.success {

        background: #f0fdf4 !important;

        border-color: #22c55e !important;

    }

    

    /* ===== KEEP BUTTONS WITH GRADIENTS ===== */

    /* These elements keep their original styling as they are interactive buttons */

    /* ===== REMOVE ALL SHADOWS ON MOBILE ===== */

    .bag-designer-product-wrapper,

    .bag-designer-preview-box,

    .bag-designer-product-info,

    .bag-designer-product-variations,

    .product-price-wrapper,

    .bag-designer-layer-item,

    .bag-designer-text-controls,

    .bag-designer-text-input-group,

    .bag-designer-text-option-col,

    .filter-color-col,

    .filter-opacity-col,

    .bag-designer-base-option,

    .bag-designer-icon-item,

    .color-option {

        box-shadow: none !important;

    }

    

    /* Only keep shadows on interactive elements */

    /* ===== REMOVE GRADIENTS FROM NON-BUTTON ELEMENTS ===== */

    .bag-designer-preview-box,

    .bag-designer-product-info,

    .product-price-wrapper,

    .bag-designer-text-controls {

        background: #ffffff !important;

        background-image: none !important;

    }

    

    /* ===== BODY/PAGE BACKGROUND ===== */

    body.single-product {

        background: #ffffff !important;

    }

    

    .product-container,

    .product-main {

        background: #ffffff !important;

    }

}



/* ===== EXTRA SMALL SCREENS ===== */

@media (max-width: 480px) {

    /* Apply same white background rules */

    .bag-designer-product-wrapper,

    .bag-designer-container,

    .bag-designer-preview-box,

    .bag-designer-product-info,

    .bag-designer-product-variations,

    .product-price-wrapper,

    .product-quantity-wrapper,

    .bag-color-selector,

    .bag-designer-snap-toggle,

    .bag-designer-action-section,

    .bag-designer-base-selector,

    .bag-designer-layer-control,

    .bag-designer-layer-item,

    .bag-designer-text-controls,

    .bag-designer-lightbox-content,

    .bag-designer-size-lightbox-content {

        background: #ffffff !important;

        box-shadow: none !important;

    }

}





/* ===================================

   SNAP TOGGLE - HORIZONTAL ALIGNMENT

   =================================== */



/* Desktop - Keep original */

.bag-designer-snap-toggle {

    margin: 0;

    padding: 8px 16px;

    background: transparent;

    border-radius: 8px;

}



.bag-designer-snap-toggle label {

    display: flex;

    align-items: center;

    justify-content: space-between;

    cursor: pointer;

    user-select: none;

    margin: 0;

    gap: 12px;

}



.bag-designer-snap-toggle span {

    font-size: 14px;

    font-weight: 600;

    color: #495057;

    order: 1;

}



.bag-designer-snap-toggle input[type="checkbox"] {

    appearance: none;

    -webkit-appearance: none;

    -moz-appearance: none;

    width: 48px;

    height: 26px;

    margin: 0;

    background: #ccc;

    border-radius: 13px;

    position: relative;

    cursor: pointer;

    transition: background 0.3s ease;

    order: 2;

    flex-shrink: 0;

}



.bag-designer-snap-toggle input[type="checkbox"]::after {

    content: '';

    position: absolute;

    width: 22px;

    height: 22px;

    border-radius: 50%;

    background: white;

    top: 2px;

    left: 2px;

    transition: transform 0.3s ease;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);

}



.bag-designer-snap-toggle input[type="checkbox"]:checked {

    background: #667eea;

}



.bag-designer-snap-toggle input[type="checkbox"]:checked::after {

    transform: translateX(22px);

}



/* ===================================

   MOBILE - HORIZONTAL COMPACT LAYOUT

   =================================== */

@media (max-width: 768px) {

    .bag-designer-snap-toggle {

        padding: 6px 8px !important;

        margin: 0 !important;

        background: #ffffff !important;

        border: none !important;

    }



    .bag-designer-snap-toggle label {

        display: flex !important;

        flex-direction: row !important; /* ✅ HORIZONTAL */

        align-items: center !important;

        justify-content: center !important;

        gap: 6px !important;

    }



    /* Emoji icon */

    .bag-designer-snap-toggle span {

        font-size: 16px !important;

        order: 1 !important;

        margin: 0 !important;

    }



    .bag-designer-snap-toggle span::before {

        content: "🧲";

        font-size: 16px;

        display: inline-block;

    }



    /* Hide text, show only emoji */

    .bag-designer-snap-toggle span {

        font-size: 0 !important;

        line-height: 0 !important;

    }



    /* Toggle switch */

    .bag-designer-snap-toggle input[type="checkbox"] {

        width: 36px !important;

        height: 20px !important;

        border-radius: 10px !important;

        order: 2 !important;

        margin: 0 !important;

    }



    .bag-designer-snap-toggle input[type="checkbox"]::after {

        width: 16px !important;

        height: 16px !important;

        top: 2px !important;

        left: 2px !important;

    }



    .bag-designer-snap-toggle input[type="checkbox"]:checked::after {

        transform: translateX(16px) !important;

    }

}



/* Extra small screens */

@media (max-width: 480px) {

    .bag-designer-snap-toggle {

        padding: 4px 6px !important;

    }



    .bag-designer-snap-toggle label {

        gap: 4px !important;

    }



    .bag-designer-snap-toggle span::before {

        font-size: 14px;

    }



    .bag-designer-snap-toggle input[type="checkbox"] {

        width: 32px !important;

        height: 18px !important;

    }



    .bag-designer-snap-toggle input[type="checkbox"]::after {

        width: 14px !important;

        height: 14px !important;

    }



    .bag-designer-snap-toggle input[type="checkbox"]:checked::after {

        transform: translateX(14px) !important;

    }

}



/* ===================================

   COLOR SELECTOR WITH LABEL

   =================================== */



/* Color Selector Container */

.bag-color-selector {

    margin: 10px;

    padding: 0;

    display: flex;

    flex-direction: column;

    gap: 8px;

}



.bag-color-selector h3 {

    margin: 0;

    font-size: 16px;

    font-weight: 600;

    color: #495057;

}



/* ✅ NEW: Color selector wrapper with label */

.bag-color-selector-wrapper {

    display: flex;

    align-items: center;

    gap: 12px;

}



/* ✅ NEW: "Choose a Color" label */

.bag-color-selector-label,

	.Layers-label {

    font-size: 14px;

    font-weight: 600;

    color: #495057;

    white-space: nowrap;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.color-dropdown {

    position: relative;

    flex: 1;

    min-width: 0;

}



.color-dropdown-selected {

    display: flex;

    align-items: center;

    justify-content: left;

    padding: 0;

    border-radius: 999px;

    cursor: pointer;

    transition: all 0.3s ease;

}



.color-dropdown-selected:hover {

    border-color: #667eea;

}



.color-preview-box {

    display: flex;

    align-items: center;

    gap: 10px;

}



.color-preview-box img {

    width: 46px;

    height: 46px;

    object-fit: cover;

    border-radius: 50%;

    border: 2px solid rgba(255, 255, 255, 0.9);

    box-shadow: 0 0 15px rgba(255, 255, 255, 0.5);

}



.color-preview-box span {

    font-size: 16px;

    font-weight: 700;

    color: #000000;

}



/* ===================================

   MOBILE ADJUSTMENTS - KEEP HORIZONTAL

   =================================== */

@media (max-width: 768px) {

    .bag-color-selector {

        margin: 0;

        padding: 0;

        background: #ffffff !important;

    }



    /* ✅ Keep horizontal on mobile */

    .bag-color-selector-wrapper {

        display: flex !important;

        flex-direction: row !important; /* Force horizontal */

        align-items: center !important;

        gap: 8px !important;

    }



    .bag-color-selector-label,

    .Layers-label {

        font-size: 11px;

        text-align: left;

        white-space: nowrap;

        flex-shrink: 0;

    }



    .color-dropdown {

        flex: 1;

        min-width: 0;

        width: auto !important;

    }



    /* Hide color name inside preview pill on mobile */

    .color-preview-box span {

        display: none;

    }



    /* Compact color preview */

    .color-dropdown-selected {

        padding: 0;

        box-shadow: none;

    }



    .color-preview-box img {

        width: 36px;

        height: 36px;

    }

}



/* Extra small screens */

@media (max-width: 480px) {

    .bag-color-selector-label,

	.Layers-label{

        font-size: 11px;

    }



    .color-preview-box img {

        width: 32px;

        height: 32px;

    }

}





.bag-designer-layer-placeholder {

    background: rgba(102, 126, 234, 0.1);

    border: 2px dashed #667eea;

    border-radius: 8px;

    margin: 8px 0;

    transition: all 0.2s ease;

    pointer-events: none;

}



.bag-designer-layer-item.dragging {

    opacity: 0.5;

    transform: scale(1.05);

    z-index: 1000;

}



/* Prevent scroll while dragging layers on mobile */

.bag-designer-layers-lightbox-body {

    touch-action: pan-y;

}



.bag-designer-layers-lightbox-body.dragging-layer {

    touch-action: none;

    overflow: hidden;

}



/* Mobile Option Buttons Bar */

.bag-designer-mobile-options-bar {

    display: none;

    flex-wrap: nowrap;

    gap: 6px;

    padding: 10px;

    background: #f8f9fa;

    border-top: 1px solid #e0e0e0;

    border-bottom: 1px solid #e0e0e0;

    margin-top: 8px;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;

}



.bag-designer-mobile-options-bar::-webkit-scrollbar {

    display: none;

}



@media (max-width: 768px) {

    .bag-designer-mobile-options-bar {

        display: flex;

    }

}



.bag-designer-mobile-option-btn {

    flex: 0 0 auto;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 3px;

    padding: 8px 6px;

    background: #ffffff;

    border: 2px solid #e0e0e0;

    border-radius: 6px;

    cursor: pointer;

    transition: all 0.2s ease;

    font-size: 9px;

    font-weight: 500;

    color: #495057;

    min-width: 50px;

    max-width: 70px;

}



.bag-designer-mobile-option-btn:active {

    transform: scale(0.95);

}



.bag-designer-mobile-option-btn .option-icon {

    width: 18px;

    height: 18px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #667eea;

}



.bag-designer-mobile-option-btn .option-icon svg {

    width: 16px;

    height: 16px;

}



.bag-designer-mobile-option-btn .option-label {

    font-size: 9px;

    font-weight: 500;

    color: #495057;

    text-align: center;

    line-height: 1.1;

    white-space: nowrap;

}



.bag-designer-mobile-option-btn:hover,

.bag-designer-mobile-option-btn:focus {

    border-color: #667eea;

    background: #f8f9ff;

    color: #667eea;

}



.bag-designer-mobile-option-btn:focus {

    outline: 2px solid #667eea;

    outline-offset: 2px;

}



/* Mini Lightbox for Options */

.bag-designer-option-mini-lightbox {

    position: fixed;

    z-index: 100001;

    pointer-events: none;

    opacity: 0;

    transform: translateY(-10px);

    transition: all 0.2s ease;

}



.bag-designer-option-mini-lightbox.active {

    opacity: 1;

    transform: translateY(0);

    pointer-events: auto;

}



.mini-lightbox-arrow {

    position: absolute;

    bottom: -8px;

    left: 50%;

    transform: translateX(-50%);

    width: 0;

    height: 0;

    border-left: 8px solid transparent;

    border-right: 8px solid transparent;

    border-top: 8px solid #ffffff;

    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));

    z-index: 1;

}



.mini-lightbox-arrow[style*="top"] {

    bottom: auto;

    top: -8px;

    border-top: none;

    border-bottom: 8px solid #ffffff;

}



.mini-lightbox-content {

    background: #ffffff;

    border-radius: 12px;

    padding: 16px;

    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);

    min-width: 200px;

    max-width: 90vw;

    max-height: 60vh;

    overflow-y: auto;

}



.mini-lightbox-content .bag-designer-text-input-group,

.mini-lightbox-content .bag-designer-text-option-col,

.mini-lightbox-content .bag-designer-text-option-row,

.mini-lightbox-content .bag-designer-text-option-full,

.mini-lightbox-content .bag-designer-layer-opacity,

.mini-lightbox-content .bag-designer-layer-alignment,

.mini-lightbox-content .filter-controls-grid,

.mini-lightbox-content .filter-toggle-row {

    margin: 0;

    width: 100%;

}



.mini-lightbox-content input[type="text"],

.mini-lightbox-content input[type="color"],

.mini-lightbox-content select,

.mini-lightbox-content input[type="range"] {

    width: 100%;

}



.mini-lightbox-content label {

    font-size: 12px;

    margin-bottom: 8px;

    font-weight: 600;

    color: #333;

}



/* Validate Button */

.bag-designer-layers-validate-btn {

    width: 100%;

    padding: 16px;

    margin-top: auto;

	margin-right: 0;

	margin-bottom: 0;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: #ffffff;

    border: none;

    border-radius: 0 0 16px 16px;

    font-size: 16px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s ease;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.bag-designer-layers-validate-btn:hover {

    background: linear-gradient(135deg, #5568d3 0%, #6a3f8f 100%);

    transform: translateY(-2px);

    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);

}



.bag-designer-layers-validate-btn:active {

    transform: translateY(0);

}



/* Mobile Layers Lightbox Layout Improvements */

@media (max-width: 768px) {

    .bag-designer-layers-lightbox-content {

        display: flex;

        flex-direction: column;

        height: calc(100vh - 300px);

        max-height: calc(100vh - 300px);

        margin-top: 150px;

        margin-bottom: 150px;

        border-radius: 16px;

        padding: 0;

        position: relative;

        background: #ffffff;

        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);

    }

    

    .bag-designer-layers-lightbox-content .bag-designer-lightbox-title {

        padding: 16px;

        margin: 0;

        border-bottom: 1px solid #e0e0e0;

        font-size: 18px;

        font-weight: 600;

        flex-shrink: 0;

    }

    

    .bag-designer-layers-lightbox-body {

        flex: 1;

        overflow-y: auto;

        padding: 12px;

        -webkit-overflow-scrolling: touch;

        min-height: 0;

    }

    

    .bag-designer-layers-lightbox-body .bag-designer-lightbox-helper-text {

        display: none;

    }

    

    .bag-designer-layer-item {

        margin-bottom: 8px;

        border-radius: 8px;

        background: #ffffff;

    }

    

    .bag-designer-layer-item-header {

        padding: 12px;

    }

    

    /* Hide expandable content on mobile - use option buttons instead */

    .bag-designer-layers-lightbox-body .bag-designer-text-controls-expandable,

    .bag-designer-layers-lightbox-body .bag-designer-image-filter-expandable {

        display: none !important;

    }

    

    /* Show options bar when expanded */

    .bag-designer-layer-item.expanded .bag-designer-mobile-options-bar {

        display: flex;

    }

    

    /* Ensure Validate button stays at bottom */

    .bag-designer-layers-validate-btn {

        flex-shrink: 0;

        margin-top: auto;

    }

}





/* ===== PREVENT BODY SCROLL WHEN LIGHTBOX IS OPEN ===== */

body.lightbox-open {

    overflow: hidden !important;

    position: fixed;

    width: 100%;

    height: 100%;

    top: 0;

    left: 0;

}



/* Ensure lightbox content is scrollable */

.bag-designer-layers-lightbox-body,

.bag-designer-icon-modal-body,

.bag-designer-size-lightbox-body,

.bag-designer-lightbox-content,

.bag-designer-icon-modal-content,

.bag-designer-size-lightbox-content {

    overflow-y: auto !important;

    -webkit-overflow-scrolling: touch !important;

    max-height: 100%;

}



/* Color lightbox options scrollable */

.bag-designer-lightbox .color-dropdown-options {

    overflow-y: auto !important;

    -webkit-overflow-scrolling: touch !important;

}



/* Layer stack should be scrollable inside lightbox */

.bag-designer-layer-stack {

    overflow-y: auto;

    -webkit-overflow-scrolling: touch;

}



/* Icon grid should be scrollable */

.bag-designer-icon-grid {

    overflow-y: auto !important;

    -webkit-overflow-scrolling: touch !important;

}



/* Prevent overscroll on iOS */

.bag-designer-lightbox-overlay,

.bag-designer-layers-lightbox,

.bag-designer-icon-modal,

.bag-designer-size-lightbox,

.bag-designer-lightbox {

    overscroll-behavior: contain;

    touch-action: pan-y;

}







/* ===== LIGHTBOX MAX HEIGHT FOR MOBILE (PREVENT HIDING UNDER HEADER) ===== */

@media (max-width: 768px) {

    .bag-designer-size-lightbox-content,

    .bag-designer-lightbox-content {

        max-height: calc(100vh - 150px) !important;

        margin-top: 200px;

		margin-bottom: 180px;

        overflow-y: auto;

        -webkit-overflow-scrolling: touch;

    }

}



/* For very small screens */

@media (max-width: 480px) {

    .bag-designer-size-lightbox-content,

    .bag-designer-lightbox-content {

        max-height: calc(100vh - 140px) !important;

        margin-top: 130px;

		margin-bottom: 110px;

    }

}







/* Allow page zoom including canvas */

#bagDesignerCanvas {

    touch-action: pinch-zoom !important;

}



.bag-designer-canvas-wrapper {

    touch-action: pinch-zoom !important;

}



/* Prevent zoom blocking on mobile */

body.bag-designer-active {

    touch-action: manipulation;

}









/* =================================================

   OVERRIDE: Remove Borders & Shadows from Quantity

   ================================================= */



/* Target buttons and inputs inside the quantity wrapper */

.ux-quantity.quantity.buttons_added .minus,

.ux-quantity.quantity.buttons_added .plus,

.ux-quantity.quantity.buttons_added .qty,

.ux-quantity.quantity.buttons_added input[type="number"],

/* Target the mobile specific input wrapper */

.product-quantity-wrapper input.qty {

    border: none !important;

    box-shadow: none !important;

    outline: none !important;

}



/* Ensure focus states (when clicked) also have no shadow/border */

.ux-quantity.quantity.buttons_added .qty:focus,

.ux-quantity.quantity.buttons_added input[type="number"]:focus,

.product-quantity-wrapper input.qty:focus {

    box-shadow: none !important;

    border: none !important;

    outline: none !important;

}









/* ===================================

   MOBILE "APP-STYLE" OVERRIDES v2

   (Canvas scaled down, compact title)

   =================================== */

@media (max-width: 768px) {

    /* 1. Base Container & Compact Titles */

    .bag-designer-product-wrapper {

        padding: 0 !important;

        margin: 0 0 20px 0 !important;

        border-radius: 0 !important;

        background: #ffffff !important;

        border: none !important;

        box-shadow: none !important;

    }

    .bag-designer-container {

        padding: 0 !important;

        display: flex !important;

        flex-direction: column !important;

        gap: 0 !important;

    }

    .bag-designer-row {

        display: flex !important;

        flex-direction: column !important;

        gap: 15px !important;

        width: 100% !important;

    }

    

    /* Make the title and description smaller to pull content up */

    .bag-designer-title {

        font-size: 20px !important;

        margin: 10px 16px 4px 16px !important;

        letter-spacing: -0.2px !important;

    }

    .bag-designer-description {

        font-size: 13px !important;

        margin: 0 16px 5px 16px !important;

        line-height: 1.3 !important;

    }



    /* 2. Floating Canvas Card (92% width for scrolling affordance) */

    .bag-designer-preview-column {

        flex: 0 0 92% !important;

        width: 92% !important;

        max-width: 92% !important;

        padding: 0 !important;

        margin: 0 auto !important; /* Centers the canvas */

    }

    .bag-designer-preview-box {

        border: 1px solid #f0f0f0 !important;

        border-radius: 16px !important; /* Soft rounded corners */

        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important; /* App-like floating shadow */

        margin: 0 !important;

        background: #ffffff !important;

        overflow: hidden !important;

    }



    /* 3. Controls Column */

    .bag-designer-controls-column {

        flex: 0 0 100% !important;

        width: 100% !important;

        max-width: 100% !important;

        padding: 0 16px !important;

        gap: 10px !important;

        background-color: transparent !important;

        border: none !important;

        box-shadow: none !important;

    }



    /* 4. App-Style Segmented Control for Tools */

    .bag-designer-layer-buttons {

        display: flex !important;

        flex-direction: row !important;

        background: #f2f2f7 !important;

        border-radius: 12px !important;

        padding: 4px !important;

        gap: 4px !important;

        width: 100% !important;

    }

    .bag-designer-add-text-button,

    .bag-designer-add-image-button,

    .bag-designer-add-icon-button {

        flex: 1 !important;

        background: transparent !important;

        box-shadow: none !important;

        border-radius: 8px !important;

        min-height: 38px !important;

        padding: 0 !important;

        display: flex !important;

        align-items: center !important;

        justify-content: center !important;

        color: #111827 !important;

    }

    .bag-designer-add-text-button:active,

    .bag-designer-add-image-button:active,

    .bag-designer-add-icon-button:active {

        background: #e5e7eb !important;

    }

    

    .bag-designer-add-text-button::before { content: "T" !important; font-size: 18px !important; font-weight: bold !important; font-family: serif !important; color: #111827 !important;}

    .bag-designer-add-image-button::before { content: "🖼️" !important; font-size: 16px !important; filter: grayscale(100%) contrast(200%) !important; }

    .bag-designer-add-icon-button svg { display: block !important; width: 18px !important; height: 18px !important; stroke: #111827 !important; fill: none !important; }

    .bag-designer-add-text-button svg, .bag-designer-add-image-button svg, 

    .bag-designer-add-text-button span, .bag-designer-add-image-button span, .bag-designer-add-icon-button span { display: none !important; }



    /* 5. iOS-Style Settings Rows */

    .bag-designer-size-open-button,

    .bag-color-selector-wrapper,

    .bag-designer-layers-wrapper {

        display: none;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;

        background: #ffffff !important;

        border: 1px solid #e5e7eb !important;

        border-radius: 12px !important;

        padding: 10px 14px !important;

        margin: 0 !important;

        min-height: 44px !important;

        box-shadow: 0 1px 2px rgba(0,0,0,0.02) !important;

    }

    

    .bag-designer-size-open-button,

    .bag-color-selector-label,

    .Layers-label {

        font-size: 14px !important;

        font-weight: 500 !important;

        color: #111827 !important;

        text-transform: none !important;

        letter-spacing: 0 !important;

    }



    .bag-designer-size-open-button::after,

    .bag-color-selector-wrapper::after,

    .bag-designer-layers-wrapper::after {

        content: "›" !important;

        font-size: 20px !important;

        color: #9ca3af !important;

        font-weight: 300 !important;

        margin-left: auto !important;

    }



    .color-preview-box img { width: 24px !important; height: 24px !important; border: 1px solid #e5e7eb !important; }

    .bag-designer-layers-open-button { width: auto !important; padding: 0 !important; min-height: 0 !important; background: transparent !important; }

    .bag-designer-layers-open-button svg { width: 18px !important; height: 18px !important; color: #111827 !important; margin-right: 8px !important;}



    /* 6. Checkout / Form Area */

    .bag-designer-product-info {

        width: 100% !important;

        padding: 20px 16px !important;

        background: #ffffff !important;

        border: none !important;

        border-top: 1px solid #f0f0f0 !important;

        border-radius: 0 !important;

        margin-top: 10px !important;

    }

    .bag-designer-cart-form {

        display: flex !important;

        flex-direction: column !important;

        gap: 12px !important;

    }



    .bag-designer-product-variations { order: 1 !important; padding: 0 !important; border: none !important; background: transparent !important; }

    .product-quantity-wrapper { order: 2 !important; }

    .product-price-wrapper { order: 3 !important; }

    .single_add_to_cart_button { order: 4 !important; }



    /* Quantity */

    .product-quantity-wrapper {

        padding: 0 !important;

        background: transparent !important;

        border: none !important;

        display: flex !important;

        flex-direction: row !important;

        justify-content: space-between !important;

        margin-bottom: 0 !important;

    }

    .product-quantity-wrapper label {

        font-size: 14px !important;

        font-weight: 500 !important;

        color: #6b7280 !important;

        text-transform: none !important;

    }

    .product-quantity-wrapper label svg { display: none !important; } 

    .product-quantity-wrapper input.qty {

        height: 36px !important;

        max-width: 60px !important;

        background: #f2f2f7 !important;

        border: none !important;

        border-radius: 8px !important;

        font-size: 15px !important;

        font-weight: 600 !important;

    }



    /* Price */

    .bag-designer-cart-form .product-price-wrapper {

        padding: 8px 0 0 0 !important;

        text-align: left !important;

        align-items: flex-start !important;

    }

    .bag-designer-cart-form .product-price-wrapper .product-price,

    .bag-designer-cart-form .product-price-wrapper #productPrice {

        font-size: 24px !important;

        font-weight: 700 !important;

        color: #111827 !important; 

        text-shadow: none !important;

        text-align: left !important;

    }



    /* Pill Button */

    .single_add_to_cart_button {

        width: 100% !important;

        padding: 16px !important;

        background: #111827 !important; 

        color: #ffffff !important;

        border-radius: 100px !important; 

        flex-direction: row !important;

        min-height: 52px !important;

        box-shadow: none !important;

        margin-top: 4px !important;

    }

    .single_add_to_cart_button span {

        font-size: 16px !important;

        font-weight: 600 !important;

        text-transform: none !important; 

        letter-spacing: normal !important;

        display: inline !important;

    }

    .single_add_to_cart_button svg { display: none !important; } 

    .single_add_to_cart_button:active { transform: scale(0.98) !important; background: #000000 !important; }

}



@media (max-width: 480px) {

    .bag-designer-controls-column { padding: 12px 12px 0 12px !important; }

    .bag-designer-product-info { padding: 16px 12px !important; }

}