.upload-dialog-mask{
    display:none;
    position:fixed;
    inset:0;
    z-index:3000;
    align-items:center;
    justify-content:center;
    padding:16px;
    box-sizing:border-box;
    background:rgba(0,0,0,0.45);
}
.upload-dialog-mask.is-visible{
    display:flex;
}
.upload-dialog{
    position:relative;
    width:100%;
    max-width:420px;
    max-height:85vh;
    overflow-y:auto;
    box-sizing:border-box;
    padding:24px 20px 20px;
    border-radius:12px;
    background:#fff;
    color:#333;
    box-shadow:0 6px 24px rgba(0,0,0,0.25);
}
.upload-dialog h3{
    margin:0 32px 20px 0;
    font-size:19px;
    font-weight:600;
}
.upload-dialog-close{
    position:absolute;
    top:10px;
    right:12px;
    width:32px;
    height:32px;
    padding:0;
    border:0;
    background:transparent;
    color:#666;
    font-size:26px;
    line-height:32px;
    cursor:pointer;
}
.upload-category-options{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.upload-category-options button{
    min-height:46px;
    padding:10px 16px;
    border:1px solid #ddd;
    border-radius:8px;
    background:#f8f8f8;
    color:#333;
    font-size:16px;
    cursor:pointer;
}
.upload-category-options button:hover{
    border-color:#6a9e70;
    background:#edf5ed;
}
.upload-form-field{
    margin-bottom:18px;
}
.upload-form-field label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:600;
}
.upload-form-field input[type="file"],
.upload-form-field input[type="text"],
.upload-form-field select,
.upload-form-field textarea{
    display:block;
    width:100%;
    box-sizing:border-box;
    padding:10px;
    border:1px solid #ccc;
    border-radius:6px;
    background:#fff;
    color:#333;
    font:inherit;
}
.upload-form-field textarea{
    resize:vertical;
}
.upload-photo-preview{
    display:block;
    max-width:100%;
    max-height:240px;
    margin-top:12px;
    border-radius:6px;
    object-fit:contain;
}
.upload-position-button{
    padding:9px 14px;
    border:1px solid #bbb;
    border-radius:6px;
    background:#f5f5f5;
    color:#333;
    cursor:pointer;
}
.upload-position-button:disabled{
    opacity:0.6;
    cursor:wait;
}
.upload-position-status{
    margin-top:8px;
    color:#666;
    font-size:13px;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.upload-form-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:22px;
}
.upload-form-actions button{
    min-width:76px;
    padding:10px 16px;
    border:1px solid #ccc;
    border-radius:6px;
    font-size:14px;
    cursor:pointer;
}
.upload-form-cancel{
    background:#fff;
    color:#333;
}
.upload-form-submit{
    border-color:#477c4c!important;
    background:#477c4c;
    color:#fff;
}
.upload-form-status{
    margin-top:12px;
    color:#a33;
    font-size:13px;
    line-height:1.6;
    overflow-wrap:anywhere;
}
@media(max-width:480px){
    .upload-dialog-mask{
        padding:12px;
    }
    .upload-dialog{
        max-height:88vh;
        padding:22px 16px 16px;
    }
}
.upload-photo-preview[hidden]{
    display:none!important;
}
