/* Rimuove il limite inline di altezza soltanto dal dialog immagini. */
.ky-div-container:has(.ky-upload-div){
    max-height: none !important;
}

/* Thumbnail server 160x104 ottimizzata per schermi ad alta densità. */
.ky-upload-image-preview{
    display: block;
    width: 5rem;
    height: 3.25rem;
    border-radius: 4px;
    background-color: rgba(255,255,255,0.05);
    object-fit: cover;
}

/* A griglia vuota il viewport apre il file picker. */
.ky-upload-grid.ky-upload-empty .ky-datagrid-data-wrap{
    cursor: pointer;
}
/* Lo stato vuoto è marcato dal JavaScript perché la griglia usa righe virtuali. */
.ky-upload-grid.ky-upload-empty .ky-datagrid-data-wrap{
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23888888' viewBox='0 0 16 16'%3E%3Cpath d='M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z'/%3E%3Cpath d='M7.646 1.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 2.707V11.5a.5.5 0 0 1-1 0V2.707L5.354 4.854a.5.5 0 1 1-.708-.708l3-3z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 3.5rem;
    transition: background-size .12s ease, filter .12s ease;
}
.ky-upload-grid.ky-upload-empty .ky-datagrid-data-wrap:hover{
    background-size: 3.85rem;
    filter: brightness(1.4) drop-shadow(0 0 8px var(--primary-color));
}

/* Oscura il contenuto della scheda durante l'upload. */
.ky-upimg-backdrop{
    position: absolute;
    inset: 0;
    z-index: 3;
    background: rgba(0, 0, 0, 0.35);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    border-radius: inherit;
    animation: kyUpImgBackdropIn .15s ease;
}
@keyframes kyUpImgBackdropIn { from { opacity: 0; } to { opacity: 1; } }

/* Mantiene attivi trascinamento e controlli finestra sopra il backdrop. */
.ky-upimg-modal-open > .ky-window-toolbar {
    pointer-events: auto;
    position: relative;
    z-index: 5;
}
.ky-upimg-modal-open > .ky-window-toolbar .btn-window-div {
    pointer-events: auto;
    position: relative;
    z-index: 10;
}
/* Disabilita i comandi della scheda durante il modale. */
.ky-upimg-modal-open > .ky-window-toolbar .ky-btn-bar {
    opacity: .5;
    pointer-events: none;
    transition: opacity .15s ease;
}

/* Durante l'invio la griglia resta scorrevole ma non editabile. */
.ky-upload-grid.ky-upimg-locked .ky-datagrid-data-wrap { opacity: .5; }
.ky-upload-grid.ky-upimg-locked .ky-datagrid-row { pointer-events: none; }

.ky-upimg-progress{
    display: flex;
    align-items: center;
    gap: .5rem;
}
.ky-upimg-progress-bar{
    width: 9rem;
    height: .5rem;
    border-radius: .7rem;
    overflow: hidden;
    border: none;
    appearance: none;
    -webkit-appearance: none;
}
.ky-upimg-progress-bar::-webkit-progress-bar{
    background: rgba(128, 128, 128, 0.25);
    border-radius: .7rem;
}
.ky-upimg-progress-bar::-webkit-progress-value{
    background: var(--primary-color);
    border-radius: .7rem;
    transition: width .1s linear;
}
.ky-upimg-progress-bar::-moz-progress-bar{
    background: var(--primary-color);
    border-radius: .7rem;
}
.ky-upimg-progress-pct{
    font-size: .8rem;
    min-width: 2.6rem;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
