/* Dialog Container Variables & Styles */
.ui-dialog[aria-describedby="webUploadPhoneDialog"] {
    /* dialog specific variables */
    --dialog-gap-sm: 0.6rem;
    --dialog-gap-base: 1rem;
    --dialog-gap-lg: 1.6rem;
    --dialog-gap-xl: 2.5rem;
    --dialog-fontsize-sm: 1.2rem;
    --dialog-titlebar-top: 1.6rem;
}

/* Web Upload Photo Dialog Variables & Styles */
.web-upload-photo-dialog {
    /* dialog specific variables */
    --dialog-gap-xs: 0.4rem;
    --dialog-gap-sm: 0.8rem;
    --dialog-gap-base: 1rem;
    --dialog-gap-md: 1.2rem;
    --dialog-gap-lg: 1.5rem;
    --dialog-gap-xl: 2rem;
    --dialog-radius-sm: 0.4rem;
    --dialog-radius-base: 0.8rem;
    --dialog-fontsize-xs: 1rem;
    --dialog-fontsize-sm: 1.2rem;
    --dialog-fontsize-lg: 1.8rem;
    --dialog-lineheight-sm: 1.4;
    --dialog-lineheight-base: 1.5;
    --dialog-lineheight-md: 1.2;
    --dialog-qr-size: 14.2rem;
    --dialog-qr-margin: 1.5rem;
    --dialog-step-padding: 1.6rem;
    --dialog-step-margin: 0.5rem;
    --dialog-sms-input-width: 11.8rem;
    --dialog-sms-input-padding: 0.3rem 0.8rem;
    --dialog-sms-btn-width: 9.8rem;
    --dialog-sms-btn-padding: 0.6rem 2.2rem;
    --dialog-border-thin: 1px;
}
/* Photos Upload Wrapper Variables & Styles */
.photos-upload-wrapper {
    --upload-gap-xs: 0.3rem;
    --upload-gap-sm: 0.6rem;
    --upload-gap-base: 0.8rem;
    --upload-gap-md: 1.2rem;
    --upload-gap-lg: 1.6rem;
    --upload-gap-xl: 2rem;
    --upload-radius-sm: 0.4rem;
    --upload-radius-base: 0.6rem;
    --upload-radius-lg: 1rem;
    --upload-fontsize-xs: 1rem;
    --upload-fontsize-sm: 1.2rem;
    --upload-fontsize-base: 1.4rem;
    --upload-fontsize-xl: 1.9rem;
    --upload-lineheight-sm: 1.3rem;
    --upload-lineheight-md: 1.6rem;
    --upload-lineheight-lg: 1.9;
    --upload-lineheight-xl: 2.5rem;
    --upload-height: 35rem;
    --upload-icon-width: 5rem;
    --upload-icon-height: 4.8rem;
    --upload-btn-width: 22.8rem;
    --upload-before-padding: 6.2rem;
    --upload-list-height: 22.3rem;
    --upload-list-width: 77.6rem;
    --upload-item-size: 11.6rem;
    --upload-item-border: 0.3rem;
    --upload-remove-btn-size: 2rem;
    --upload-remove-btn-offset: -0.8rem;
    --upload-scrollbar-width: 0.5rem;
    --upload-border-medium: 0.2rem;
    --upload-border-dashed: 2px;
}

/* Dialog Container */
.ui-dialog[aria-describedby="webUploadPhoneDialog"] .ui-dialog-title {
    display: none;
}

.ui-dialog[aria-describedby="webUploadPhoneDialog"] .ui-dialog-titlebar {
    padding: var(--dialog-gap-sm) var(--dialog-gap-xl) !important;
}

.ui-dialog[aria-describedby="webUploadPhoneDialog"] .ui-dialog-titlebar-close {
    top: var(--dialog-titlebar-top);
    z-index: 2;
}

.ui-dialog[aria-describedby="webUploadPhoneDialog"] .ui-dialog-content {
    padding: var(--dialog-gap-sm) var(--dialog-gap-base) !important;
}

