/* ==========================================================================
   DeletableCardList - Styles génériques pour la suppression groupée de cards
   ========================================================================== */

/* Styles pour les cards marquées pour suppression */
/* Note: :not([data-preview-card]) exclut les cards en mode preview */
.deletable-card-wrapper.marked-for-deletion:not(:has([data-preview-card])),
.candidate-card-wrapper.marked-for-deletion:not(:has([data-preview-card])),
[data-deletable-card-list-target="card"].marked-for-deletion:not(tr):not(:has([data-preview-card])) {
    position: relative !important;
    opacity: 0.5 !important;
    transition: opacity 0.2s ease;
}

.deletable-card-wrapper.marked-for-deletion:not(:has([data-preview-card]))::after,
.candidate-card-wrapper.marked-for-deletion:not(:has([data-preview-card]))::after,
[data-deletable-card-list-target="card"].marked-for-deletion:not(tr):not(:has([data-preview-card]))::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(239, 68, 68, 0.15) !important;
    border: 3px dashed #ef4444 !important;
    border-radius: 12px !important;
    pointer-events: none !important;
    z-index: 50 !important;
}

/* Style pour les lignes de table marquées pour suppression */
tr.marked-for-deletion,
tr[data-deletable-card-list-target="card"].marked-for-deletion {
    background-color: rgba(239, 68, 68, 0.1) !important;
    /* red-500/10 */
    opacity: 0.7;
}

tr.marked-for-deletion td,
tr[data-deletable-card-list-target="card"].marked-for-deletion td {
    border-top: 2px dashed #ef4444;
    border-bottom: 2px dashed #ef4444;
}

tr.marked-for-deletion td:first-child,
tr[data-deletable-card-list-target="card"].marked-for-deletion td:first-child {
    border-left: 2px dashed #ef4444;
}

tr.marked-for-deletion td:last-child,
tr[data-deletable-card-list-target="card"].marked-for-deletion td:last-child {
    border-right: 2px dashed #ef4444;
}

/* Animation de suppression */
.deletable-card-wrapper.deleting,
[data-deletable-card-list-target="card"].deleting,
tr.deleting {
    animation: deletableCardFadeOut 0.3s ease-out forwards;
}

@keyframes deletableCardFadeOut {
    0% {
        opacity: 0.5;
        transform: scale(1);
    }

    100% {
        opacity: 0;
        transform: scale(0.8);
    }
}

/* Container de confirmation */
.deletion-confirm-container {
    animation: deletionConfirmSlideDown 0.2s ease-out;
}

@keyframes deletionConfirmSlideDown {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Styles par défaut pour le container de confirmation */
.deletion-confirm-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 0.5rem;
}

.deletion-confirm-bar.hidden {
    display: none;
}

.deletion-confirm-bar__text {
    color: #b91c1c;
    font-weight: 500;
}

.deletion-confirm-bar__count {
    font-weight: 700;
}

.deletion-confirm-bar__btn {
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: background-color 0.15s ease;
    border: none;
    cursor: pointer;
}

.deletion-confirm-bar__btn--confirm {
    background-color: #dc2626;
    color: white;
}

.deletion-confirm-bar__btn--confirm:hover {
    background-color: #b91c1c;
}

.deletion-confirm-bar__btn--confirm:disabled {
    background-color: #f87171;
    cursor: not-allowed;
}

.deletion-confirm-bar__btn--cancel {
    background-color: #e5e7eb;
    color: #374151;
}

.deletion-confirm-bar__btn--cancel:hover {
    background-color: #d1d5db;
}

.deletion-confirm-bar__btn--cancel:disabled {
    background-color: #f3f4f6;
    cursor: not-allowed;
}

/* ==========================================================================
   Styles pour les éléments sélectionnés (sélection générale bleue)
   ========================================================================== */

/* Cards et lignes de table sélectionnées */
.selected-for-action,
[data-deletable-card-list-target="card"].selected-for-action,
tr.selected-for-action {
    position: relative;
}

.selected-for-action::after,
[data-deletable-card-list-target="card"].selected-for-action::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(59, 130, 246, 0.1);
    /* blue-500/10 */
    border: 2px solid #3B82F6;
    /* blue-500 */
    border-radius: 12px;
    pointer-events: none;
    z-index: 4;
}

/* Style spécifique pour les lignes de table */
tr.selected-for-action {
    background-color: rgba(59, 130, 246, 0.1) !important;
    /* blue-500/10 */
}

tr.selected-for-action td {
    border-top: 2px solid #3B82F6;
    border-bottom: 2px solid #3B82F6;
}

tr.selected-for-action td:first-child {
    border-left: 2px solid #3B82F6;
}

tr.selected-for-action td:last-child {
    border-right: 2px solid #3B82F6;
}

/* ==========================================================================
   Style pour le dernier candidat consulté (bordure grise foncée)
   ========================================================================== */

/* Style pour les cards */
.last-visited-candidate {
    position: relative;
}

.last-visited-candidate::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid #4B5563;
    /* gray-600 */
    border-radius: 12px;
    pointer-events: none;
    z-index: 3;
}

/* Style pour les lignes de table */
tr.last-visited-candidate {
    background-color: rgba(75, 85, 99, 0.1) !important;
    /* gray-600/10 */
}

tr.last-visited-candidate td {
    border-top: 2px solid #4B5563;
    border-bottom: 2px solid #4B5563;
}

tr.last-visited-candidate td:first-child {
    border-left: 2px solid #4B5563;
}

tr.last-visited-candidate td:last-child {
    border-right: 2px solid #4B5563;
}