body {
    background-color: skyblue;
}

.col-description {
    max-width: 350px;
    white-space: normal !important;
    word-break: break-word;
}

.col-policy-price {
    white-space: normal !important;
    width: 180px; /* largeur stable */
}

.policy-price-line {
    margin-bottom: 4px;
}

.doc-upload-row {
    display: flex; align-items: center; gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}
.doc-upload-row:last-child { border-bottom: none; }
.doc-upload-icon {
    width: 40px; height: 40px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; flex-shrink: 0;
}
.doc-upload-info { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.doc-upload-name { font-size: 13.5px; font-weight: 500; }
.doc-upload-desc { font-size: 11px; color: #6c757d; margin-top: 2px; }
.doc-upload-status { min-width: 80px; text-align: center; flex-shrink: 0; }
.doc-upload-actions { min-width: 170px; display: flex; justify-content: flex-end; flex-shrink: 0; }
.doc-upload-label {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px; border-radius: 8px; font-size: 13px;
    cursor: pointer; border: 1px solid #dee2e6; background: transparent;
    color: #495057; transition: all 0.15s; white-space: nowrap; margin: 0;
}
.doc-upload-label:hover { border-color: #0d6efd; color: #0d6efd; }
.doc-hidden-input {
    position: absolute !important; width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important; overflow: hidden !important;
    clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}
.doc-badge-required {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px; border-radius: 12px;
    font-size: 11px; font-weight: 500; background: #e9ecef; color: #495057;
}
.doc-badge-required::before { content: '●'; font-size: 6px; color: #495057; }
.doc-badge-optional {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px; border-radius: 12px;
    font-size: 11px; font-weight: 500; background: #fff3cd; color: #856404;
}
.doc-badge-optional::before { content: '●'; font-size: 6px; color: #f59e0b; }
.doc-badge-uploaded {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px; border-radius: 12px;
    font-size: 11px; font-weight: 500; background: #d1e7dd; color: #0f5132;
}
.doc-badge-uploaded::before { content: '●'; font-size: 6px; color: #198754; }

/* ── Chips de fichiers (style compact, fond sombre) ── */
.doc-chips-wrap {
    display: flex; flex-wrap: wrap; gap: 6px;
    padding: 8px 0 4px 52px;
}
.doc-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 8px 4px 10px;
    background: #2d3748; color: #e2e8f0;
    border-radius: 6px; font-size: 12px;
    max-width: 220px;
}
.doc-chip-name {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    flex: 1; min-width: 0;
}
.doc-chip-remove {
    display: flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; border-radius: 4px;
    background: transparent; border: none;
    color: #f87171; font-size: 12px; cursor: pointer;
    padding: 0; line-height: 1;
    transition: background 0.12s;
}
.doc-chip-remove:hover { background: rgba(248,113,113,0.15); }

.doc-progress-wrap {
    margin-top: 20px; padding: 14px; background: #f8f9fa;
    border-radius: 8px; display: flex;
    align-items: center; justify-content: space-between;
}