.ui-dialog[aria-describedby="webUploadPhoneDialog"] .ui-dialog-buttonpane .ui-dialog-buttonset button {
    font-size: var(--dialog-fontsize-sm);
    line-height: 1;
    padding: var(--dialog-gap-base) !important;
}

/* Photos Upload Wrapper */
.photos-upload-wrapper {
    height: var(--upload-height);
    text-align: center;
    padding: var(--upload-gap-lg);
    background: #F2F4F5;
    border: dashed var(--upload-border-dashed) #DDDEE0;
    border-radius: var(--upload-radius-lg);
}

.photos-upload-wrapper .upload-area-inner {
    overflow: hidden;
}

.photos-upload-wrapper .before-upload-area {
    padding-top: var(--upload-before-padding);
}

.photos-upload-wrapper .icon-update {
    width: var(--upload-icon-width);
    height: var(--upload-icon-height);
    margin: 0 auto;
    background: url(/templates/images/icons/icon-upload-pc-gray.svg) no-repeat;
    background-size: 100% 100%;
}

.photos-upload-wrapper .upload-title {
    color: #435663;
    text-align: center;
    font-size: var(--upload-fontsize-xl);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: var(--upload-lineheight-xl);
    margin: var(--upload-lineheight-sm) 0;
}

.photos-upload-wrapper .upload-btn {
    width: var(--upload-btn-width);
    border-radius: var(--upload-radius-base);
    border: var(--upload-border-medium) solid var(--color-primary);
    color: var(--color-primary);
    text-align: center;
    font-size: var(--upload-fontsize-base);
    font-weight: var(--font-weight-semibold);
    line-height: var(--upload-lineheight-md);
    letter-spacing: 0.7px;
    text-transform: uppercase;
    padding: var(--upload-gap-md);
    margin: var(--upload-gap-md) auto var(--upload-radius-base);
    cursor: pointer;
}

.photos-upload-wrapper .upload-from-phone {
    color: var(--color-primary);
    text-align: center;
    font-size: var(--upload-fontsize-xs);
    font-weight: var(--font-weight-medium);
    line-height: var(--upload-lineheight-lg);
    text-decoration: underline;
    cursor: pointer;
}

.photos-upload-wrapper .image-list-wrapper,
.photos-upload-wrapper .before-upload-area {
    height: var(--upload-list-height);
}

.photos-upload-wrapper .image-list-wrapper {
    overflow-x: hidden;
    overflow-y: auto;
}

.photos-upload-wrapper .image-list-wrapper .list-wrapper {
    width: var(--upload-list-width);
    margin: 0 auto;
    display: flex;
    gap: var(--upload-gap-lg);
    flex-wrap: wrap;
}

.photos-upload-wrapper .image-list-wrapper::-webkit-scrollbar {
    background-color: #F4F4F4;
    width: var(--upload-scrollbar-width);
}

.photos-upload-wrapper .image-list-wrapper::-webkit-scrollbar-thumb {
    background-color: var(--scrollbar-color);
    width: var(--upload-scrollbar-width);
    border-radius: var(--btn-border-radius);
}

.photos-upload-wrapper .image-list-wrapper::-webkit-scrollbar-track {
    background: var(--scrollbar-trace-color);
    border-radius: var(--btn-border-radius);
}

.photos-upload-wrapper .image-list-wrapper .image-item {
    width: var(--upload-item-size);
    height: var(--upload-item-size);
    border: var(--upload-item-border) solid rgba(0, 0, 0, 0.20);
    cursor: pointer;
    position: relative;
    margin: var(--upload-gap-xs);
}

.photos-upload-wrapper .image-list-wrapper .image-item.selected {
    border-color: var(--color-primary);
}

.photos-upload-wrapper .image-item .image-preview,
.photos-upload-wrapper .image-item .loading-overlay {
    width: 100%;
    height: 100%;
}

