/* ════════════════════════════════════════════════════════
   Modern Dropzone overrides – uses --main-color CSS vars
   ════════════════════════════════════════════════════════ */

/* ── Zone ── */
.dropzone {
    border: 2px dashed rgba(var(--main-color-rgb, 0,180,193), .45) !important;
    border-radius: 12px !important;
    background: rgba(var(--main-color-rgb, 0,180,193), .03) !important;
    transition: border-color .25s, background .25s, box-shadow .25s !important;
    cursor: pointer !important;
    padding: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ── Hover / drag-over ── */
.dropzone:hover,
.dropzone.dz-drag-hover {
    border-color: var(--main-color, #00b4c1) !important;
    border-style: solid !important;
    background: rgba(var(--main-color-rgb, 0,180,193), .07) !important;
    box-shadow: 0 0 0 4px rgba(var(--main-color-rgb, 0,180,193), .13) !important;
    animation: dz-pulse .9s ease infinite !important;
}

@keyframes dz-pulse {
    0%, 100% { box-shadow: 0 0 0 0   rgba(var(--main-color-rgb, 0,180,193), .18); }
    50%       { box-shadow: 0 0 0 8px rgba(var(--main-color-rgb, 0,180,193), 0);   }
}

/* ── Default message (cloud icon + text) ── */
.dropzone .dz-message {
    text-align: center;
    margin: 0 !important;
    transition: transform .2s;
}

.dropzone.dz-drag-hover .dz-message {
    transform: scale(1.06);
}

/* Cloud-upload icon via Bootstrap Icons font */
.dropzone .dz-message::before {
    content: "\f2c0";                      /* bi-cloud-upload */
    font-family: "bootstrap-icons";
    font-size: 2.4rem;
    display: block;
    color: var(--main-color, #00b4c1);
    opacity: .65;
    margin-bottom: .4rem;
    transition: opacity .2s, transform .2s;
}

.dropzone:hover .dz-message::before,
.dropzone.dz-drag-hover .dz-message::before {
    opacity: 1;
    transform: translateY(-3px);
}

.dropzone .dz-message .dz-button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: block;
    line-height: 1.5;
    font-size: 0; /* hide the native Dropzone text */
}

.dropzone .dz-message .dz-button::after {
    content: "Clique ou dépose ton fichier ici";
    font-size: .88rem;
    font-weight: 600;
    color: #374151;
}

/* ── Preview items — compact horizontal row ── */
.dropzone .dz-preview {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    background: #fff !important;
    border-radius: 8px !important;
    border: 1px solid #e5e7eb !important;
    margin: 6px 0 !important;
    padding: 8px 12px !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.05) !important;
    transition: box-shadow .15s !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

.dropzone .dz-preview:hover {
    box-shadow: 0 3px 10px rgba(0,0,0,.1) !important;
}

/* ── Thumbnail (small icon-like) ── */
.dropzone .dz-preview .dz-image {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    background: #f3f4f6 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.dropzone .dz-preview .dz-image img {
    width: 40px !important;
    height: 40px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
}

/* ── Details block ── */
.dropzone .dz-preview .dz-details {
    position: static !important;
    flex: 1 !important;
    min-width: 0 !important;
    opacity: 1 !important;
    background: none !important;
    padding: 0 !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
}

.dropzone .dz-preview .dz-details .dz-size {
    font-size: .72rem !important;
    color: #9ca3af !important;
    margin: 0 !important;
}

.dropzone .dz-preview .dz-details .dz-size strong { font-weight: 400 !important; }

.dropzone .dz-preview .dz-details .dz-filename {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.dropzone .dz-preview .dz-details .dz-filename span,
.dropzone .dz-preview .dz-filename span {
    font-size: .82rem !important;
    font-weight: 500 !important;
    color: #374151 !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    white-space: nowrap !important;
}

/* ── Progress bar (inline below details) ── */
.dropzone .dz-preview .dz-progress {
    position: absolute !important;
    bottom: 0 !important;
    left: 62px !important;
    right: 80px !important;
    top: auto !important;
    height: 3px !important;
    border-radius: 0 0 8px 8px !important;
    background: #f3f4f6 !important;
    overflow: hidden !important;
    opacity: 1 !important;
    border: none !important;
}

.dropzone .dz-preview.dz-complete .dz-progress {
    opacity: 0 !important;
    transition: opacity .4s ease .5s !important;
}

.dropzone .dz-preview .dz-progress .dz-upload {
    background: var(--main-color, #00b4c1) !important;
    border-radius: 4px !important;
    transition: width .3s ease !important;
    height: 100% !important;
    display: block !important;
}

/* ── Success / Error marks (small, right side) ── */
.dropzone .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-error-mark {
    position: static !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    margin: 0 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    animation: none !important;
}

.dropzone .dz-preview.dz-success .dz-success-mark {
    display: flex !important;
}

.dropzone .dz-preview.dz-error .dz-error-mark {
    display: flex !important;
}

.dropzone .dz-preview .dz-success-mark svg,
.dropzone .dz-preview .dz-error-mark svg {
    width: 22px !important;
    height: 22px !important;
}

.dropzone .dz-preview.dz-success .dz-success-mark svg path,
.dropzone .dz-preview.dz-success .dz-success-mark svg polygon {
    fill: #10b981 !important;
    stroke: #10b981 !important;
}

.dropzone .dz-preview.dz-error .dz-error-mark svg path,
.dropzone .dz-preview.dz-error .dz-error-mark svg polygon {
    fill: #ef4444 !important;
    stroke: #ef4444 !important;
}

/* ── Error message (inline, below filename) ── */
.dropzone .dz-preview .dz-error-message {
    position: static !important;
    display: none !important;
    background: #fef2f2 !important;
    color: #ef4444 !important;
    border-radius: 4px !important;
    font-size: .70rem !important;
    padding: 1px 6px !important;
    margin-top: 2px !important;
    width: auto !important;
    left: auto !important;
    top: auto !important;
    opacity: 1 !important;
    pointer-events: none !important;
}

.dropzone .dz-preview.dz-error .dz-error-message {
    display: block !important;
}

/* ── Remove link ── */
.dropzone .dz-preview a.dz-remove {
    font-size: .70rem !important;
    color: #9ca3af !important;
    text-decoration: none !important;
    transition: color .15s !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

.dropzone .dz-preview a.dz-remove:hover {
    color: #ef4444 !important;
}

/* ── Global progress bar (campagnes-style) ── */
#total-progress .progress-bar {
    background: var(--main-color, #00b4c1) !important;
    transition: width .3s ease !important;
}
