/**
 * CARDS PROCESSING - Animación de tarjetas tipo naipe para el modal de procesamiento
 */

/* Contenedor de las 5 tarjetas */
.cards-container {
    display: flex;
    gap: 8px;
    justify-content: center;
    padding: 16px 8px;
    perspective: 1000px;
}

/* Cada tarjeta individual */
.process-card {
    width: 90px;
    height: 120px;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease;
}

/* Estado inactivo (opaco) */
.process-card.inactive {
    opacity: 0.4;
    filter: grayscale(50%);
}

/* Estado activo (girando, iluminado) */
.process-card.active {
    opacity: 1;
    filter: none;
    animation: cardSpin 3s linear infinite;
    box-shadow: 0 0 20px rgba(99, 102, 241, 0.5);
}

/* Estado completado */
.process-card.completed {
    opacity: 1;
    filter: none;
    transform: rotateY(0deg);
    animation: none;
}

/* Animación de giro tipo puerta */
@keyframes cardSpin {
    0% {
        transform: rotateY(0deg);
    }
    50% {
        transform: rotateY(180deg);
    }
    100% {
        transform: rotateY(360deg);
    }
}

/* Cara de la tarjeta (común) */
.card-face {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 8px;
    border: 2px solid rgba(255, 255, 255, 0.15);
    overflow: hidden;
}

/* Cara frontal */
.card-front {
    background: linear-gradient(145deg, #1e1e2e 0%, #2d2d44 100%);
    display: flex;
    flex-direction: column;
    padding: 8px;
}

/* Cara trasera (reverso con número grande) */
.card-back {
    background: linear-gradient(145deg, #2d2d44 0%, #1e1e2e 100%);
    transform: rotateY(180deg);
    display: flex;
    align-items: center;
    justify-content: center;
}

.card-back .big-number {
    font-size: 64px;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.15);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* Header de la tarjeta (número + check) */
.card-header {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
}

.card-number {
    font-size: 14px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.7);
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

.card-check {
    display: none;
    color: #22c55e;
    font-size: 14px;
}

.process-card.completed .card-check {
    display: block;
    animation: checkPop 0.3s ease;
}

@keyframes checkPop {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1.3);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Cuerpo de la tarjeta (descripción) */
.card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.card-title {
    font-size: 9px;
    font-weight: 600;
    color: #a78bfa;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.card-description {
    font-size: 8px;
    color: rgba(255, 255, 255, 0.5);
    line-height: 1.3;
}

/* Descripción de resultado (cuando completa) */
.card-result {
    display: none;
    font-size: 8px;
    color: #22c55e;
    line-height: 1.3;
    margin-top: 4px;
}

.process-card.completed .card-result {
    display: block;
}

.process-card.completed .card-description {
    display: none;
}

/* Timer debajo de la tarjeta */
.card-timer {
    text-align: center;
    margin-top: 4px;
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    color: #a78bfa;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.process-card.active .card-timer,
.process-card.completed .card-timer {
    opacity: 1;
}

/* Colores por fase */
.process-card[data-phase="1"] .card-title { color: #60a5fa; }
.process-card[data-phase="2"] .card-title { color: #f472b6; }
.process-card[data-phase="3"] .card-title { color: #fbbf24; }
.process-card[data-phase="4"] .card-title { color: #34d399; }
.process-card[data-phase="5"] .card-title { color: #a78bfa; }

.process-card[data-phase="1"].active { box-shadow: 0 0 20px rgba(96, 165, 250, 0.5); }
.process-card[data-phase="2"].active { box-shadow: 0 0 20px rgba(244, 114, 182, 0.5); }
.process-card[data-phase="3"].active { box-shadow: 0 0 20px rgba(251, 191, 36, 0.5); }
.process-card[data-phase="4"].active { box-shadow: 0 0 20px rgba(52, 211, 153, 0.5); }
.process-card[data-phase="5"].active { box-shadow: 0 0 20px rgba(167, 139, 250, 0.5); }

.process-card[data-phase="1"] .card-front { border-color: rgba(96, 165, 250, 0.3); }
.process-card[data-phase="2"] .card-front { border-color: rgba(244, 114, 182, 0.3); }
.process-card[data-phase="3"] .card-front { border-color: rgba(251, 191, 36, 0.3); }
.process-card[data-phase="4"] .card-front { border-color: rgba(52, 211, 153, 0.3); }
.process-card[data-phase="5"] .card-front { border-color: rgba(167, 139, 250, 0.3); }

/* Responsive - tarjetas más pequeñas en móvil */
@media (max-width: 480px) {
    .cards-container {
        gap: 4px;
        padding: 12px 4px;
    }

    .process-card {
        width: 60px;
        height: 85px;
    }

    .card-number {
        font-size: 11px;
        width: 16px;
        height: 16px;
    }

    .card-title {
        font-size: 7px;
    }

    .card-description,
    .card-result {
        font-size: 6px;
    }

    .card-back .big-number {
        font-size: 40px;
    }

    .card-timer {
        font-size: 9px;
    }
}