.photos-upload-wrapper .image-item .image-preview >img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photos-upload-wrapper .image-item .loading-overlay {
    position: relative;
}

.photos-upload-wrapper .image-item .loading-overlay .file-name {
    display: none;
}

.photos-upload-wrapper .image-item .loading-overlay .loading-progress,
.photos-upload-wrapper .image-item .loading-overlay .error-state {
    position: absolute;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
    text-align: center;
    z-index: 3;
}

.photos-upload-wrapper .image-item .loading-overlay .error-state {
    color: var(--color-highlight);
}

.photos-upload-wrapper .image-item .loading-overlay .loading-spinner {
    width: 100%;
    height: 100%;
    display: block;
    background: url(//cdn.planetart.com/images/uploader/photo-tray-loader-large.gif) center no-repeat;
    background-size: 100% 100%;
}

.photos-upload-wrapper .image-item .remove-btn {
    position: absolute;
    display: none;
    width: var(--upload-remove-btn-size);
    height: var(--upload-remove-btn-size);
    right: var(--upload-remove-btn-offset);
    top: var(--upload-remove-btn-offset);
    background: url(//cdn.planetart.com/images/uploader/icon-delete.png) center no-repeat;
    background-size: 100% 100%;
    border: none;
    cursor: pointer;
}

.photos-upload-wrapper .image-item:hover .remove-btn {
    display: block;
}

/* Web Upload Photo Dialog*/
.web-upload-photo-dialog {
    color: #333;
    background-color: var(--color-white);
    padding: var(--dialog-gap-xl);
    border: var(--dialog-border-thin) solid #ccc;
    border-radius: var(--dialog-radius-base);
}

.web-upload-photo-dialog .photo-upload-title {
    font-size: var(--dialog-fontsize-lg);
    font-weight: var(--font-weight-bold);
    text-align: center;
    margin-bottom: var(--dialog-gap-xl);
}

.web-upload-photo-dialog .upload-methods-container {
    display: flex;
    justify-content: space-between;
}

.web-upload-photo-dialog .upload-method {
    flex: 1;
    padding: 0 var(--dialog-gap-sm) var(--dialog-gap-base) var(--dialog-gap-sm);
}

.web-upload-photo-dialog .method-title {
    font-size: var(--dialog-fontsize-sm);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--dialog-gap-xs);
    text-align: center;
}

/* QR Code Section */
.web-upload-photo-dialog .qr-code-section {
    border-right: var(--dialog-border-thin) solid #ccc;
}

.web-upload-photo-dialog .qr-code-section .qr-code-container {
    display: flex;
}

.web-upload-photo-dialog .qr-code-section .qr-frame {
    margin-bottom: var(--dialog-qr-margin);
    position: relative;
    width: var(--dialog-qr-size);
    height: var(--dialog-qr-size);
    flex-shrink: 0;
    border: var(--dialog-border-thin) solid #ccc;
}

.web-upload-photo-dialog .qr-code-section .qr-frame img {
    max-width: 100%;
    height: auto;
}

.web-upload-photo-dialog .qr-code-section .qr-frame #qr_spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);   
}

.web-upload-photo-dialog .qr-code-section .qr-instructions {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: var(--dialog-fontsize-xs);
    line-height: var(--dialog-lineheight-sm);
    padding: 0 var(--dialog-gap-sm);
    word-spacing: normal;
}

.web-upload-photo-dialog .qr-code-section .qr-instructions li {
    margin-bottom: var(--dialog-gap-base);
}

.web-upload-photo-dialog .qr-code-section .qr-instructions .step-item {
    padding-left: var(--dialog-step-padding);
    position: relative;
}

.web-upload-photo-dialog .qr-code-section .qr-instructions .step-item::before {
    content: attr(data-counter);
    font-weight: var(--font-weight-bold);
    margin-right: var(--dialog-step-margin);
    position: absolute;
    left: 0;
}

.web-upload-photo-dialog .qr-code-section .qr-instructions .bold-text {
    font-weight: var(--font-weight-bold);
}

