.butaca {
    width: clamp(35px, 8vw, 50px);
    height: clamp(35px, 8vw, 50px);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 6px;
    font-size: clamp(0.7rem, 1.5vw, 0.9rem);
    font-weight: bold;
    color: white;
    cursor: pointer;
    transition: all 0.3s ease;
    user-select: none;
    position: relative;
}

.butaca::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background-color: rgba(0, 0, 0, 0.2);
}

.libre {
    background-color: #2ecc71;
    box-shadow: 0 2px 4px rgba(46, 204, 113, 0.2);
}

.libre:hover {
    background-color: #27ae60;
    transform: translateY(-2px);
}

.ocupada {
    background-color: #e74c3c;
    box-shadow: 0 2px 4px rgba(231, 76, 60, 0.2);
}

.ocupada:hover {
    background-color: #c0392b;
    transform: translateY(-2px);
}

/* Media queries para diferentes tamaños de pantalla */
@media (max-width: 480px) {
    .butaca {
        width: clamp(30px, 7vw, 35px);
        height: clamp(30px, 7vw, 35px);
        font-size: 0.65rem;
    }
    
    .butaca::after {
        height: 2px;
    }
}

@media (min-width: 1200px) {
    .butaca:hover {
        transform: translateY(-3px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    }
}

/* Animación al cambiar estado */
@keyframes cambioEstado {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

.butaca.libre, .butaca.ocupada {
    animation: cambioEstado 0.3s ease;
}