/* SMS Section */
.web-upload-photo-dialog .sms-section .sms-description {
    list-style: none;
    padding: 0 var(--dialog-gap-sm);
    margin-bottom: var(--dialog-qr-margin);
    word-spacing: normal;
    font-size: var(--dialog-fontsize-xs);
}

.web-upload-photo-dialog .sms-section .sms-description li {
    margin-bottom: var(--dialog-gap-base);
    line-height: var(--dialog-lineheight-base);
}

.web-upload-photo-dialog .sms-section .phone-input {
    width: var(--dialog-sms-input-width);
    padding: var(--dialog-sms-input-padding);
    border: var(--dialog-border-thin) solid #ccc;
    border-radius: var(--dialog-radius-sm);
    font-size: var(--dialog-fontsize-sm);
    line-height: 1.4rem;
    margin: 0 auto var(--dialog-step-padding);
    display: block;
    color: #222;
    font-weight: var(--font-weight-semibold);
}

.web-upload-photo-dialog .sms-section .sms-disclaimer {
    font-size: var(--dialog-fontsize-xs);
    color: #666;
    text-align: center;
    margin-bottom: var(--dialog-qr-margin);
    line-height: var(--dialog-lineheight-md);
}

.web-upload-photo-dialog .sms-section .button-wrapper {
    display: flex;
    justify-content: center;
}

.web-upload-photo-dialog .sms-section .send-link-btn {
    width: var(--dialog-sms-btn-width);
    padding: var(--dialog-sms-btn-padding);
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--dialog-radius-sm);
    cursor: pointer;
    font-size: var(--dialog-fontsize-sm);
    font-weight: var(--font-weight-semibold);
    font-family: var(--font-family);
    letter-spacing: normal;
}

.web-upload-photo-dialog .sms-section .send-link-btn:hover {
    background-color: var(--color-primary);
}

.web-upload-photo-dialog .sms-section .error-message {
    font-size: var(--dialog-fontsize-sm);
    font-weight: 600;
    text-align: center;
    color: var(--color-error);
    margin-bottom: var(--dialog-gap-sm);
}

/* Mobile Styles */
@media (max-width: 575px) {
    .photos-upload-wrapper {
        background: #F4F4F4;
        border: none;
        border-radius: 0;
        height: auto;
        min-height: unset;
        padding: 4.1vmin;
        margin-bottom: 3.07vmin;
    }
    
    .photos-upload-wrapper .icon-update {
        width: 12.8vmin;
        height: 12.3vmin;
        margin: 2.05vmin auto;
    }
    
    .photos-upload-wrapper .upload-title {
        font-size: 4.1vmin;
        line-height: 1.2;
        margin: 0;
    }
    
    .photos-upload-wrapper .upload-title >br {
        display: none;
    }
    
    .photos-upload-wrapper .image-list-wrapper,
    .photos-upload-wrapper .before-upload-area {
        height: 65vmin;
    }
    
    .photos-upload-wrapper .image-list-wrapper {
        padding: 0;
        height: 59vmin;
        margin-bottom: 6vmin;
    }
    
    .photos-upload-wrapper .before-upload-area {
        padding-top: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    
    .photos-upload-wrapper .upload-btn {
        border-radius: 0.8rem;
        border: 1px solid #434444;
        background: var(--color-white);
        color: #434444;
        font-size: 2.82vmin;
        line-height: 4.1vmin;
        margin: 4.1vmin auto 0;
        padding: 2.82vmin 4.1vmin;
    }
    
    .photos-upload-wrapper .upload-from-phone {
        display: none;
    }
    
    .panel-upload.with-stickers .photos-upload-wrapper .image-list-wrapper .list-wrapper,
    .photos-upload-wrapper .image-list-wrapper .list-wrapper {
        width: 88.15vmin;
        gap: 2.05vmin;
    }
    
    .photos-upload-wrapper .image-list-wrapper .image-item {
        width: 20.5vmin;
        height: 20.5vmin;
    }
}